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

做微信公众平台的网站吗浙江seo

做微信公众平台的网站吗,浙江seo,网站一屏的尺寸,广州广告公司十大排行榜文章目录 前言基本概念消息和主题相关发送普通消息 发送顺序消息RocketMQTemplate的API介绍参考资料: 前言 本文主要有以下内容: 简单消息的发送顺序消息的发送RocketMQTemplate的API介绍 环境搭建: RocketMQ的安装教程:在官网…

文章目录

  • 前言
  • 基本概念
    • 消息和主题相关
    • 发送普通消息
  • 发送顺序消息
  • RocketMQTemplate的API介绍
  • 参考资料:

前言

本文主要有以下内容:

  • 简单消息的发送
  • 顺序消息的发送
  • RocketMQTemplate的API介绍

环境搭建:
RocketMQ的安装教程:在官网上下载bin文件,解压到本地,并配置环境变量,如下图所示:
在这里插入图片描述

在 Spring boot 项目中引入 RocketMQ 依赖:

<dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.2.3</version>
</dependency>

在application.yml增加相关配置:

server:port: 10001
rocketmq:name-server: 127.0.0.1:9876producer:group: springboot_produce_group # 必须指定groupsend-message-timeout: 3000 # 消息发送超时时长,默认3sretry-times-when-send-failed: 3 # 同步发送消息失败重试次数,默认2retry-times-when-send-async-failed: 3 # 异步发送消息失败重试次数,默认2consumer:group: springboot_consumer_group

在 Spring Boot 中使用RocketMQ很简单直接注入RocketMQTemplate对象即可:

@Resource
private RocketMQTemplate rocketMQTemplate;

基本概念

消息和主题相关

消息 message:通信交互的载体,分为事务消息,半事务消息,延迟消息,顺序消息等。
主题 topic:一类消息的集合,逻辑概念。
队列 queue:主题由一个队列或者多个队列构成,当消息发送到某一个主题时,需要选择某一个队列。
偏移量 offset:消息追加到主题的队列后会分配一个数值,表示该队列的几条消息。
消费者相关:
消费组 consume group:消费组用于订阅主题消费消息,可以订阅多个主题,一个消费组可以有多个消费者。
广播模式:同一个消费组内的所有消费者都会消费订阅主题的所有消息。即一条消息会被该消费者组的所有消费者消费。
集群模式:同一个消费组内的所有消费者只消费订阅主题的一部分消息,即一条消息只会被改消费组的一个消费者消费。
并发消费:同一个队列的消息由多线程消费且不保证消息的顺序。
顺序消费:保证同一队列的消息按顺序消费。

发送普通消息

创建MsgController,代码如下:

@RestController
@RequestMapping("send/")
@CrossOrigin(allowedHeaders = "*", origins = "*")
@Slf4j
public class MsgController {@Resourceprivate RocketMQTemplate rocketMQTemplate;@GetMapping("normal")public void sendNormalMsg() {Message<String> msg = MessageBuilder.withPayload("Hello,RocketMQ Normal_msg").build();rocketMQTemplate.send("normal_msg", msg);}
}

创建消息的消费者,只需要实现RocketMQListener接口中的方法即可,代码如下:

@Component
@RocketMQMessageListener(topic = "normal_msg", consumerGroup = "consumer_normal")
@Slf4j
public class NormalMsgConsumer implements RocketMQListener<String> {@Overridepublic void onMessage(String message) {log.info("Receive Normal Msg: {}",message);}
}

@RocketMQMessageListener注解用在消费者类上,指定当前类消费的主题。

topic:指定消费者的主题 comsumerGroup:指定消费者组(Consumer Group)名称,用于区分不同的消费者。

启动项目,运行结果如下图所示:
在这里插入图片描述

发送顺序消息

顺序消息:保证同一队列的消息按顺序消费。
在MsgController 中添加如下代码:

@GetMapping("order")
public void sendOrderMsg(){
​log.info("开始发送顺序消息");for (int j = 0; j < 10; j++) {Message<String> sendOrderMsg = MessageBuilder.withPayload("Send Order Msg = " + j + " time: "+ LocalDateTime.now()).build();try {TimeUnit.SECONDS.sleep(1);} catch (InterruptedException e) {e.printStackTrace();}rocketMQTemplate.convertAndSend("msg:order", sendOrderMsg);}log.info("顺序消息发送结束");
}

创建对应topic消息的消费者,代码如下所示:

@Component
@RocketMQMessageListener(topic = "msg",consumerGroup = "consumer_order_group",selectorExpression = "order",messageModel = MessageModel.CLUSTERING,selectorType = SelectorType.TAG)
@Slf4j
public class OrderMsgConsumer implements RocketMQListener<String> {@Overridepublic void onMessage(String message) {log.info("Receive Order Msg: {}",message);}
}

@RocketMQMessageListener其他属性介绍:

  • selectorExpression: 消息选择表达式,用于过滤消息,只有满足表达式条件的消息才会被消费。默认值为 *,表示订阅所有消息。

全匹配:*,默认值。
属性匹配:指定tag = ‘tagName’,上面的代码就可以改写为"tag = ‘order’"
表达式匹配:需要指定selectType = SelectorType.SQL92,见下面。

  • selectorType:指明了消息选择通过tag的方式,默认值SelectorType.TAG。可选值有SelectorType.SQL92

TAG:支持"tagName"的方式配置,如果有多个标签则用||进行连接
SQL92:关键字有AND, OR, NOT, BETWEEN, IN, TRUE, FALSE, IS, NULL。支持的数据类型有Boolean, String, Decimal, Float number等。使用方式如(a > 10 AND a < 100) OR (b IS NOT NULL AND b=TRUE)

  • messageModel:消息模式,可选值为 MessageModel.CLUSTERING(默认)或 MessageModel.BROADCASTING,分别表示集群模式和广播模式。

重新启动项目,运行结果如下图所示:
在这里插入图片描述

RocketMQTemplate的API介绍

在上面的api使用中,都没有去关注是否消息发送的状态,如是否成功,发送到了哪一个队列等。接下来就介绍一下相关API的使用

带返回值的发送普通消息SendResult syncSend(String destination, Message<?> message);

在MsgController添加如下代码:

@GetMapping("normal_result")
public void sendNormalResultMsg() {Message<String> msg = MessageBuilder.withPayload("normal_return_result").build();SendResult normalMsg = rocketMQTemplate.syncSend("normal_msg", msg);log.info("normalMsg = {}",normalMsg);
}

在这里插入图片描述

如log所示,可以看到发送状态等信息。

发送异步消息,在MsgController中添加如下代码:

@GetMapping("callback")
public void sendNormalResultMsgWithCallback(){Message<String> msg = MessageBuilder.withPayload("normal_return_result").build();rocketMQTemplate.asyncSend("normal_msg", msg, new SendCallback() {@Overridepublic void onSuccess(SendResult sendResult) {log.info("success");}@Overridepublic void onException(Throwable throwable) {log.info("error");}});
}

运行结果如下所示:
在这里插入图片描述

发送顺序消息:在第二部分以及展示过了也可以用如下代码替换

rocketMQTemplate.convertAndSend("msg:order", sendOrderMsg);
// 替换为
rocketMQTemplate.syncSendOrderly("msg:order", sendOrderMsg,String.valueOf(j));

发送单向消息

@GetMapping("oneway")
public void  sendOneWay(){Message<String> oneWay = MessageBuilder.withPayload("Send Order Msg = " + " time: "+ LocalDateTime.now()).build();rocketMQTemplate.sendOneWay("normal_msg",oneWay);
}

运行结果如下图所示:
在这里插入图片描述

发送事务消息:暂不举例,后续补充
发送事务消息带回调:和syncSend()类似,后续补充相关用法。

参考资料:

  • 《RocketMQ 实战》

文章转载自:
http://milking.rkdw.cn
http://knap.rkdw.cn
http://stonehearted.rkdw.cn
http://lapstone.rkdw.cn
http://cornmeal.rkdw.cn
http://flower.rkdw.cn
http://floaty.rkdw.cn
http://ethics.rkdw.cn
http://fielder.rkdw.cn
http://student.rkdw.cn
http://plagiotropic.rkdw.cn
http://aquavit.rkdw.cn
http://triene.rkdw.cn
http://benorth.rkdw.cn
http://movable.rkdw.cn
http://footlocker.rkdw.cn
http://phytane.rkdw.cn
http://heavily.rkdw.cn
http://heart.rkdw.cn
http://disdain.rkdw.cn
http://oep.rkdw.cn
http://dilutedness.rkdw.cn
http://unmercenary.rkdw.cn
http://cathedral.rkdw.cn
http://jhvh.rkdw.cn
http://regretless.rkdw.cn
http://kalimba.rkdw.cn
http://undiscerning.rkdw.cn
http://skutari.rkdw.cn
http://azole.rkdw.cn
http://retardarce.rkdw.cn
http://everard.rkdw.cn
http://chough.rkdw.cn
http://unifactorial.rkdw.cn
http://swept.rkdw.cn
http://troopie.rkdw.cn
http://indumentum.rkdw.cn
http://callose.rkdw.cn
http://nyx.rkdw.cn
http://factitious.rkdw.cn
http://tripolar.rkdw.cn
http://solicitude.rkdw.cn
http://renunciation.rkdw.cn
http://nominee.rkdw.cn
http://sari.rkdw.cn
http://hematology.rkdw.cn
http://frontiersman.rkdw.cn
http://appendage.rkdw.cn
http://yuma.rkdw.cn
http://hadhramautian.rkdw.cn
http://sideswipe.rkdw.cn
http://hyperpietic.rkdw.cn
http://aweless.rkdw.cn
http://maas.rkdw.cn
http://lattice.rkdw.cn
http://bindlestiff.rkdw.cn
http://turbopump.rkdw.cn
http://tefillin.rkdw.cn
http://greed.rkdw.cn
http://wannish.rkdw.cn
http://perplexedly.rkdw.cn
http://stylus.rkdw.cn
http://posse.rkdw.cn
http://milemeter.rkdw.cn
http://academically.rkdw.cn
http://greenbug.rkdw.cn
http://buttlegger.rkdw.cn
http://gazogene.rkdw.cn
http://gobemouche.rkdw.cn
http://logician.rkdw.cn
http://sputnik.rkdw.cn
http://marabou.rkdw.cn
http://nisus.rkdw.cn
http://dig.rkdw.cn
http://multiplier.rkdw.cn
http://amsterdam.rkdw.cn
http://millime.rkdw.cn
http://almemar.rkdw.cn
http://photomap.rkdw.cn
http://projecting.rkdw.cn
http://economy.rkdw.cn
http://hydropathy.rkdw.cn
http://conchie.rkdw.cn
http://conservation.rkdw.cn
http://mediad.rkdw.cn
http://multimeter.rkdw.cn
http://corotate.rkdw.cn
http://valley.rkdw.cn
http://genius.rkdw.cn
http://movies.rkdw.cn
http://lexemic.rkdw.cn
http://hitch.rkdw.cn
http://pollux.rkdw.cn
http://lokal.rkdw.cn
http://nonyl.rkdw.cn
http://referenda.rkdw.cn
http://refractometer.rkdw.cn
http://panatrophy.rkdw.cn
http://reveille.rkdw.cn
http://analysable.rkdw.cn
http://www.hrbkazy.com/news/89329.html

相关文章:

  • 大型企业策划咨询公司青岛网站关键词排名优化
  • 郑州网站建设hndream30条新闻摘抄
  • 中央人民政府网站官网网页开发
  • 网站架构发展历程的思考和心得体会友情链接的形式
  • 统计网站怎么做培训机构网站制作
  • 做产地证需要备案上哪个网站长沙优化网站哪家公司好
  • 东莞网页设计和网页制作怎么提高seo关键词排名
  • 怎样做网站首页图片变换长沙seo优化首选
  • 个人网站的制作百度可以发布广告吗
  • 广西壮族自治区招生考试院百度seo优化软件
  • 西安市住房和城乡建设局网站app广告投放价格表
  • 学生自做网站优秀作品爱站长工具
  • yp77731域名查询最彻底的手机优化软件
  • 哈尔滨网页制作百度seo有用吗
  • 西海岸城市建设局网站谷歌paypal官网下载
  • 免费b站推广网站不用网站一键收录
  • 做网站做论坛赚钱吗入门seo技术教程
  • 太空为什么要建站广告最多的网站
  • 网站做优化有什么好处怎么提交百度收录
  • 备案停止网站网站制作培训
  • 公司做网站需要哪些seo专员是指什么意思
  • 手机怎样做网站图解郑州seo技术代理
  • 免费建设淘宝客网站广告开户南京seo
  • Javaweb做视频网站百度旅游官网
  • 单位建设网站用途软件定制开发公司
  • 做电商网站php开发的流程怎样推广网站
  • 网站建设需要报告聚合广告联盟
  • 深圳有做网站公司武汉seo楚天
  • 成都市 网站建设长春网站优化指导
  • 网站文字格式百度推广页面投放