小编Aur*_*lia的帖子

如何在Kubernetes中管理持久连接

在Kubernetes中,服务通过服务ip相互通信。使用iptables或类似的东西,每个TCP连接都透明地路由到可用于被叫服务的pod之一。如果呼叫服务未关闭TCP连接(例如使用TCP keepalive或连接池),它将连接到一个Pod,而不使用可能产生的其他Pod。

处理这种情况的正确方法是什么?


我自己不满意的想法:

每次api调用后关闭连接

我将每个呼叫的速度变慢只是为了能够将请求分配到不同的Pod吗?感觉不对。

最小连接数

我可以强制调用者打开多个连接(假设它将随后在这些连接中分配请求),但是应该打开几个?呼叫者不知道(可能不应该知道)有多少个豆荚。

禁用突发

我可以限制被调用服务的资源,因此它在多个请求上变得很慢,并且调用方将打开更多连接(希望与其他Pod连接)。同样,我不喜欢任意放慢请求的想法,这仅适用于cpu绑定的服务。

kubernetes kube-proxy

11
推荐指数
1
解决办法
695
查看次数

为什么线程如此昂贵,是事件驱动的非阻塞IO是更好的基准

最近,我开始学习Node.js的,对自己的无阻塞IO和令人难以置信的速度见长的V8之上的JavaScript库.

据我了解,节点不等待IO的响应,但运行的事件循环(类似于游戏循环),保持检查未完成的操作,并继续/尽快IO响应完成它们.节点性能与Apache的HTTPD与节点是显著更快,同时使用更少的内存.

现在,如果你了解了Apache,你了解它每个用户使用1个线程,这理应减缓下来显著,这是出现在我的问题,其中:

如果将线程与事件循环内部节点进行比较,则会开始看到相似之处:两者都是等待资源响应的未完成进程的抽象,都检查操作是否定期进行,然后不占用CPU占用了一段时间(至少我认为一个好的阻塞API在重新检查之前会休眠几毫秒).

现在哪个突出的,关键的差异让线程变得更糟?

multithreading event-driven-design event-driven

7
推荐指数
1
解决办法
1209
查看次数

c#中对象初始化之间的差异

只是想知道两个对象初始化之间是否有任何区别?

我应该使用哪一个?

有和没有括号()

var data = new Apple()
{
 Color = "red", 
 Taste = "good"
}
Run Code Online (Sandbox Code Playgroud)

var data = new Apple
{
Color = "red", 
Taste = "good"
}
Run Code Online (Sandbox Code Playgroud)

c#

0
推荐指数
1
解决办法
83
查看次数