阿里云ONS RocketMQ接入指南
1. 配置阿里云accessKey
@Configuration
@ConfigurationProperties(prefix = "aliyun.auth")
public class AliyunAuthConfig {private String accessKey;private String secretKey;public String getAccessKey() {return accessKey;}public void setAccessKey(String accessKey) {this.accessKey = accessKey;}public String getSecretKey() {return secretKey;}public void setSecretKey(String secretKey) {this.secretKey = secretKey;}
}
2. 注册ProducerBean
@Configuration
public class RocketMqProducerConfiguration {@Autowiredprivate AliyunAuthConfig mqConfig;@Value("${rocketmq.server.address}")private String nameSrvAddr;@Bean(initMethod = "start", destroyMethod = "shutdown")public ProducerBean buildProducer() {ProducerBean producer = new ProducerBean();producer.setProperties(getMqProperties());return producer;}public Properties getMqProperties() {Properties properties = new Properties();properties.setProperty(PropertyKeyConst.AccessKey, mqConfig.getAccessKey());properties.setProperty(PropertyKeyConst.SecretKey, mqConfig.getSecretKey());properties.setProperty(PropertyKeyConst.NAMESRV_ADDR, this.nameSrvAddr);return properties;}}
3. 注册Consumer
@Configuration
public class RocketMqConsumerConfiguration {@Value("${rocketmq.server.address}")private String nameSrvAddr;private final String GID = "GID_FIRST_CHOICE_COOP_ORDER";@Autowiredprivate AliyunAuthConfig aliyunAuthConfig;@Autowired(required = false)private List<MqSubscriptionConfig> mqSubscriptionConfigList;@Bean(initMethod = "start", destroyMethod = "shutdown", name = "consumerBean")public ConsumerBean buildConsumer() {ConsumerBean consumerBean = new ConsumerBean();//配置文件Properties properties = getProperties();properties.setProperty(PropertyKeyConst.AccessKey, aliyunAuthConfig.getAccessKey());properties.setProperty(PropertyKeyConst.SecretKey, aliyunAuthConfig.getSecretKey());properties.setProperty(PropertyKeyConst.GROUP_ID, GID);//将消费者线程数固定为20个 20为默认值properties.setProperty(PropertyKeyConst.ConsumeThreadNums, "20");consumerBean.setProperties(properties);//订阅关系Map<Subscription, MessageListener> subscriptionTable = new HashMap<Subscription, MessageListener>(1);if(!CollectionUtils.isEmpty(mqSubscriptionConfigList)){for (MqSubscriptionConfig mqSubscriptionConfig : mqSubscriptionConfigList) {Subscription subscription = new Subscription();subscription.setTopic(mqSubscriptionConfig.getTopic());subscription.setExpression(mqSubscriptionConfig.getExpression());subscriptionTable.put(subscription, mqSubscriptionConfig.getMessageListener());}}consumerBean.setSubscriptionTable(subscriptionTable);return consumerBean;}private Properties getProperties() {Properties properties = new Properties();properties.setProperty(PropertyKeyConst.AccessKey, aliyunAuthConfig.getAccessKey());properties.setProperty(PropertyKeyConst.SecretKey, aliyunAuthConfig.getSecretKey());properties.setProperty(PropertyKeyConst.NAMESRV_ADDR, this.nameSrvAddr);return properties;}
}
多个consumer可以批量注册
@AllArgsConstructor
@Data
public class MqSubscriptionConfig {private String Topic;private String expression;private MessageListener messageListener;}
@Beanpublic MqSubscriptionConfig cooperationPaymentOrderConfig(){return new MqSubscriptionConfig("TOPIC_PAYMENT_ORDER", "*", cooperationPaymentOrderListener);}@Beanpublic MqSubscriptionConfig cooperationSettlementOrderConfig(){return new MqSubscriptionConfig("TOPIC_SETTLEMENT_ORDER", "*", cooperationSettlementOrderListener);}@Beanpublic MqSubscriptionConfig captainPromotionLinkConfig(){return new MqSubscriptionConfig("TOPIC_CAPTAIN_PROMOTION_LINK", "*", captainPromotionLinkListener);}public class PaymentOrderListener implements MessageListener {}
阿里云ONS RocketMQ接入指南相关推荐
- JAVA整合阿里云ONS(RocketMQ)
前言 关于阿里云ONS我这里不多介绍,用的话直接去看官网,这里提几个实际对接的问题 问题一: TCP版的不支持本地调试,只支持公网链接 问题二: ONS不支持批量消息 问题三: ONS延迟消息的时间是 ...
- 阿里云ONS / RocketMQ的定时消息 / 延时消息
考虑延时和定时消息,是因为遇到了一个业务场景: 前置任务完成时发送消息,但因为一些业务原因,不希望消息马上被消费,因此需要设置延时. 文章目录 几种解决思路 实现方案 ONS延迟消息 RocketMQ ...
- 【结果很简单,过程很艰辛】记阿里云Ons消息队列服务.NET接口填坑过程
Maybe 这个问题很简单,因为解决方法是非常简单,但填坑过程会把人逼疯,在阿里云ONS工作人员.同事和朋友的协助下,经过一天的调试和瞎捣鼓,终于解决了这个坑,把问题记下来,也许更多人在碰到类似问题的 ...
- 阿里云ONS而微软Azure Service Bus体系结构和功能比较
阿里云ONS而微软Azure Service bus体系结构和功能比较 版权所有所有,转载请注明出处http://blog.csdn.net/yangzhenping.谢谢! 阿里云的开放消息服务: ...
- 阿里云服务器新手选型指南
阿里云服务器新手选型指南: 小型网站:1核2G共享型以上 中大型网站:4核8G通用型以上 项目临时测试:突发性能型.共享型,配置够用就行. 更多应用,比如分布式计算.AI学习等等,则需选择更好的云服务 ...
- BC26电信云平台LWM2M接入指南
BC26电信云平台LWM2M接入指南 最近使用移远BC26做了电信云平台的LWM2M介入设计,遇到几个问题,逐一解决,做个记录 准备工作 相对于移动的OneNet平台,电信平台的LWM2M接入指令完全 ...
- 阿里云服务器安装RocketMQ及其控制台
1. 环境说明 本文所使用的阿里云服务器为CentOS8,JDK为1.8,Maven为3.6.3,RocketMQ为4.9.1 2. 下载安装包 进入RocketMQ官网 点击最新版本,进入 点击下载 ...
- 阿里云网站应用支付接入
阿里云网站应用支付接入 [本文使用沙箱环境进行开发测试] 一.配置沙箱环境 1.进入[支付宝开放平台],找到"研发服务"查看沙箱应用信息 2.设置沙箱应用的公钥.密钥 二.引入依赖 ...
- 阿里云ONS消息队列入门指南
文章目录 概述 springboot整合接入 mq消费者 mq 生产者 概述 消息队列 RocketMQ 是阿里巴巴集团基于高可用分布式集群技术,自主研发的云正式商用的专业消息中间件,既可为分布式应用 ...
最新文章
- POJ 2482-Stars in Your Window(扫描线)
- oracle 创建数据库 表空间 用户 授权和toad导入导出数据库
- iOS - 在UITextField外部触摸时关闭键盘
- 支持向量机:Numerical Optimization
- stm32 iic接口 进入busy_STM32通过IIC接口读取JY61模块MPU6050陀螺仪芯片数据核心程序...
- CodeForces - 1455E Four Points(数学+几何)
- 算法 --- reduce的使用.
- 为什么有了接口还要增加一层抽象类?
- python3打包成exe运行 无法定位程度输入点_Pyinstaller递归错误解决方案
- Docker (一、dockerfile-node.js)
- Tomcat详解(六)——Tomcat运行模式调优
- 【渝粤教育】电大中专Office办公软件 (5)作业 题库
- Java求质数(素数)(超详细)
- Qt 3D 学习路径规划
- 数学作图工具_非常实用的九个程序员工具网站
- C语言——是否为闰年的判断
- 天翼云铸牢国云安全,护航千行百业
- 计算机最最最底层的工作原理是怎么运行的
- PrivacyIN Week2 | 张宇鹏博导开讲经典零知识证明协议设计原理
- 2019-12-17 摘抄: HPET 硬件高精度时钟源Linux内核引导选项