java handlersocket_HandlerSocket java客户端「建议收藏」

java handlersocket_HandlerSocket java客户端「建议收藏」MySQL中有个handlersocket,直接跳过数据库处理中的sql分析过程,直接调用存储引擎的接口,可以大幅度提升数据库的性能。我的测试中,使用handlersocket与sql,可以提升约3-5倍,在我的环境中单条“增删改查”可以达到2.5TPS左右,没有作者说得可以达到10万TPS。有一个hs4j的java客户端,但是有些功能没有完善,还有一个不太正常的现象,就是连接时间长了,就会断开,…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

MySQL中有个handlersocket,直接跳过数据库处理中的sql分析过程,直接调用存储引擎的接口,可以大幅度提升数据库的性能。我的测试中,使用handlersocket与sql,可以提升约3-5倍,在我的环境中单条“增删改查”可以达到2.5TPS左右,没有作者说得可以达到10万TPS。

有一个hs4j的java客户端,但是有些功能没有完善,还有一个不太正常的现象,就是连接时间长了,就会断开,没有定位具体的原因。所以自己写了客户端,基于netty 4,算是对netty 4的一次尝试,netty 4与netty 3区别很大。

代码已在github开源:

https://github.com/flyinmind/HandlerSocket4Java

代码结构比较清晰,HSBenchMark.java是性能测试程序,也是调用样例,com.huodian.hs4j.command中是处理协议命令的类,com.huodian.hs4j.netty中处理netty相关的内容。

可以支持批量处理,在我的环境中,批量处理并没有大幅度提升性能,我分析,瓶颈应该在数据库,所以批量没有提升性能,但是在批量时,客户端CPU占用会下降。使用InnoDB于MyISAM存储引擎都试过,虽然官网说支持InnoDB,但是MyISAM引擎也是可以的,比InnoDB更快。

数据库服务器中innodb_buffer_pool_size设置为8G,数据量最大3200万行,每行7列。32万->320万->3200万的数据量都尝试过,数据量上升时,性能没有明显下降,可能是内存没有利用起来。随着数据量上升,内存消耗逐步上升,3200万行时只占用了2G内存,内存没有用起来,不知道有什么设置可以将内存充分用起来。

handlersocket优点,相当于sql性能更高,相对于memcached,可以持久化,支持多列等,因为基于存储引擎,所以数据库的集群也是可以支持的(我没测试),使用handlersocket时,服务端CPU消耗更少。

但是,有个比较大的缺点,有handlersocket客户端连接时,我测试的是,这时不能调整表结构。同时查询只能基于索引,不能关联多个表等(这些都是可以接受的)。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172626.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • RenderControl输出html遇到的问题

    RenderControl输出html遇到的问题当我直接在后台用GridView gv=new GridView();gv.RenderControl(htmlwrite);没有问题,但是如果我从工具直接拖一个GridView到设计页面,在后台gv.RenderControl(htmlwrite);就会出现Control GridViewTotal of type GridView must be placed inside a f

    2022年7月20日
    15
  • Android屏幕手写签名的实现-详细篇

    Android屏幕手写签名的实现-详细篇

    2021年3月12日
    246
  • linux awk 数组,shell数组和awk数组

    linux awk 数组,shell数组和awk数组awk终于能入门了,所以整理了该文章,内容大多来自网上。一、bash支持一维数组(不支持多维数组),没有限定数组的大小。在shell中,用括号来表示数组,数组元素用空格符号分割开。类似于C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于01.定义数组数组名array,元素abc[root@localhost~]#array=(ab…

    2022年7月19日
    14
  • Android 随着输入框控件的清除功能ClearEditText,抄IOS输入框

    Android 随着输入框控件的清除功能ClearEditText,抄IOS输入框

    2022年1月14日
    51
  • 最详细的解决:UnboundLocalError: local variable ‘a‘ referenced before assignment

    最详细的解决:UnboundLocalError: local variable ‘a‘ referenced before assignment代码及报错如下解决很多人都非常困惑,为什么在test3中可以直接输出a,但是在test3中,使用a+=1的时候,就直接报错呢?首先,我们需要明确一个概念,就是全局变量与局部变量。如下图,大家觉得打印的a会是1还是3?答案是1,因为定义在test3外部的a是全局变量,而定义在test3内部的a是局部变量。此时,外面这个a与里面这个a没有任何关系。只不过是名字一样而已。其次,我们需要明确在函数内部是可以直接访问到全局变量的,所以上图中test1是可以直接输出a,b的。但是如果是直接在test2中实

    2022年6月16日
    44
  • origin作图图例老是消失_origin画的图不见了

    origin作图图例老是消失_origin画的图不见了记录origin画图遇到的问题及其软件bug解决画图问题如何快速绘制框架画图问题如何快速绘制框架本例子以origin2021版本问题的提出:导入数据之后没有上框和右框(如图)目的:入Excel数据之后直接有上框和右框(也就是能不能设置这么一个模板),如图:解决方法方法一点击图片,找到我红色框的地方,点击即可(据说这种方法在2020版本及其以上即可支持)效果图:方法二:点击查看–显示–框架效果图:PS:美中不足的是,该方法不可以撤销…

    2022年9月21日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号