草庐IT

netty-all

全部标签

java - 改造 2/OkHttp : Cancel all running requests

我正在使用带有OkHttp2.7.0的Retrofit2-beta2。要从Retrofit获取OkHttpClient对象,我使用Retrofit.client()方法并取消所有正在运行的请求,我称之为cancel(Objecttag)方法,但请求仍在运行,我得到了响应。甚至客户端的Dispatcher的getQueuedCallCount()和getRunningCallCount()调用cancel()后返回0。我还需要做些什么才能让它发挥作用吗?或者它可能是OkHttp中的错误?作为解决方法,我在客户端的ExecutorService上调用shutdownNow(),但我更喜欢更

java - Instrument Netty 的 EventLoop 用于确定性执行计划任务

我想检测Netty的EventLoop以便:以确定的顺序运行任务。捕获计划任务的截止日期。快进虚拟时钟,触发截止任务的执行。我知道EmbeddedChannel并在一些测试中使用它。但我想要的是介于单元测试和集成测试之间的东西,对某些极端情况仍然视而不见。断连重连和ping场景大量使用定时任务。我可以添加具有巨大延迟的确定性,但我不希望我的测试等待几秒钟或更长时间。所以检测Netty的EventLoop看起来像是解决方案。我已经编写了至少对我来说有意义的代码。我修改ScheduledFutureTask#nanoTime以返回我的值。我派生了NioEventLoopGroup,所以我捕

java - Netty 处理大负载的能力

我在我的开源项目中使用ApacheMINA。但是,我遇到了性能障碍,它无法处理从移动设备上传到服务器的大量有效负载。我收到内存不足错误。我从未使用过Netty,并希望将MINA与Netty交换。我想问Netty团队的问题是Netty在大量传入有效载荷负载下的表现如何。在我的性能测试中,我使用1000个并发设备生成负载,每个设备发送1MByte大小的有效负载。它往往会在5分钟内生成1GIG的上传数据。此负载往往会损坏MINA。Netty能否支持这种负载等等。非常感谢您对此的意见。顺便说一句:我确实使用JProfiler分析了应用程序。它确实指出MINA堆栈是罪魁祸首。我什至完全断开了服务

java - Elasticsearch 失败,错误为 "Failed to execute phase [query_fetch], all shards failed"

当我尝试索引数据然后进行查询时,一切都很好,但是如果我启动我的应用程序并在它之前进行不索引的查询,我会收到该错误Exceptioninthread"main"org.elasticsearch.action.search.SearchPhaseExecutionException:Failedtoexecutephase[query_fetch],allshardsfailedatorg.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.onFirstPhaseResult(Transp

java - Netty 以 100% CPU 运行

我看到过其他关于此问题的引用,例如here和here,尽管这些引用了不同版本的Netty。使用4.0分支(4.0.29)和5.0alpha分支(5.0-Alpha3)中的最新版本进行了尝试。本地(非Linux)jdk1.8.040,很好。使用javajdk1.8.025-b17的远程(Linux)获得100%cpu。Linux内核版本2.6.32。尝试使用EpollEventLoopGroup();试过打电话workerGroup=newNioEventLoopGroup();workerGroup.rebuildSelectors();有人可以提供任何建议吗?我在不同版本的Netty

java - 执行者 : How to synchronously wait until all tasks have finished if tasks are created recursively?

我的问题与thisonehere密切相关.正如在那里发布的那样,我希望主线程等到工作队列为空并且所有任务都已完成。然而,我的情况的问题是,每个任务都可能递归地导致提交新任务进行处理。这使得收集所有这些任务的future有点尴尬。我们当前的解决方案使用忙等待循环来等待终止:do{//Waituntilwearedonetheprocessingtry{Thread.sleep(200);}catch(InterruptedExceptione){thrownewRuntimeException(e);}}while(!executor.getQueue().isEmpty()||numT

java - 使用 WriteTimeoutHandler 在 Netty 中实现保活消息

我正在使用Netty3.2.7。我正在尝试在我的客户端中编写功能,以便如果在一定时间(比如30秒)后没有写入任何消息,则会向服务器发送一条“保持Activity状态”消息。经过一些挖掘,我发现WriteTimeoutHandler应该能让我做到这一点。我在这里找到了这个解释:https://issues.jboss.org/browse/NETTY-79.Netty文档中给出的例子是:publicChannelPipelinegetPipeline(){//Anexampleconfigurationthatimplements30-secondwritetimeout:returnC

java - 即使级联为 ALL,Hibernate 也无法持续存在

我在WildflyEE项目中有两个实体AuthorizationPosition和ProductAttributes。两者之间的映射如下:授权位置:@javax.persistence.ManyToOne(fetch=javax.persistence.FetchType.LAZY,optional=false,cascade={javax.persistence.CascadeType.ALL})@javax.persistence.JoinColumn(name="PRODUCT_ATTRIBUTES_ID",referencedColumnName="PRODUCT_ATTRIB

java - 监控 Netty 事件循环队列的大小

我们已经实现了对Netty事件循环队列的监控,以了解我们的一些Netty模块的问题。monitor使用io.netty.util.concurrent.SingleThreadEventExecutor#pendingTasks方法,对大部分模块有效,但是对于一个每秒处理几千个HTTP请求的模块就好像挂了,或者非常慢。我现在意识到文档严格指定这可能是一个问题,我觉得很蹩脚......所以我正在寻找另一种方法来实现这个监视器。你可以在这里看到旧代码:https://github.com/outbrain/ob1k/blob/6364187b30cab5b79d64835131d9168c

java - 如何使用级联 ="all,delete-orphan"制作 hibernate 集合的副本

我正在尝试像这样制作一个hibernate实体A的副本:Aa=(A)session.get(A.class,id);session.evict(a);a.setId(null);session.save(a);但是这不起作用,我得到以下实验:org.hibernate.HibernateException:Don'tchangethereferencetoacollectionwithcascade="all-delete-orphan":com.test.A.B可以安全地假设发生此错误是因为我在实体A中定义了B实体的集合:如何制作实体A的副本,包括它的实体B的集合,而hibernat