RPC & Rocket (消息中心的RPC调用)
NameServer地址补充
地址别写死
通过环境变量配置参数
NAMESRV_ADDR=192.168.202.3 但是mac怎么配置 我感觉应该在source /etc这里去配置
通过JVM 配置
-D xxxxx
发送消息
同步发消息
同步, 指的是在发送数据到消息中间件的时候, 需要及时的返回一个结果到发送者
这种可靠性同步地发送方式使用的比较广泛,比如:重要的消息通知,短信通知。
异步发送消息
在异步发送消息的时候, 我们把数据发送到消息中心, 此时我们不会等待消息中心的返回结果, 而是程序继续往下执行, 当有结果返回的时候, 通过异步通知的方式告诉消息生产者
异步消息通常用在对响应时间敏感的业务场景,即发送端不能容忍长时间地等待Broker的响应。
定时器
CountDownLatch2 countDownLatch2 = new CountDownLatch2(5);
// 计数器减一
countDownLatch2.countDown();
// 等待计数器归0
countDownLatch2.await();
一次性发送消息
这种方式主要用在不特别关心发送结果的场景,例如日志发送。
消息模式
集群模式
类似均衡负载
CLUSTERING
clustering
广播模式
指定queue
队列 0~3 可以指定队列
消费位置
消费确认
拉取
手动提交 默认是自动提交的
可以通过consumer.setAutoCommit(false);设置是否自动提交, 如果设置为手动提交, 需要使用consumer.commitSync();方法进行手动提交
对于未提交的操作, Topic中的订阅的偏移量是不会发生改变的, 下次消费的时候会继续消费改数据
推式
通过返回ConsumeConcurrentlyStatus.CONSUME_SUCCESS状态表示消费成功
返回ConsumeConcurrentlyStatus.RECONSUME_LATER 表示消费不成功, 会放入到重试队列
默认重试采用服务端重试:
重试次数:16次
问题
启动问题
消息的存储Broker
高级消息处理应用
全局 局部 消息
全局有序 局部有序 order demo
局部有序 保证订单id一致的 在一个队列里面
延迟消息
过滤消息
集成SpringBoot
添加依赖
配置
springboot项目拷贝 多个程序启动