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

一个网站用两个域名广告公司排名

一个网站用两个域名,广告公司排名,网站开发自学网站,长春有几个站可以坐火车RocketMQ 的设计理念与源码阅读技巧 一、设计理念二、源码设计三、源码阅读技巧 一直想仔细仔细看看这个 RocketMQ 的源码#xff0c;学学它的设计思想和编码风格#xff0c;没准在以后自己在设计和编码的时候有思考的方向。这是专栏的第一篇 —— 介绍下 RocketMQ 的一些设计… RocketMQ 的设计理念与源码阅读技巧 一、设计理念二、源码设计三、源码阅读技巧 一直想仔细仔细看看这个 RocketMQ 的源码学学它的设计思想和编码风格没准在以后自己在设计和编码的时候有思考的方向。这是专栏的第一篇 —— 介绍下 RocketMQ 的一些设计懂其设计和原理才能更好地阅读源码. RocketMQ 是阿里巴巴开发的开发之前他们也使用过当时流行的 Kafka 作为自己的解决方案但是是说它没法满足低延迟、高可靠的要求Kafka 若分区多了对磁盘写来说会出现大量随机写的情况写入性能会下降很多这里说的低延迟与实际使用方式和数据存储实现有关系当然还有其它原因所以它们决定开发一款新的消息传递引擎来满足自己的业务需求。 上面内容来自RocketMQ 官方文档 一、设计理念 咱先聊聊设计一款消息中间件需要具备的要素设计一款消息队列中间件首先它需要对外提供通信路口提供生产、消费消息的路口即需要具备网络通信能力其次就是它得具备数据存储的能力这数据包含消息本身与元数据存储。 了解完设计消息队列的必要元素咱来看看 RocketMQ 的技术架构 主要由四部分组成 NameServer 被用来当做信息管理的注册中心主要是用来管理元数据路由信息。Kafka 元数据管理是用的 Zookeeper而 RocketMQ 是自己写了一个服务实现这个元数据注册中心写的这个服务被称为 NameServerNameServer 被设计出来是一种无状态的即 NameServer 集群之间是不通信的这样做一方面可以满足实际需求的前提下路由信息无需保障集群之间强一致性可以容忍分钟级别的不一致相比 Zookeeper 性能也有极大的提升。 Broker 主要用来做消息存储的服务 Producer、Consumer 消息队列的客户端除了实现消息的发送消费外RocketMQ 很多功能交给了客户端进行实现减轻消息中间件的实现复杂度像消息生产的高可用、消息顺序消费、消费幂等等等这些功能都是交由客户端实现的。 二、源码设计 看源码第一步就是下载源码https://github.com/apache/rocketmq 随后了解一下源码的目录结构 RocketMQ核心目录说明如下 acl权限控制模块brokerbroker模块broker启动进程client消息客户端包含消息生产者和消息消费者相关类common公共包dev开发者信息非源码distribution打包分发目录非源码exampleRocketMQ示例代码filter消息过滤相关基础类logappender日志实现相关类logging自主实现日志相关类namesrvNameServer实现相关类NameServer启动进程openmessaging消息开放标准已发布remoting远程通信模块基于Nettysrvutil服务器工具类store消息存储实现相关类stylecheckstyle相关实现test测试相关类tools工具类监控命令相关实现类 RocketMQ 的网络通信是基于 Netty 实现的这里需要提一下它是如何设计接收网络消息去执行任务的如何进行的编码设计使得它更具拓展更灵活。 其实在服务端NameServer、Broker/客户端Producer、Consumer中都维护了一个 processorTable是一个 k-v 集合key 是服务码 requestCodevalue 是对应的执行单元 PairNettryRequestProcessor, ExecutorService 类型包含了处理 Processor 和执行线程的线程池。里面对应内容在对应业务系统启动的时候会自行注册。 客户端发送网络包的时候会携带 RequestCode服务端接收网络包后进行解码得到 RequestCode然后通过 ProcessorTable 找对应 Processor 任务拿对应线程池进行执行从而实现了异步任务执行。这种服务注册机制简洁且灵活。 类似这种使用 Netty 实现通信然后与业务结合的编码设计我在 IM 系统、货柜系统也看见过。 三、源码阅读技巧 先理解相应底层原理再去针对性的看源码实现学习编码验证原理源码阅读建议起始点 Broker 启动BrokerStartup#start、NameServer 启动NamesrvStartup#start、客户端相关的源码阅读可以从 example 目录下的用例直接入手 不太建议 Debug 阅读源码建议静态看源码看不懂的地方再尝试调试跟进。一方面是对这种能力的培养另一方面中间件源码不同于业务系统中间件源码堆栈太多容易绕晕而且很多异步书籍与博客辅助看源码 书籍推荐《RocketMQ 技术内幕》 反复看
http://www.hkea.cn/news/14526448/

相关文章:

  • 网上商城 网站建设 解决方案关键词推广平台
  • 企业官方网站建设方案wordpress js 插件开发
  • 科技类网站风格注册城乡规划师2023年考试时间
  • python做网站难么保险哪家好
  • 人工智能写作网站群晖WordPress无端口号
  • jsp网站服务建设开题报告公司建网站会计分录
  • 徐州 商城网站网站的换肤功能怎么做
  • 如何在本地发布自己做的网站广告设计创意图片
  • 新闻资讯网站备案杭州建设公司网站
  • 建立网站内容深圳工程造价信息网官网
  • 河南建设信息网站英文网站制作 官网
  • 天猫网站是用什么技术做的小程序开发兼职的注意要点
  • 有什么好的互联网平台做网站天津快速排名
  • 网站建设中申请备案北京工信部查网站备案
  • 做公司网站的费用计入什么科目海南seo关键词
  • 国外wordpress主题站seo实战培训seo8
  • 摄影作品共享网站开发背景企业网站员工园地建设
  • 网站后台发文章图片链接怎么做电子商务网页设计论文
  • 成都正规集团网站制作维护wordpress icon 插件
  • 网站制作完成后应进入什么阶段微信朋友圈软文大全
  • 济南pc网站建设公司宿迁网络科技有限公司
  • 做公司网站用哪个空间好python基础教程入门
  • 汨罗网站seo洛阳做多屏合一网站
  • 网站策划案范文百度添加到桌面
  • 网站建设厂家有后台的网站模版
  • 精品课程网站怎么做做定制的网站
  • 商务网站建设策划书昌平网站建设
  • 低多边形网站网页界面设计艺术教程
  • 网站规划的意义广告网站模板下载不了
  • wordpress wp_post小程序定制 seo营销