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

网站系统建设合同北京昌平网站建设

网站系统建设合同,北京昌平网站建设,网页设计公司兴田德润i优惠吗,快速企业建站这是本人学习的总结,主要学习资料如下 马士兵教育rocketMq官方文档 目录 1、Overview1.1、创建MQClientInstance1.1.1、检查1.1.1、MQClientInstance的ID 1.2、MQClientInstance.start() 1、Overview 这是发送信息的代码样例, DefaultMQProducer produ…

这是本人学习的总结,主要学习资料如下

  • 马士兵教育
  • rocketMq官方文档

目录

  • 1、Overview
    • 1.1、创建MQClientInstance
      • 1.1.1、检查
      • 1.1.1、MQClientInstance的ID
    • 1.2、MQClientInstance.start()

1、Overview

在这里插入图片描述

这是发送信息的代码样例,

DefaultMQProducer producer = new DefaultMQProducer(PRODUCER_GROUP);
producer.setNamesrvAddr(DEFAULT_NAMESRVADDR);
producer.start();
for (int i = 0; i < MESSAGE_COUNT; i++) {try {Message msg = new Message(TOPIC, TAG, ("Hello RocketMQ " + i).getBytes(RemotingHelper.DEFAULT_CHARSET));SendResult sendResult = producer.send(msg);System.out.printf("%s%n", sendResult);} catch (Exception e) {e.printStackTrace();Thread.sleep(1000);}
}
producer.shutdown();

生产者启动最少需要两个信息,groupnameSrvAddr。启动的源码则是producer#start()中。

最终RocketMQ会创建MQClientInstance的实例,然后在调用MQClientInstance#start()完成生产者的启动。

1.1、创建MQClientInstance

1.1.1、检查

代码线索DefaultMQProducer#start() -> DefaultMQProducerImpl#start() -> DefaultMQProducerImpl#checkConfig()

创建MQClientInstance前做前置检查,主要是检查group的格式,并且不能和系统的group重命。

1.1.1、MQClientInstance的ID

MQClientInstanceMQClientManager进行管理。MQClientManager整个JVM中只有一个实例,其内部用ConcurrentMap<String, MQClientManager>管理着所有的MQClientInstance,其中的String可以看成是每个MQClientInstance的id,下面通过源码查看id是如何组成的。

代码线索DefaultMQProducer#start() -> DefaultMQProducerImpl#start() -> MQClientManager#getInstance()#getOrCreateMQClientInstance() -> ClientConfig#buildMQClientId()

public String buildMQClientId() {StringBuilder sb = new StringBuilder();sb.append(this.getClientIP());sb.append("@");sb.append(this.getInstanceName());if (!UtilAll.isBlank(this.unitName)) {sb.append("@");sb.append(this.unitName);}if (enableStreamRequestType) {sb.append("@");sb.append(RequestType.STREAM);}return sb.toString();
}

很明显,每个MQClientInstance的ID主要是由IPinstanceNameunitName组成,其中instanceNameunitName都可以设置。所以如果我们想要创建多个MQClientInstance使用的话,可以设置不同的instanceNameunitName


1.2、MQClientInstance.start()

启动一些线程池,心跳服务。

public void start() throws MQClientException {synchronized (this) {switch (this.serviceState) {case CREATE_JUST:this.serviceState = ServiceState.START_FAILED;// If not specified,looking address from name serverif (null == this.clientConfig.getNamesrvAddr()) {this.mQClientAPIImpl.fetchNameServerAddr();}// Start request-response channel// NRC startthis.mQClientAPIImpl.start();// Start various schedule tasksthis.startScheduledTask();// Start pull servicethis.pullMessageService.start();// Start rebalance servicethis.rebalanceService.start();// Start push servicethis.defaultMQProducer.getDefaultMQProducerImpl().start(false);log.info("the client factory [{}] start OK", this.clientId);this.serviceState = ServiceState.RUNNING;break;case START_FAILED:throw new MQClientException("The Factory object[" + this.getClientId() + "] has been created before, and failed.", null);default:break;}}
}
http://www.yayakq.cn/news/488612/

相关文章:

  • 邢台网站设计哪家好怎么网站推广
  • 太原企业网站制作公司手机app是怎么开发出来的
  • wordpress建站不知道密码千阳县住房和城乡建设局网站
  • 亚翔建设集团有限公司网站最吸引人的汽车广告语
  • 天津滨海新区网站建设企业网站可以做跨境电商吗
  • 常熟专业做网站义乌小商品市场进货渠道
  • 个人网站备案内容不合格网站做支付需要准备什么
  • 商城网站建设资讯wordpress 微信分享
  • 专业酒店建设信息网站用WordPress配置cms
  • 红酒公司的网站建设网站设计制作花多少钱
  • 企业网站本身应该就是企业( )的一部分工业和信息化部icp网站备案系统
  • 电子商务网站建设计划做游戏音频下载网站
  • 做网站要准备的资料福州外语外贸学院
  • 网站建设CEO苏州网站建设网络推广
  • 萧山工程建设有限公司网站项目网站开发
  • 西安好的网站建设公司排名交友wordpress
  • 怎么在网站上做网页网页制作公司哪家比较好
  • 标准营销型网站定做价格小制作 简单 步骤
  • 深圳招聘网站哪个好美橙互联网站打不开
  • 盘锦做网站门户网站都在哪推广
  • 奢侈品网站 方案移动端网页界面设计
  • 大连企业网站建设模板wordpress 随机数
  • 网站倒计时代码网站建设核心点
  • 公共资源交易中心网站建设汇报宿迁经济技术开发区属于哪个区
  • 贵州省遵义市建设局网站wordpress免费网站模板
  • 吕子乔做网站吹的语录网站建设时间
  • 京东网上商城怎么看订单深圳企业seo
  • 临沂专业网站建设设计公司网站开发新闻怎么写
  • 那个网站做精防手机电脑在哪里制作网站
  • 关于宠物的网站网页设计网站建设 微信开发