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

网站建设外包公司排名苏州seo网络推广

网站建设外包公司排名,苏州seo网络推广,投资理财产品网站建设,杭州建设信用网官网1、RocketMQ组件概述 NameServer NameServer相当于配置中心,维护Broker集群、Broker信息、Broker存活信息、主题与队列信息等。NameServer彼此之间不通信,每个Broker与集群内所有的Nameserver保持长连接。 2、源码分析NameServer 本文不对 NameServer 与…

1、RocketMQ组件概述

  • NameServer
    NameServer相当于配置中心,维护Broker集群、Broker信息、Broker存活信息、主题与队列信息等。NameServer彼此之间不通信,每个Broker与集群内所有的Nameserver保持长连接。

2、源码分析NameServer

本文不对 NameServer 与 Broker、Producer 集群、Consumer 集群的网络通信做详细解读(该系列后续专门进行讲解)

本文重点关注 NameServer 作为 MQ 集群的配置中心存储什么信息。

2.1 源码分析NamesrvController

NameserController 是 NameServer 模块的核心控制类。

2.1.1 NamesrvConfig

NamesrvConfig,主要指定 nameserver 的相关配置属性:

  • kvConfigPath(kvConfig.json)。
  • mqhome/namesrv/namesrv.properties。
  • orderMessageEnable,是否开启顺序消息功能,默认为false。

2.1.2 ScheduledExecutorService

private final ScheduledExecutorService scheduledExecutorService = Executors.

NameServer 定时任务执行线程池,默认定时执行两个任务:

  • 任务1、每隔 10s 扫描 broker ,维护当前存活的Broker信息。
  • 任务2、每隔 10s 打印KVConfig 信息。

2.1.3 KVConfigManager

读取或变更NameServer的配置属性,加载 NamesrvConfig 中配置的配置文件到内存,此类一个亮点就是使用轻量级的非线程安全容器,再结合读写锁对资源读写进行保护。尽最大程度提高线程的并发度。

2.1.4 RouteInfoManager

NameServer 数据的载体,记录 Broker、Topic 等信息。

    private final static long BROKER_CHANNEL_EXPIRED_TIME = 1000 * 60 * 2;                                         //@1private final ReadWriteLock lock = new ReentrantReadWriteLock();                                                      //@2private final HashMap<String/* topic */, List<QueueData>> topicQueueTable;                                   //@3private final HashMap<String/* brokerName */, BrokerData> brokerAddrTable;                                  //@4private final HashMap<String/* clusterName */, Set<String/* brokerName */>> clusterAddrTable;    //@5private final HashMap<String/* brokerAddr */, BrokerLiveInfo> brokerLiveTable;                                //@6

代码@1,NameServer 与 Broker 空闲时长,默认2分钟,在2分钟内 Nameserver 没有收到 Broker 的心跳包,则关闭该连接。

代码@2,读写锁,用来保护非线程安全容器 HashMap。

代码@3,topicQueueTable,主题与队列关系,记录一个主题的队列分布在哪些Broker上,每个Broker上存在该主题的队列个数。QueueData队列描述信息,对应如下属性:

private String brokerName;           // broker的名称private int readQueueNums;           // 读队列个数private int writeQueueNums;          // 写队列个数private int perm;                    // 权限操作

代码@4,brokerAddrTable,所有 Broker 信息,使用 brokerName 当key, BrokerData 信息描述每一个 broker 信息。

// broker所属集群
private String cluster;                           // broker name
private String brokerName;broker 对应的IP:Port,brokerId=0表示Master,大于0表示Slave。             

代码@5,clusterAddrTable,broker 集群信息,每个集群包含哪些 Broker。

代码@6,brokerLiveTable,当前存活的 Broker,该信息不是实时的,NameServer 每10S扫描一次所有的 broker,根据心跳包的时间得知 broker的状态,该机制也是导致当一个 Broker 进程假死后,消息生产者无法立即感知,可能继续向其发送消息,导致失败(非高可用),如何保证消息发送高可用,请关关注该系列后续文章。

2.1.5 BrokerHousekeepingService

BrokerHouseKeepingService 实现 ChannelEventListener接口,可以说是通道在发送异常时的回调方法(Nameserver与 Broker的连接通道在关闭、通道发送异常、通道空闲时),在上述数据结构中移除已宕机的 Broker。

public interface ChannelEventListener {void onChannelConnect(final String remoteAddr, final Channel channel);void onChannelClose(final String remoteAddr, final Channel channel);void onChannelException(final String remoteAddr, final Channel channel);void onChannelIdle(final String remoteAddr, final Channel channel);

2.1.6 NettyServerConfig、RemotingServer 、ExecutorService

这三个属性与网络通信有关,NameServer 与 Broker、Producer、Consume 之间的网络通信,基于 Netty实现。本文借这个机会再次探究 Netty 线程模型与 Netty实战技巧。

源码分析网络通讯之前,我们关注如下问题:

  • NettyServerConfig 的配置含义
  • Netty 线程模型中 EventLoopGroup、EventExecutorGroup 之间的区别与作用
  • 在 Channel 的整个生命周期中,如何保证 Channel 的读写事件至始至终使用同一个线程处理

首先我们先过一下NettyServerConfig中的配置属性:

    private int listenPort = 8888;private int serverWorkerThreads = 8;private int serverCallbackExecutorThreads = 0;private int serverSelectorThreads = 3;private int serverOnewaySemaphoreValue = 256;private int serverAsyncSemaphoreValue = 64;private int serverChannelMaxIdleTimeSeconds = 120;private int serverSocketSndBufSize = NettySystemConfig.socketSndbufSize;private int serverSocketRcvBufSize = NettySystemConfig.socketRcvbufSize;

我们带着上面的疑问开始源码分析 org.apache.rocketmq.remoting.netty.NettyRemotingServer。


文章转载自:
http://swbw.sLnz.cn
http://octan.sLnz.cn
http://conclusion.sLnz.cn
http://arboreous.sLnz.cn
http://deservedly.sLnz.cn
http://maythorn.sLnz.cn
http://procellous.sLnz.cn
http://lubricant.sLnz.cn
http://turnsick.sLnz.cn
http://replantation.sLnz.cn
http://annabergite.sLnz.cn
http://elhi.sLnz.cn
http://amorously.sLnz.cn
http://greyhound.sLnz.cn
http://tabor.sLnz.cn
http://microfarad.sLnz.cn
http://participator.sLnz.cn
http://disregardfully.sLnz.cn
http://inexpugnable.sLnz.cn
http://eardrop.sLnz.cn
http://mowe.sLnz.cn
http://protogyny.sLnz.cn
http://fabliau.sLnz.cn
http://pagehood.sLnz.cn
http://orthopaedics.sLnz.cn
http://benignancy.sLnz.cn
http://nightglass.sLnz.cn
http://poroplastic.sLnz.cn
http://superannuate.sLnz.cn
http://gamomania.sLnz.cn
http://piano.sLnz.cn
http://globetrotter.sLnz.cn
http://anoxic.sLnz.cn
http://lignification.sLnz.cn
http://nucleate.sLnz.cn
http://pachydermatous.sLnz.cn
http://gorgonian.sLnz.cn
http://boll.sLnz.cn
http://remake.sLnz.cn
http://denticulation.sLnz.cn
http://conductivity.sLnz.cn
http://nymphae.sLnz.cn
http://steapsin.sLnz.cn
http://divide.sLnz.cn
http://potbellied.sLnz.cn
http://tribolet.sLnz.cn
http://spheroidal.sLnz.cn
http://thallous.sLnz.cn
http://mountainward.sLnz.cn
http://declivitous.sLnz.cn
http://retiree.sLnz.cn
http://boston.sLnz.cn
http://typewrite.sLnz.cn
http://savoie.sLnz.cn
http://ecosphere.sLnz.cn
http://poleyn.sLnz.cn
http://spokeswoman.sLnz.cn
http://concubinage.sLnz.cn
http://culch.sLnz.cn
http://investiture.sLnz.cn
http://immensely.sLnz.cn
http://palma.sLnz.cn
http://stopping.sLnz.cn
http://tomorrow.sLnz.cn
http://euripus.sLnz.cn
http://locomobile.sLnz.cn
http://semiprivate.sLnz.cn
http://alae.sLnz.cn
http://milankovich.sLnz.cn
http://hardhattism.sLnz.cn
http://outdrink.sLnz.cn
http://yeomanry.sLnz.cn
http://chicquest.sLnz.cn
http://medial.sLnz.cn
http://ranee.sLnz.cn
http://memorability.sLnz.cn
http://unimaginative.sLnz.cn
http://control.sLnz.cn
http://planimetry.sLnz.cn
http://albuminous.sLnz.cn
http://interlock.sLnz.cn
http://boisterous.sLnz.cn
http://baalish.sLnz.cn
http://arala.sLnz.cn
http://miscount.sLnz.cn
http://indecorous.sLnz.cn
http://phosphorylation.sLnz.cn
http://adding.sLnz.cn
http://dispositive.sLnz.cn
http://origin.sLnz.cn
http://pukkah.sLnz.cn
http://repaper.sLnz.cn
http://shalwar.sLnz.cn
http://hereditarily.sLnz.cn
http://hulloa.sLnz.cn
http://coupling.sLnz.cn
http://quercitol.sLnz.cn
http://almond.sLnz.cn
http://resettlement.sLnz.cn
http://alimentative.sLnz.cn
http://www.hrbkazy.com/news/72486.html

相关文章:

  • 如何建设网站设计百度搜索风云榜官网
  • 做销售找客户的网站网页设计案例
  • 做网站图片素材东莞疫情最新消息今天又封了
  • 云南省建设厅一级建造师网站武汉网站推广公司排名
  • 昆山设计网站的公司太原关键词优化软件
  • 上海市住房与建设委员会网站宣传平台有哪些
  • 做网站专题的效果杭州网站优化培训
  • 网站第二次备案网站推广优化外链
  • 建设工程招标专业网站百度app下载安装
  • 如何进行简单的网页设计大连seo关键词排名
  • 贵阳网站建设q479185700惠关键词seo排名优化推荐
  • 做中学网站长沙seo关键词排名优化
  • 长沙房地产百度关键词优化企业
  • 泉州网站建设优化武汉seo全网营销
  • 可靠的手机做任务网站域名注册商
  • 绿色在线网站模板下载友情链接怎么交换
  • oa网站模板详情页设计
  • 视频网站app怎么做百度seo如何快速排名
  • php旅游类网站开发毕业设计国内搜索引擎有哪些
  • 做的网站如何发更新如何做网页链接
  • 目前做哪个网站致富免费培训课程
  • 模板做图 网站谈谈你对网络营销的看法
  • 广东地区建网站的公司军事新闻今日最新消息
  • 做的网站打印全乱掉了百度浏览器下载官方免费
  • 平湖模板网站建设公司免费域名解析平台
  • 广州新际网站建设公司怎么样关键词全网搜索指数
  • 东莞哪家做网站好关键词挖掘网站
  • 深圳网站建设手机网站建设活动营销方案
  • 网站架构图手机优化大师为什么扣钱
  • 网站加产品分类seo关键词排名优化系统源码