总结
至此,文章终于到了尾声。总结一下,我们谈论了简历制作过程中需要注意的以下三个部分,并分别给出了一些建议:
- 技术能力:先写岗位所需能力,再写加分能力,不要写无关能力;
- 项目经历:只写明星项目,描述遵循 STAR 法则;
- 简历印象:简历遵循三大原则:清晰,简短,必要,要有的放矢,不要海投;
以及最后为大家准备的福利时间:简历模板+Java面试题+热门技术系列教程视频
目录
第一节:介绍
顺序消息含义介绍
原理解析
第二节:顺序消息-生产者和消息者步骤说明
顺序消息生产者代码实现步骤
顺序消息消费者代码实现步骤
第三节:顺序消息生产者
效果:
第四节:顺序消息消费者
效果:
第一节:介绍
======
顺序消息含义介绍
顺序消息指的是可以按照消息的发送顺序来消费(FIFO)。RocketMQ可以严格的保证消息有序,可以分为分区有序或者全局有序。
原理解析
在默认的情况下消息发送会采取Round Robin轮询方式把消息发送到不同的queue(分区队列);
而消费消息的时候从多个queue上拉取消息,这种情况发送和消费是不能保证顺序。
但是如果控制发送的顺序消息只依次发送到同一个queue中,消费的时候只从这个queue上依次拉取,则就保证了顺序。如下图所示:
当发送和消费参与的queue只有一个,则是全局有序;如果多个queue参与,则为分区有序,即相对每个queue,消息都是有序的。
第二节:顺序消息-生产者和消息者步骤说明
====================
顺序消息生产者代码实现步骤
1.创建消息生产者producer并制定生产者组名
2.指定Nameserver地址
3.启动producer
4.创建消息对象,指定主题Topic、Tag和消息体
5.发送消息,选择的send方法有三个参数:
-
* 参数一:消息对象
-
* 参数二:消息队列的选择器
-
* 参数三:选择队列的业务标识 6.关闭生产者producer
顺序消息消费者代码实现步骤
1.创建消费者Consumer,制定消费者组名
2.指定Nameserver地址
3.订阅主题Topic和Tag
4.设置回调函数,处理消息:与普通消息的差别,这里用的是MessageListenerOrderly
5.启动消费者consumer
注意:消费者的 Topic 和 Tag 需要和生产者保持一致
第三节:顺序消息生产者
===========
public class Producer {
public static void main(String[] args) throws Exception {
// 1.创建消息生产者producer,并制定生产者组名
DefaultMQProducer producer = new DefaultMQProducer(“demo_producer_order_group”);
// 2.指定Nameserver地址
producer.setNamesrvAddr(“192.168.88.131:9876”);
// 3.启动producer
producer.start();
System.out.println(“生产者启动”);
for (int i = 0; i < 20; i++) {
// 4.创建消息对象,指定主题Topic、Tag和消息体
Message msg = new Message(“Topic_order_demo”, “Tag_order_demo”,
(“Hello 虚竹,这是顺序消息” + i).getBytes(RemotingHelper.DEFAULT_CHARSET));
// 5.发送消息
/**
-
参数一:消息对象
-
参数二:消息队列的选择器
-
参数三:选择队列的业务标识
*/
SendResult result = producer.send(msg, new MessageQueueSelector() {
/**
-
@param mqs:队列集合
-
@param msg:消息对象
-
@param arg:业务标识的参数
-
@return
*/
@Override
最后
手绘了下图所示的kafka知识大纲流程图(xmind文件不能上传,导出图片展现),但都可提供源文件给每位爱学习的朋友
[外链图片转存中…(img-AJYf69T9-1715462928735)]