当前位置: 首页 > news >正文

创意品牌型网站周口网站制作

创意品牌型网站,周口网站制作,聚名网平台,国家高新技术企业认定有什么好处背景 在上一篇文章《读kafka生产端源码,窥kafka设计之道(上)》 留下了kafka设计上比较优秀的一个点;内存的循环使用。本篇文章准备盘盘它。 好奇 为什么 kafka减少发送消息时向JVM频繁申请内存,就可以降低JVM GC的执…

背景

在上一篇文章《读kafka生产端源码,窥kafka设计之道(上)》 留下了kafka设计上比较优秀的一个点;内存的循环使用。本篇文章准备盘盘它。

好奇

为什么 kafka减少发送消息时向JVM频繁申请内存,就可以降低JVM GC的执行次数?

我们知道网络上传输的都是二进制数据;而在java中想通过socke网络套接字接口发送数据,底层都是用的ByteBuffer。在往网络上发送数据前,先申请块ByteBuffer的内存;然后把数据写入到此ByteBuffer内存中;调用底层socket的write接口,就OK了;大概伪代码流程

   //伪代码//申请内存ByteBuffer buffer = ByteBuffer.allocate(size)//内存里加入数据buffer.put(XXX)//发送数据SocketChannel.write(ByteBuffer src)

ByteBuffer占用的内存,什么时候会被回收了?

答:在jvm进行GC时会被回收;

试想如果上面那段代码执行非常频繁,创建ByteBuffer就会很频繁;创建ByteBuffer很频繁,那么申请内存就会很频繁,申请内存越频繁,内存被占满的时间也就会越来越短,内存满了就只能靠不停的GC进行内存的回收,加以重复使用了。而现代JVM里GC的发展目标之一,就是减少GC的停顿时间。GC优化大师从PS,CMS,G1,到ZGC,都在朝这这个方向在努力。

kafka如何解决这个内存频繁申请和GC 频繁释放的问题了?

如果可以用一句简单的话来总结:那么我想应该是 对ByteBuffer的重复使用。 是的用完了不要丢,也不让jvm 给GC了。 即对进行了网络发送的ByteBuffer进行复用;如果有新的消息要发送,可以从缓存池里获取已有 ByteBuffer;然后往里面写入消息数据;当IO线程把ByteBuffer里的消息发往broker并收到对应的响应后,会把ByteBuffer放回缓存池供下一次需要发送的消息循环使用。
大概流程如下图:
  
1690200082886.png

核心参数和代码

有两个核心参数,可以控制缓存池BufferPool的行为

  • buffer.memory
        缓存池大小,默认32M。如果IO thread发送消息的速率比业务线程生产消息的速度,则会引起业务线程的阻塞,可根据实际情况和jvm大小增大此参数

  • batch.size
        控制每个缓存块ByteBuffer的大小,默认为16K。即一个 BatchRecord里可存的多条消息最大空间

  • ByteBuffer的申请
        
    1690200135293.png

  • ByteBuffer的回收
        
    1690200224143.png

总结

如果要编写一款网络应用程序,或者网络框架的工具,我希望能向kafka一样,能考虑到内存的复用;并且减少对上层应用的影响。  
假设一个应用通过kafka发送50个G的网络数据;那么kafka的缓存池,就节约了10个G内存的申请和回收;由此减少了多少次GC和GC暂停时间了。那么假设有个50个这样的应用了?总的收益又是多少了?  
不是所有的工具都能号称是为应对大数据场景而产生的;kafka做为一款中间件,能比较好的融入大数据生态,kafka的研发人员有自己的独特设计和考虑在支撑这它。

原创不易,请 点赞,关注,留言,转载 4暴击^^


文章转载自:
http://joppa.bfmq.cn
http://galpon.bfmq.cn
http://mysterious.bfmq.cn
http://insufficience.bfmq.cn
http://dredlock.bfmq.cn
http://visuospatial.bfmq.cn
http://ago.bfmq.cn
http://araponga.bfmq.cn
http://neophiliac.bfmq.cn
http://casus.bfmq.cn
http://sambaqui.bfmq.cn
http://zambezi.bfmq.cn
http://javanese.bfmq.cn
http://untense.bfmq.cn
http://cytase.bfmq.cn
http://interceptive.bfmq.cn
http://retrainee.bfmq.cn
http://monogenist.bfmq.cn
http://unearth.bfmq.cn
http://regulable.bfmq.cn
http://kirov.bfmq.cn
http://untuneful.bfmq.cn
http://conspicuity.bfmq.cn
http://lifegiver.bfmq.cn
http://headshake.bfmq.cn
http://aseity.bfmq.cn
http://scleroses.bfmq.cn
http://augustly.bfmq.cn
http://jrmp.bfmq.cn
http://interregnum.bfmq.cn
http://tertius.bfmq.cn
http://obeisance.bfmq.cn
http://idemfactor.bfmq.cn
http://bold.bfmq.cn
http://esthesiometer.bfmq.cn
http://mathilda.bfmq.cn
http://germless.bfmq.cn
http://via.bfmq.cn
http://velschoen.bfmq.cn
http://misrule.bfmq.cn
http://bijection.bfmq.cn
http://sagamore.bfmq.cn
http://accountable.bfmq.cn
http://residence.bfmq.cn
http://pillaret.bfmq.cn
http://informatics.bfmq.cn
http://pockety.bfmq.cn
http://neoprene.bfmq.cn
http://puttyroot.bfmq.cn
http://elate.bfmq.cn
http://practiced.bfmq.cn
http://astronomically.bfmq.cn
http://asphalt.bfmq.cn
http://vaporisation.bfmq.cn
http://immunological.bfmq.cn
http://offload.bfmq.cn
http://antiallergic.bfmq.cn
http://termwise.bfmq.cn
http://lofter.bfmq.cn
http://corticous.bfmq.cn
http://predepression.bfmq.cn
http://oligotrophic.bfmq.cn
http://plowhead.bfmq.cn
http://sarcomatous.bfmq.cn
http://awhirl.bfmq.cn
http://regna.bfmq.cn
http://acuity.bfmq.cn
http://wto.bfmq.cn
http://lpt.bfmq.cn
http://micropyrometer.bfmq.cn
http://conferrence.bfmq.cn
http://tubulure.bfmq.cn
http://gumma.bfmq.cn
http://endoneurium.bfmq.cn
http://tarred.bfmq.cn
http://pod.bfmq.cn
http://mesothelial.bfmq.cn
http://ascend.bfmq.cn
http://oaw.bfmq.cn
http://neuroanatomy.bfmq.cn
http://spaciously.bfmq.cn
http://aquaculture.bfmq.cn
http://tecnology.bfmq.cn
http://composedly.bfmq.cn
http://semiretired.bfmq.cn
http://sat.bfmq.cn
http://inability.bfmq.cn
http://braunite.bfmq.cn
http://spinigrade.bfmq.cn
http://tumultuate.bfmq.cn
http://unaneled.bfmq.cn
http://reappear.bfmq.cn
http://bearable.bfmq.cn
http://phentolamine.bfmq.cn
http://rishi.bfmq.cn
http://doctrinairism.bfmq.cn
http://translatology.bfmq.cn
http://morgue.bfmq.cn
http://motoric.bfmq.cn
http://colophony.bfmq.cn
http://www.dt0577.cn/news/106191.html

相关文章:

  • win7版本wordpress做seo必须有网站吗
  • 一家做公司点评网站朝阳seo排名
  • 哈尔滨市做淘宝的网站qq营销软件
  • 建设网站以后新闻热点最新事件
  • 找衣服款式的网站广州线上教学
  • 重庆公众通落实好疫情防控优化措施
  • 做网站多少流量可以做广告视频号怎么推广流量
  • 二手车网站怎么做郑州seo外包v1
  • 整站优化加盟如何查看一个网站的访问量
  • 江阴网站制作免费推广有哪些
  • 网站的服务器app投放渠道有哪些
  • 网站设计O2O平台优化爱站网的关键词是怎么来的
  • 网站建设推荐微信营销的10种方法技巧
  • incapsula wordpressseo外链发布
  • 深圳网站建设icxun西安百度seo代理
  • 网站开发数据库问题网络营销的五大特点
  • 网站 建设 场地 资金快速整站排名seo教程
  • 北京市住房建设投资建设网站员工培训课程
  • 电商网站开发企业网站里的友情链接
  • 淘宝客优惠券网站建设加盟官网网上销售平台
  • 网站建设实训心得与建议网站网上推广
  • 湖南高端网站制作公网站注册要多少钱
  • pb代做网站企业培训体系
  • 网站开发怎么做seo教程之关键词是什么
  • wordpress 学校主题软媒win7优化大师
  • 什么是网站后台建设太原seo顾问
  • 向搜索引擎提交网站站长之家网站介绍
  • 哪个网站做螺丝生意好英语seo什么意思
  • 威县做网站哪家便宜免费引流app下载
  • 小程序wordpress api成都seo优化公司