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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 可能错误使用了‘offsetof’宏

    可能错误使用了‘offsetof’宏最近代码里引进了一个宏offsetof(s,m),原来一直在windows上开发,今天发现在linux编译的日志中出现了如下的警告:xxxx.cpp:8:警告:对NULL对象非静态数据成员‘XXX::xxx’的访问无效xxxx.cpp:8:警告:(可能错误使用了‘offsetof’宏)

    2022年8月22日
    5
  • mysql分区表_MySQL分区表的正确使用方法

    mysql分区表_MySQL分区表的正确使用方法MySQL分区表概述我们经常遇到一张表里面保存了上亿甚至过十亿的记录,这些表里面保存了大量的历史记录。对于这些历史数据的清理是一个非常头疼事情,由于所有的数据都一个普通的表里。所以只能是启用一个或多个带where条件的delete语句去删除(一般where条件是时间)。这对数据库的造成了很大压力。即使我们把这些删除了,但底层的数据文件并没有变小。面对这类问题,最有效的方法就是在使用分区表。最常…

    2022年6月4日
    29
  • Windows10下安装Git

    Windows10下安装GitGit是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。具体安装步骤如下:第一步:先从官网下载最新版本的Git官网地址:https://git-scm.com/downloads点击上图中表示的地方进行下载,得到Git-2.17.1.2-64-bit.exe文件。如果你的系统是32位的,可以通过如下方式下载:第二步:双击下载好的git安装包,弹出提示框,如下图:第三…

    2022年6月11日
    38
  • 报错注入是什么?一看你就明白了。报错注入原理+步骤+实战案例「建议收藏」

    报错注入是什么?一看你就明白了。报错注入原理+步骤+实战案例「建议收藏」报错注入怎么使用,报错注入步骤,报错注入原理,报错注入使用。

    2022年9月30日
    2
  • noip2014普及组初赛答案_观光3路公交车路线

    noip2014普及组初赛答案_观光3路公交车路线风景迷人的小城Y市,拥有n个美丽的景点。由于慕名而来的游客越来越多,Y市特意安排了一辆观光公交车,为游客提供更便捷的交通服务。观光公交车在第0分钟出现在1号景点,随后依次前往2、3、4……n号景点。从第i号景点开到第i+1号景点需要Di分钟。任意时刻,公交车只能往前开,或在景点处等待。设共有m个游客,每位游客需要乘车1次从一个景点到达另一个景点,第i位游客在Ti分钟来到景点Ai,希望乘车前往景点Bi(Ai

    2022年9月24日
    1
  • ceph osd heartbeat 分析

    ceph osd heartbeat 分析Introduction 大规模分布式系统中 各种异常情况时有发生 如系统宕机 网络故障 磁盘损坏等等都有可能造成集群内部节点无法通信 一个分布式系统要正常协调地运转 内部各节点进程间需要通过心跳机制来保证各节点处于正常工作状态 一旦发现故障 及时响应 本文简单对 cephosd 进程间的心跳机制加以分析 HeartBeatMes 进程间心跳消息 需要通过 ceph 网络层

    2025年9月30日
    3

发表回复

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

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