我正在尝试使用Akka HTTP 2.0-M2编写批量数据上传工具.但我正面临着akka.stream.OverflowStrategy$Fail$BufferOverflowException: Exceeded configured max-open-requests value of [32] error.
我试图隔离一个问题,这里的示例代码也失败了:
public class TestMaxRequests {
private static final class Router extends HttpApp {
@Override
public Route createRoute() {
return route(
path("test").route(
get(handleWith(ctx -> ctx.complete("OK")))
)
);
}
}
public static void main(String[] args) {
ActorSystem actorSystem = ActorSystem.create();
Materializer materializer = ActorMaterializer.create(actorSystem);
Router router = new Router();
router.bindRoute("127.0.0.1", 8082, actorSystem);
LoggingAdapter log = Logging.getLogger(actorSystem, new Object());
for (int i = 0; i < 100; i++) {
final int reqNum …Run Code Online (Sandbox Code Playgroud) 我有一个REST服务,接受表单/ {parameter}中的参数
还有Apache2将请求转发给Web服务
<VirtualHost *:9091>
AllowEncodedSlashes NoDecode
LogLevel debug
ProxyPass /webservice balancer://api/webservice
<Proxy balancer://api>
BalancerMember http://localhost:8030
</Proxy>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
参数可能包含编码字符,例如%2f(/)
问题是Apache再次编码这些字符,Webservice收到%252F而不是%2F
[Mon Oct 15 13:59:24 2012] [debug] mod_proxy_balancer.c(46): proxy: BALANCER: canonicalising URL //api/webservice/Interface GigabitEthernet1%2F0%2F2
[Mon Oct 15 13:59:24 2012] [debug] mod_proxy_balancer.c(581): proxy: BALANCER (balancer://api) worker (http://localhost:8030) rewritten to http://localhost:8030/Interface%20GigabitEthernet1%252F0%252F2%20Utilization
Run Code Online (Sandbox Code Playgroud)
如果我直接请求webservice,Tomcat/Jetty会处理它,并且服务会收到正确的参数.
我经常切换到不同的SVN分支,通常我使用1分支1个问题我正在研究.
IDEA 12在一些好的可见区域中没有显示当前的SVN分支,有时我忘记了我正在处理的分支,并且必须转到更改 - >工作副本信息 - >刷新
有没有办法在窗口标题或状态栏中显示当前分支(正如IDEA对git所做的那样)?
我也在尝试编写一个可以在IDEA标题中显示当前SVN分支的插件,但实际上并不想阅读大量的API和文档.
据我了解,如果没有标准方法,我需要:1)以某种方式订阅SVN更新事件2)修改IDEA标题(或状态栏)并向其添加当前分支名称
我已经下载了Pandas源代码,现在正在尝试调试它.我修改了Makefile:
sparse: pandas/src/sparse.pyx
python-dbg setup.py build_ext --inplace --pyrex-gdb
build: clean_pyc
python-dbg setup.py build_ext --inplace --pyrex-gdb
develop: build
-python-dbg setup.py develop --pyrex-gdb
Run Code Online (Sandbox Code Playgroud)
我还有一个非常简单的脚本:
from numpy import asarray
from pandas import algos
v = [4171.0, 0.0]
expAverage = algos.ewma(asarray(v), 50, 1)
print expAverage
Run Code Online (Sandbox Code Playgroud)
当我尝试使用python-dbg test1.py运行它时,这就是我得到的:
/tmp/1/pandas/pandas/hashtable.so: undefined symbol: Py_InitModule4_64
Traceback (most recent call last):
File "test1.py", line 2, in <module>
from pandas import algos
File "/tmp/1/pandas/pandas/__init__.py", line 6, in <module>
from . import hashtable, tslib, lib
ImportError: /tmp/1/pandas/pandas/hashtable.so: undefined symbol: Py_InitModule4_64
[94423 …Run Code Online (Sandbox Code Playgroud) 我有一个服务(让我们称之为服务A),它使用Akka Server HTTP来处理传入的请求.我还有第三方应用程序(服务B),它提供了几个Web服务.服务A的目的是转换客户端请求,调用服务B的一个或多个Web服务,合并/转换结果并将其提供给客户端.
我在某些部分使用Actors,而在其他部分使用Future.要拨打服务B,我使用Akka HTTP客户端.
Http.get(actorSystem).singleRequest(HttpRequest.create()
.withUri("http://127.0.0.1:8082/test"), materializer)
.onComplete(...)
Run Code Online (Sandbox Code Playgroud)
问题是,每个Service A请求都会创建一个新流,如果有多个并发连接,则会产生 akka.stream.OverflowStrategy$Fail$BufferOverflowException: Exceeded configured max-open-requests value of [32] error
我已经问过这个问题,并建议使用单个Flow 如何正确调用Akka HTTP客户端以获取多个(10k-100k)请求?
虽然它适用于来自单个地方的一批请求,但我不知道如何使用来自所有并发请求处理程序的单个Flow.
这样做的正确"Akka-way"是什么?
我们有Cassandra集群,每个节点有一个令牌,总共22个节点,每个节点的平均负载为500Gb.它具有SimpleStrategy用于主键空间和SimpleSnitch.
我们需要将所有数据迁移到新数据中心,并在没有停机的情况下关闭旧数据中心.新集群有28个节点.我想要有vnodes.
我正在考虑以下过程:
但是有很多技术细节.首先,我应该在vnodes迁移后将旧集群洗牌吗?那么,切换到NetworkTopologyStrategy和GossipingPropertyFileSnitch的最佳方法是什么?我想切换到NetworkTopologyStrategy,因为新集群有2个不同的机架,带有独立的电源/网络交换机.
我们在 4 个节点上有 Docker Swarm 模式 (17.09.0-ce)。我们正在尝试使用docker stack deploy和部署 10 项服务docker-compose.yml。每个服务都有所需的内存和内存限制docker-compose.yml。
一些服务被杀死:
$ docker service ps st_master_xwiki
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
s900hx36b70d st_master_xwiki.1 docker-stage.ipsoft.com/apollo-xwiki:master dyn-10-140-175-140.rnd.cloud.ipsoft.com Running Running 3 hours ago
52gzwwyipky0 \_ st_master_xwiki.1 docker-stage.ipsoft.com/apollo-xwiki:master dyn-10-140-175-123.rnd.cloud.ipsoft.com Shutdown Shutdown 3 hours ago
Run Code Online (Sandbox Code Playgroud)
容器日志没有任何内容:
# docker logs 0578be3e943d134ae71f38b8354d1b5319bcc8164502555844b5d046ba3dcd0f
Starting Jetty on port 4424, please wait...
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=196m; support was removed in 8.0
2017-10-11 16:52:44.732:INFO::main: …Run Code Online (Sandbox Code Playgroud) 我有一个单独的资源文件夹,我想添加到IDEA类路径中。我不使用main / resources的原因是我需要将文件夹放在JAR之外才能允许XML配置文件版本。
这是在IDEA中有效的方法
apply plugin: 'idea'
idea {
module {
resourceDirs += file('src/dist/etc')
}
}
Run Code Online (Sandbox Code Playgroud)
当我按“从Gradle重新导入”时,该文件夹被映射为资源文件夹。因此,IDEA了解resourceDirs属性。
但是Gradle 2.2失败了:
Could not find property 'resourceDirs' on org.gradle.plugins.ide.idea.model.IdeaModule_Decorated@329c1075.
Run Code Online (Sandbox Code Playgroud)
如何在Gradle的IDEA中设置资源目录?
import scipy
timeseries = [53.0, 28.0, 20.0, 113.0, 68.0, 18.0, 9.0, 72.0, 37.0, 29.0, 16.0, 70.0, 45.0, 3.0, 79.0, 7.0, 17.0, 0.0, 84.0, 19.0,
0.0, 1.0, 5.0, 16.0, 1485.3333, 650.0, 39.0, 52.0, 82.0, 13.0, 11.0, 14.0, 31.0, 20.0, 399.0, 124.0, 39.0, 0.0, 9.0,
42.0, 41.0, 98.5, 10.0, 4.0, 19.0, 53.0, 60.0, 789.0, 1471.3333, 876.0, 5.0, 714.0, 136.0, 27.0, 38.0, 29.0, 10.0,
181.0, 1.0, 14.0, 39.0, 29.0, 2.0, 1502.0, 174.5, 4.0, 305.0, 222.6667, 349.0, 38.0, 15.0, 168.0, 41.0, 28.0, 15.0,
508.0, …Run Code Online (Sandbox Code Playgroud) 我们在小型开发环境中使用Cassandra 2.1.5(2个DC,每个3个节点).我们在开发机器上没有太多空间,几乎每天都面临磁盘空间错误.主要罪魁祸首是system_traces键空间:
.../system_traces]# du -sh
8.1G .
Run Code Online (Sandbox Code Playgroud)
我试图在cqlsh中关闭跟踪:
cqlsh> tracing off;
Tracing is not enabled.
Run Code Online (Sandbox Code Playgroud)
我尝试了nodetool settraceprobability 0 - 但仍然填充了表.
我无法删除表和键空间:
cqlsh> drop keyspace system_traces;
Unauthorized: code=2100 [Unauthorized] message="Cannot DROP <keyspace system_traces>"
Run Code Online (Sandbox Code Playgroud)
唯一可行的解决方案是"truncate system_traces.sessions; truncate system_traces.events;" - 但那些桌子很快就会满满的.
如何一劳永逸地禁用它?
在https://github.com/pydata/pandas/blob/master/pandas/algos.pyx中查看ewma方法,有一个奇怪的代码:
for i from 1 <= i < N:
cur = input[i]
prev = output[i - 1]
if **cur == cur:**
if **prev == prev**:
output[i] = oldw * prev + neww * cur
else:
output[i] = neww * cur
else:
output[i] = prev
Run Code Online (Sandbox Code Playgroud)
为什么比较cur == cur和prev == prev?
我试图在Java中实现这个方法但得到不同的结果(例如,Python中的7.01644573和Java中的7.013072549019608),所以这个神奇的"=="运算符可能会做什么?