编排微服务的标准模式是什么?
如果微服务只知道它自己的域,但是有一个数据流需要多个服务以某种方式进行交互,那么它的方法是什么呢?
假设我们有这样的事情:
为了论证,让我们说一旦订单发货,就应该创建发票.
在某个地方,有人按下GUI中的按钮,"我已经完成了,让我们这样做!" 在一个经典的整体服务架构中,我会说有一个ESB处理这个,或者Shipment服务知道发票服务并且只是调用它.
但是,在这个勇敢的微服务新世界中,人们处理这个问题的方式是什么?
我确实认为这可以被认为是基于意见的.但是它有一个具体的方面,因为微服务不应该做上述事情.因此,必须有一个"根据定义应该做什么而不是",这不是基于意见的.
射击.
使用vs.net的TypeScript插件时,如何在其他TypeScript文件中声明一个TypeScript文件导入模块?
档案1:
module moo
{
export class foo .....
}
Run Code Online (Sandbox Code Playgroud)
档案2:
//what goes here?
class bar extends moo.foo
{
}
Run Code Online (Sandbox Code Playgroud) 使用MongoDB时,是否有任何特殊模式可用于制作分页视图?说一个博客列出了10个最新帖子,你可以向后导航到较旧的帖子.
或者用例如blogpost.publishdate上的索引来解决它,然后跳过并限制结果?
在反汇编.NET函数时,我注意到它们都是以类似于similair的模式开始的.这个初始代码有什么作用?
此代码出现在函数应该执行的实际代码之前.它是某种参数计数验证吗?
FUNC1
private static void Foo(int i)
{
Console.WriteLine("hello");
}
00000000 push ebp
00000001 mov ebp,esp
00000003 push eax
00000004 mov dword ptr [ebp-4],ecx
00000007 cmp dword ptr ds:[005C14A4h],0
0000000e je 00000015
00000010 call 65E0367F
//the console writleline code follows here and is not part of the question
Run Code Online (Sandbox Code Playgroud)
FUNC2
static private void Bar()
{
for (int i = 0; i < 1000; i++)
{
Foo(i);
}
}
00000000 push ebp
00000001 mov ebp,esp
00000003 push eax
00000004 cmp dword …Run Code Online (Sandbox Code Playgroud) 我对Go如何处理非阻塞IO感到有些困惑.API对我来说大多看起来是同步的,当在Go上观看演示时,听到像"和呼叫块"这样的评论并不罕见
从文件或网络读取时Go是否使用阻塞IO?或者是否有某种魔法在Go Go Routine中使用时重写代码?
来自C#背景,这感觉非常不直观,在C#中我们await在使用异步API时有关键字.这清楚地表明API可以产生当前线程并在稍后的延续中继续.
TLDR; 在Go例程中执行IO时,Go会阻塞当前线程,还是会使用continuation将其转换为类似异步等待状态机的C#?
使用DbGeography.Distance(otherLocation)距离的单位测量两个位置之间 的距离时?
甚至msdn信息和intellisense都无法指定距离的单位.
有谁知道?
[编辑]我正在使用srid 4326.大多数例子似乎都在使用.从我所能找到的,4326似乎是弧度,这让我完全无能为力.弧度用于测量角度/度数,那么这实际上意味着什么呢?
我是功能编程的新手,对编码风格和调试有一些疑问.
我的印象是,应该避免在temp变量中存储函数调用的结果,然后返回该变量
例如
let someFunc foo =
let result = match foo with
| x -> ...
| y -> ...
result
Run Code Online (Sandbox Code Playgroud)
而是这样做(我可能会离开?):
let someFunc foo =
match foo with
| x -> ...
| y -> ...
Run Code Online (Sandbox Code Playgroud)
从功能全局的角度来看,它可以正常工作,但它使调试变得更加困难.如果 - >的右边做了一些时髦的东西,我无法检查结果.
那我该怎么处理这种情况呢?
在C#with async ctp或vs.net 2011 beta中,我们可以编写如下的递归代码:
public async void AwaitSocket()
{
var socket = await this.AcceptSocketAsync(); //await socket and >>return<< to caller
AwaitSocket(); //recurse, note that the stack will never be deeper than 1 step since await returns..
Handle(socket); // this will get called since "await" returns
}
Run Code Online (Sandbox Code Playgroud)
在此特定示例中,代码异步等待tcp套接字,一旦被接受,它将递归并且异步等待另一个.
这似乎工作正常,因为await部分将使代码返回到调用者,因此,不会导致堆栈溢出.
这里有两个问题:
如果我们忽略了我们在这个样本中处理套接字的事实.以这种方式进行堆栈自由递归是否可以?还是有缺点我不见了?
从IO的角度来看,上面的代码是否足以处理所有传入的请求?我的意思是只等一个,一旦被接受就开始等待另一个.某些请求会因某种原因而失败吗?
结合ng-changed和ng-blur的最简单方法是什么?
我发现这篇文章:如何让ng-model不立即更新?
然而,这不再适用于angluar 1.2+有没有办法实现相同的行为?
我想我必须自己存储一个旧值的副本,并将新值与模糊值进行比较,如果我尝试做同样的事情,或者有更简单的方法吗?
输入类型="电子邮件"和ng-model属性有什么特别之处吗?如果输入是电子邮件,则模型不会更新.如果我将输入类型更改为正确更新的文本,数字或日期.
我不明白的Bug或一些特殊的魔术电子邮件验证行为?
c# ×3
angularjs ×2
.net ×1
async-ctp ×1
debugging ×1
disassembly ×1
f# ×1
go ×1
gps ×1
http ×1
hypermedia ×1
il ×1
javascript ×1
mongodb ×1
nonblocking ×1
paging ×1
sockets ×1
spatial ×1
typescript ×1