首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    插上NIO的翅膀,FunTester飞上天

    计算模型 如图所示,这是单个线程单个请求的耗时简易模型,分成三部分:请求前(对应before)、请求与响应(对应request and response)和请求后(对应after)。...下面我分享一下Java NIO在HTTP协议接口测试中的应用。 缘由 在上图第二部分中,请求和响应占据了整个部分。如果我们将这部分再细分,那么可以分成三个部分:发出请求、等待响应、接收响应。...Java NIO在接口测试中的应用就在等待响应和接收响应这一部分。...其中我之前常用的请求对象org.apache.http.client.methods.HttpRequestBase,具体实现代码摘要public abstract class HttpRequestBase...不管不顾 这个方法只负责把请求发出去,至于响应一律不管。这里据我查证,callback如果传null的话,在处理响应的时候会直接释放连接等相关资源。

    45870

    插上NIO翅膀,FunTester飞上天

    计算模型 如图所示,这是单个线程单个请求的耗时简易模型,分成三部分:请求前(对应before)、请求与响应(对应request and response)和请求后(对应after)。...下面我分享一下Java NIO在HTTP协议接口测试中的应用。 缘由 在上图第二部分中,请求和响应占据了整个部分。如果我们将这部分再细分,那么可以分成三个部分:发出请求、等待响应、接收响应。...Java NIO在接口测试中的应用就在等待响应和接收响应这一部分。...其中我之前常用的请求对象org.apache.http.client.methods.HttpRequestBase,具体实现代码摘要public abstract class HttpRequestBase...不管不顾 这个方法只负责把请求发出去,至于响应一律不管。这里据我查证,callback如果传null的话,在处理响应的时候会直接释放连接等相关资源。

    43810

    HTTP异步连接池和多线程实践

    今天在查询一个列表的时候,突然发现列表由于之前压测导致几万条脏数据积累。导致找一个数据比较麻烦,由于项目没有提供批量删除的功能,所以想了个办法通过接口把数据挨个删除。...ClientManage.httpAsyncClient.isRunning()) ClientManage.httpAsyncClient.start(); ClientManage.httpAsyncClient.execute...* * 增加默认的请求控制器,和请求配置,连接控制器,取消了cookiestore,单独解析响应set-cookie和发送请求的header,适配多用户同时在线的情况...SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER).setSSLContext(sslContext).build(); } 经过测试,异步发送请求的效率果然有所提高,但是有个问题就是不能立刻关闭连接池...,不然会导致请求失败,提示连接池已经关闭。

    1.1K40

    HTTP客户端演进之路

    客户端可以在 1 秒内同时将 10 个请求发出,在处理其他业务逻辑同时处理响应的结果,如果服务端能顺利地同时处理 10 个请求,整个系统的吞吐率提高了 10 倍。...无论同步模式还是异步模式,Apache HTTP 解决方案体系都提供了对连接池的支持。连接池有助于提高网络资源的使用效率,但也引来一个极具挑战性的问题,即可能从池中获取一个不可用的连接。...相对自身可控的关闭,服务端的单方面的关闭和网络异常显得随机很多,从池中获取的连接不可用的概率也随之增大。所以选择连接池化时,会单独开辟线程来检测所有连接的可用性,淘汰不可用的连接。...在获取连接后与发送前的时间点上,会再一次检查连接的可用性,发现连接不用时,重新申请新的连接作为该连接的副本,可用副本会替换不可用的连接做接下来的事情,完成整个交互流程后所有副本和第一次获取的连接作为整体共同释放...> 4.5.6 【异步模式】 org.apache.httpcomponents httpasyncclient

    70810

    Apache IoTDB 2021年度总结:在持续开源的路上勇往直前

    目前正在进行发版前的各项验证工作。...0.13 的新功能主要包括双存储引擎、更丰富的数据处理、更广阔的开源生态: 双存储引擎(支持时间列共享存储、独立存储) IoTDB原有存储引擎在每个时间序列内部存储一列时间戳,适用于各序列独立采集的场景...同时,在一个IoTDB内,用户针对不同的监测设备可以选择不同的存储引擎,从而大幅度节省存储成本并提升读写性能。...定时开启查询写回任务,为复杂计算、多粒度的降采样数据预生成提供了便捷 广阔的开源生态 A.REST 服务: 现在可以用 REST 接口管理数据、元数据 B.新 Grafana 插件: 相比现有的 Grafana 连接器功能更强...其中, Apache IoTDB在 Apache Con Asia的大会特邀报告中得到介绍: 2 名 IoTDB 社区成员参与 VLDB Summer school,并获得优秀学员称号。

    69020

    万亿数据秒级响应,Apache Doris 在360数科实时数仓中的应用

    以下是 Apache Doris 1.1.2 在各个方面的满足情况。...目前 Apache Doris 社区活跃、技术交流更多,SelectDB 针对社区有专职的技术支持团队,在使用过程中遇到问题均能快速得到响应解决。...大数据领域 Apache 基金会项目构成了事实标准,在 360数科内部已有广泛应用,且 Apache 开源协议对商业友好、无法律风险,不会有协议上的顾虑。...例如,数据开发曾经反馈查询 Doris SQL 失败,检索日志出现了大量连接数超限的异常,我们通过审计日志,迅速定位到了问题原因是由于上游导入工作流 Bug 在短时间内创建较多的数据库连接。...Doris 具有完善的监控机制和审计机制,极大的降低了我们的运维工作 Doris 社区十分活跃,在我们使用 Doris 过程中遇到的一些疑难问题,官方也可以及时进行响应、处理。

    1.1K21

    ShutdownHook妙用

    JVM直接关闭对服务端的影响,可供参考: 「客户端主动发送断开连接:」 当客户端在与服务器建立的 HTTPS 连接上主动发送断开连接请求(通过关闭连接),服务器会接收到这个请求,并根据 HTTP 协议的规范进行处理...服务器会知道连接被关闭,这可以触发服务器端的一些清理操作,例如释放连接资源,清理会话状态等。这是一个正常的连接关闭过程,服务器端会收到关闭连接的通知。...「客户端直接关闭:」 当客户端断开与服务端连接(例如断网),服务器无法立即感知到这个变化。这是因为客户端和服务器之间的连接是通过网络进行的,服务器没有直接的方式知道客户端是否断开了网络连接。...在这种情况下,服务器会等待一段时间,直到发现客户端不再发送请求或响应。服务器可能会将这个连接保持一段时间,然后最终超时并关闭连接。 总之,客户端主动发送断开连接是一个明确的行为,服务器能够立即响应。...应对JVM异常退出 如果你在使用docker和k8s的话,压测很容易导致JVM进程被迫退出。

    17930

    你需要知道的开源项目

    HikariCP HikariCP是一个“零开销”的数据库连接池,作为数据库连接池的后起之秀,它的快速、简单、可靠值得你去体验,github:https://github.com/brettwooldridge...Java SE 8之前的标准日期和时间类使用上感觉不是很友好,Joda-Time在Java SE 8之前提供了很多便利,8开始的版本仍可以使用其特殊的便捷,直通地址:http://www.joda.org...Apache POI Apache POI是Apache的开源库,用于操作Excel、Word、PowerPoint,直通地址:https://poi.apache.org/ Jackson Jackson...Mockito Mockito是在Java中进行单元测试的模拟框架,通过Mockito可以创建和配置Mock对象,简化有外部依赖类的测试,不仅可以模拟外部依赖,还可以判断测试是否通过,直通地址:http...同时,可以使用HttpAsyncClient完成异步、事件驱动I/O模型的HTTP客户端,直通地址:http://hc.apache.org/ END

    68620

    内存泄露排查之线程泄露

    各种连接,数据库、网络、IO等 内部类和外部模块等的引用: 内部类的引用是比较容易遗忘的一种,而且一旦没释放可能导致一系列的后继类对象没有释放。...问题代码块 方法开始(每次都初始化一个新的客户端,底层封装使用httpAsyncClient,httpAsyncClient使用NIO模型,初始化包含一个boss,10个work线程) ?...shutdown 这里就不做分析了,调用后,线程都会跳出死循环,结束线程,关闭链接等好多清理动作 疑问 虽然每次方法调用都是new新的客户端,但是结束finally中都调用了shutDown,为何会关闭失败...close 方法内部,在线程连接池关闭以后, httpclient对应线程还处于运行之中,一直阻塞在epollWait,详见上面的线程状态,这里目前没有确定下为什么调用shutdown之后线程关闭失败,...也没有任何异常日志,但是这是导致线程泄露的主要原因 在本地测试shutdown方法可正常关闭,很是奇怪。

    3.1K40

    内存泄露排查之线程泄露

    各种连接,数据库、网络、IO等 内部类和外部模块等的引用: 内部类的引用是比较容易遗忘的一种,而且一旦没释放可能导致一系列的后继类对象没有释放。...问题代码块 方法开始(每次都初始化一个新的客户端,底层封装使用httpAsyncClient,httpAsyncClient使用NIO模型,初始化包含一个boss,10个work线程) ?...shutdown 这里就不做分析了,调用后,线程都会跳出死循环,结束线程,关闭链接等好多清理动作 疑问 虽然每次方法调用都是new新的客户端,但是结束finally中都调用了shutDown,为何会关闭失败...close 方法内部,在线程连接池关闭以后, httpclient对应线程还处于运行之中,一直阻塞在epollWait,详见上面的线程状态,这里目前没有确定下为什么调用shutdown之后线程关闭失败,...也没有任何异常日志,但是这是导致线程泄露的主要原因 在本地测试shutdown方法可正常关闭,很是奇怪。

    2.6K10
    领券