Apache httpd多年来为我做得很好,在我一直在维护的遗留定制LAMP堆栈应用程序中非常稳定和高性能(阅读:试图逃离)
我的LAMP堆栈的日子现在已经屈指可数了,现在我要转移到多语的奇妙世界:
1) Scala REST framework on Jetty 8 (on the fence between Spray & Scalatra)
2) Load balancer/Static file server: Apache Httpd, Nginx, or ?
3) MySQL via ScalaQuery
4) Client-side: jQuery, Backbone,
我正在使用Ruby葡萄创建一个API,并且我面临以下问题。当有新的GET请求时,请求大量的数据,这需要很长的时间,同时反应器被阻塞,在请求完成之前不能处理任何新的请求。代码非常简单:
class API < Grape::API
resource :users do
get do
get_users()
end
end
end
get_users通过传输控制协议连接到另一个系统,并获得大量转换为JSON的数据。这是使用第三方gem完成的。处理这种情况的最佳选择是什么?
我正在对web服务进行负载测试,其中请求的形式如下:
GET http://host/my/app/some-data
其中some-data是一个字符串,用作服务背后的逻辑的输入。现在我有一百万个带有some-data随机值的urls,现在我想尝试用这一百万个urls模拟负载。
GET http://host/my/app/some-data_1
GET http://host/my/app/some-data_2
...
GET http://host/my/app/some-data_1e6
我不知道如何做到这一点,也没有取得任何实质性进展的目标。我该怎么做呢?
我有两个gRPC服务,其中一个将通过正常的gRPC方法调用另一个(两端都没有流),我使用istio作为服务网格,并将sidecar注入到两个服务的kubernetes pod中。 在正常负载下,gRPC调用可以正常工作,但在高并发负载情况下,gRPC客户端不断抛出以下异常: <#bef7313d> i.g.StatusRuntimeException: UNAVAILABLE: upstream connect error or disconnect/reset before headers
at io.grpc.Status.asRuntimeException(Sta