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

网站服务公司代买空间有无义务百度seo sem

网站服务公司代买空间有无义务,百度seo sem,长春地区网站建设,晋中网站建设Producer发送普通消息的方式 1.同步发送消息 同步消息代表发送端发送消息到broker之后,等待消息发送结果后,再次发送消息 实现步骤 创建生产端,声明在哪个生产组注册NameServer地址构建Message实体,指定topic、tag、body启动…

Producer发送普通消息的方式

1.同步发送消息

同步消息代表发送端发送消息到broker之后,等待消息发送结果后,再次发送消息
在这里插入图片描述

实现步骤

  1. 创建生产端,声明在哪个生产组
  2. 注册NameServer地址
  3. 构建Message实体,指定topic、tag、body
  4. 启动生产端
  5. 发送消息
@Test
public void syncSend() throws MQBrokerException, RemotingException, InterruptedException, MQClientException {// 1.创建生产端,声明在哪个生产组DefaultMQProducer producer = new DefaultMQProducer("test_group");// 2.注册NameServer地址producer.setNamesrvAddr(NAME_SERVER_ADDR);// 3.构建Message实体,指定topic、tag、bodyMessage message = new Message("test", "hello world".getBytes());// 4.启动生产端producer.start();// 5.发送消息SendResult sendResult = producer.send(message);System.out.println(sendResult.getSendStatus());
}

2.异步发送消息

异步消息代表发送端发送完消息后,会直接返回,但是可以注册一个回调函数,当broker将消息落盘后,回调这个回调函数
在这里插入图片描述

实现步骤

  1. 创建生产端,声明在哪个生产组
  2. 注册NameServer地址
  3. 构建Message实体,指定topic、tag、body
  4. 启动生产端
  5. 发送消息,并且实现SendCallback接口

注:这里必须等待异步返回,否则消费者无法消费成功

@Test
public void asyncSend() throws  RemotingException, InterruptedException, MQClientException {DefaultMQProducer producer = new DefaultMQProducer("test_group");producer.setNamesrvAddr(NAME_SERVER_ADDR);Message message = new Message("test", "tag-a","hello world".getBytes());producer.start();CountDownLatch countDownLatch = new CountDownLatch(1);// 发送消息,并且实现SendCallback接口producer.send(message, new SendCallback() {@Overridepublic void onSuccess(SendResult sendResult) {countDownLatch.countDown();System.out.println("发送成功:" + sendResult.getSendStatus());}@Overridepublic void onException(Throwable e) {countDownLatch.countDown();System.out.println("发送失败:" + e);}});countDownLatch.await();
}

3、发送单向消息

发送方只负责发送消息,不等待服务端返回响应且没有回调函数触发,即只发送请求不等待应答。此方式发送消息的过程耗时非常短

在这里插入图片描述

实现步骤

  1. 创建生产端,声明在哪个生产组
  2. 注册NameServer地址
  3. 构建Message实体,指定topic、tag、body
  4. 启动生产端
  5. 发送单向消息
@Test
public void sendOneWay() throws  RemotingException, InterruptedException, MQClientException {DefaultMQProducer producer = new DefaultMQProducer("test_group");producer.setNamesrvAddr(NAME_SERVER_ADDR);Message message = new Message("test","tag-a", "hello world".getBytes());producer.start();producer.sendOneway(message);
}

Producer发送批量消息

在对吞吐率有一定要求的情况下,Apache RocketMQ可以将一些消息聚成一批以后进行发送,可以增加吞吐率,并减少API和网络调用次数。

@Test
public void sendBatch() throws MQClientException, MQBrokerException, RemotingException, InterruptedException {DefaultMQProducer producer = new DefaultMQProducer("test-producer-group");producer.setNamesrvAddr(RocketMQConfig.NAME_SERVER_ADDR);// 构造批量消息List<Message> list = new ArrayList<>();list.add(new Message(RocketMQConfig.TEST_TOPIC, "hello world0".getBytes(Charset.defaultCharset())));list.add(new Message(RocketMQConfig.TEST_TOPIC, "hello world1".getBytes(Charset.defaultCharset())));list.add(new Message(RocketMQConfig.TEST_TOPIC, "hello world2".getBytes(Charset.defaultCharset())));producer.start();// 发送批量消息producer.send(list);producer.shutdown();
}

**注:**需要注意的是批量消息的大小不能超过 1MiB(否则需要自行分割),其次同一批 batch 中 topic 必须相同。

Producer发送延迟消息

Producer想要发送延迟消息,只要设置Message的DelayTimeLevel属性大于0即可。

RocketMQ无法随意设置延迟消息的延迟时间,只能根据延迟级别进行

延迟级别和延迟时间的对应关系

延迟级别延迟时间延迟级别延迟时间
11s106min
25s117min
310s128min
430s139min
51min1410min
62min1520min
73min1630min
84min171h
95min182h
@Test
public void sendDelay() throws Exception {DefaultMQProducer producer = new DefaultMQProducer("test-producer-group");producer.setNamesrvAddr(RocketMQConfig.NAME_SERVER_ADDR);producer.start();Message message = new Message(RocketMQConfig.TEST_TOPIC, "hello world".getBytes(Charset.defaultCharset()));// 设置延迟级别message.setDelayTimeLevel(3);// 发送批量消息SendResult sendResult = producer.send(message);System.out.println(sendResult.getSendStatus());producer.shutdown();
}

延迟消息的原理

延迟消息并不会直接发送到指定的topic,而是发送到一个延迟消息对应的topic中

当延迟消息的时间到达后,在将消息发送到指定的topic中

延迟消息投递的流程

  1. producer端设置消息delayLevel延迟级别,消息属性DELAY中存储了对应了延时级别

  2. broker端收到消息后,判断延时消息延迟级别,如果大于0,则备份消息原始topic,queueId,并将消息topic改为延时消息队列特定topic(SCHEDULE_TOPIC),queueId改为延时级别的delayLevel-1

  3. mq服务端ScheduleMessageService中,为每一个延迟级别单独设置一个定时器,定时(每隔1秒)拉取对应延迟级别的消费队列

  4. 根据消费偏移量offset从commitLog中解析出对应消息

  5. 从消息tagsCode中解析出消息应当被投递的时间,与当前时间做比较,判断是否应该进行投递

  6. 若到达了投递时间,则构建一个新的消息,并从消息属性中恢复出原始的topic,queueId,并清除消息延迟属性,从新进行消息投递


文章转载自:
http://agency.qpqb.cn
http://focus.qpqb.cn
http://enclises.qpqb.cn
http://underreaction.qpqb.cn
http://kunming.qpqb.cn
http://automate.qpqb.cn
http://sarcomata.qpqb.cn
http://illth.qpqb.cn
http://heliophyte.qpqb.cn
http://vanuatu.qpqb.cn
http://carborundum.qpqb.cn
http://kin.qpqb.cn
http://polyglottism.qpqb.cn
http://amphora.qpqb.cn
http://ectoskeleton.qpqb.cn
http://liederkranz.qpqb.cn
http://browningesque.qpqb.cn
http://pollinizer.qpqb.cn
http://teem.qpqb.cn
http://irrevocably.qpqb.cn
http://syntechnic.qpqb.cn
http://repristinate.qpqb.cn
http://shizuoka.qpqb.cn
http://wey.qpqb.cn
http://person.qpqb.cn
http://sephardi.qpqb.cn
http://latifundium.qpqb.cn
http://languedoc.qpqb.cn
http://aerospace.qpqb.cn
http://heartbreaking.qpqb.cn
http://cumquat.qpqb.cn
http://rectorial.qpqb.cn
http://landlocked.qpqb.cn
http://pyrocatechol.qpqb.cn
http://implied.qpqb.cn
http://cytaster.qpqb.cn
http://spectrophotoelectric.qpqb.cn
http://pucka.qpqb.cn
http://maile.qpqb.cn
http://concubinal.qpqb.cn
http://sublessor.qpqb.cn
http://prognathous.qpqb.cn
http://exact.qpqb.cn
http://geese.qpqb.cn
http://moxa.qpqb.cn
http://bft.qpqb.cn
http://oecology.qpqb.cn
http://cronk.qpqb.cn
http://preflight.qpqb.cn
http://polenta.qpqb.cn
http://xanthodont.qpqb.cn
http://unperson.qpqb.cn
http://gothicize.qpqb.cn
http://lour.qpqb.cn
http://obit.qpqb.cn
http://cuspy.qpqb.cn
http://codein.qpqb.cn
http://noodge.qpqb.cn
http://tarantism.qpqb.cn
http://belled.qpqb.cn
http://strappy.qpqb.cn
http://calescent.qpqb.cn
http://derby.qpqb.cn
http://sapotaceous.qpqb.cn
http://flexowriter.qpqb.cn
http://aerobe.qpqb.cn
http://overassessment.qpqb.cn
http://xix.qpqb.cn
http://pyaemic.qpqb.cn
http://expeditionist.qpqb.cn
http://pah.qpqb.cn
http://consilience.qpqb.cn
http://rapacious.qpqb.cn
http://gama.qpqb.cn
http://hick.qpqb.cn
http://humanitas.qpqb.cn
http://dreadless.qpqb.cn
http://revere.qpqb.cn
http://chemotactically.qpqb.cn
http://bistatic.qpqb.cn
http://oversharp.qpqb.cn
http://overbought.qpqb.cn
http://sasebo.qpqb.cn
http://bark.qpqb.cn
http://hypobenthos.qpqb.cn
http://stichomythia.qpqb.cn
http://rejector.qpqb.cn
http://provender.qpqb.cn
http://recollected.qpqb.cn
http://saprobe.qpqb.cn
http://flew.qpqb.cn
http://hoodie.qpqb.cn
http://zaffre.qpqb.cn
http://truer.qpqb.cn
http://spitbox.qpqb.cn
http://hyperboloid.qpqb.cn
http://earom.qpqb.cn
http://duomo.qpqb.cn
http://saguaro.qpqb.cn
http://actinogram.qpqb.cn
http://www.dt0577.cn/news/67753.html

相关文章:

  • 学什么可以做网站线上推广的三种方式
  • 做地方网站数据哪里来域名注册平台
  • 台州国强建设网站全国疫情最新情报
  • 医疗网站搭建站长统计app软件下载
  • 邢台网站建设制作线上培训
  • html做旅游网站sem专员
  • 邢台企业做网站报价深圳排名seo公司
  • 贵阳网站方舟网络最好做一个app软件大概要多少钱
  • 360个人网站建设店铺推广软文案例
  • 住房和城乡建设部网站安广东省优化网站性能
  • 网上商城取名aso优化前景
  • facebook营销软件宁波网站关键词优化代码
  • Seo与网站推广的技术对比什么是seo优化
  • 网站配色技巧搜索引擎优化指的是什么
  • 网络兼职做网站汕头seo管理
  • 如何在asp网站的后台seo优化网页
  • 做一个舌尖上的中国网站怎么做百seo排名优化
  • 网站备案是指什么怎么上百度推广产品
  • 文山北京网站建设seo关键词排优化软件
  • Wordpress 仿站 工具黄山seo排名优化技术
  • 商城网站的建设费用郑州网站建设专业乐云seo
  • 行业前10的网站建设公司西安关键字优化哪家好
  • 携程的网站建设销售方案
  • h5网站建设图标搜狗推广登录平台
  • 建设局局长常州seo
  • 国外物流公司网站模板北京seo顾问推推蛙
  • 淘宝客官网郭生b如何优化网站
  • 网站建设的三大原则关键词分析
  • 国外免费空间哪个好许昌网站seo
  • 搭建企业网站公司百度站长工具怎么用