Rocket核心应用实战

357 阅读2分钟

RPC & Rocket (消息中心的RPC调用)

image.png

image.png

NameServer地址补充

地址别写死 image.png

通过环境变量配置参数

image.png

NAMESRV_ADDR=192.168.202.3 但是mac怎么配置 我感觉应该在source /etc这里去配置

通过JVM 配置

-D xxxxx

发送消息

同步发消息

同步, 指的是在发送数据到消息中间件的时候, 需要及时的返回一个结果到发送者

这种可靠性同步地发送方式使用的比较广泛,比如:重要的消息通知,短信通知。

image.png

异步发送消息

在异步发送消息的时候, 我们把数据发送到消息中心, 此时我们不会等待消息中心的返回结果, 而是程序继续往下执行, 当有结果返回的时候, 通过异步通知的方式告诉消息生产者

异步消息通常用在对响应时间敏感的业务场景,即发送端不能容忍长时间地等待Broker的响应。

image.png

定时器

CountDownLatch2 countDownLatch2 = new CountDownLatch2(5);
// 计数器减一
countDownLatch2.countDown();
// 等待计数器归0
countDownLatch2.await();

一次性发送消息

这种方式主要用在不特别关心发送结果的场景,例如日志发送。

消息模式

集群模式

类似均衡负载

CLUSTERING
clustering

image.png

image.png

image.png

image.png

image.png

广播模式

image.png

image.png

image.png

指定queue

队列 0~3 可以指定队列 image.png

消费位置

image.png

消费确认

拉取

手动提交 默认是自动提交的

image.png

可以通过consumer.setAutoCommit(false);设置是否自动提交, 如果设置为手动提交, 需要使用consumer.commitSync();方法进行手动提交

对于未提交的操作, Topic中的订阅的偏移量是不会发生改变的, 下次消费的时候会继续消费改数据

推式

image.png

通过返回ConsumeConcurrentlyStatus.CONSUME_SUCCESS状态表示消费成功

返回ConsumeConcurrentlyStatus.RECONSUME_LATER 表示消费不成功, 会放入到重试队列

默认重试采用服务端重试: 

重试次数:16次

问题

启动问题

image.png

消息的存储Broker

image.png

image.png

image.png

高级消息处理应用

全局 局部 消息

全局有序 局部有序 order demo

局部有序 保证订单id一致的 在一个队列里面

image.png

延迟消息

过滤消息

image.png

image.png

集成SpringBoot

添加依赖

配置

image.png

image.png

image.png

image.png

springboot项目拷贝 多个程序启动

image.png