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接入指南相关推荐

  1. JAVA整合阿里云ONS(RocketMQ)

    前言 关于阿里云ONS我这里不多介绍,用的话直接去看官网,这里提几个实际对接的问题 问题一: TCP版的不支持本地调试,只支持公网链接 问题二: ONS不支持批量消息 问题三: ONS延迟消息的时间是 ...

  2. 阿里云ONS / RocketMQ的定时消息 / 延时消息

    考虑延时和定时消息,是因为遇到了一个业务场景: 前置任务完成时发送消息,但因为一些业务原因,不希望消息马上被消费,因此需要设置延时. 文章目录 几种解决思路 实现方案 ONS延迟消息 RocketMQ ...

  3. 【结果很简单,过程很艰辛】记阿里云Ons消息队列服务.NET接口填坑过程

    Maybe 这个问题很简单,因为解决方法是非常简单,但填坑过程会把人逼疯,在阿里云ONS工作人员.同事和朋友的协助下,经过一天的调试和瞎捣鼓,终于解决了这个坑,把问题记下来,也许更多人在碰到类似问题的 ...

  4. 阿里云ONS而微软Azure Service Bus体系结构和功能比较

    阿里云ONS而微软Azure Service bus体系结构和功能比较 版权所有所有,转载请注明出处http://blog.csdn.net/yangzhenping.谢谢! 阿里云的开放消息服务: ...

  5. 阿里云服务器新手选型指南

    阿里云服务器新手选型指南: 小型网站:1核2G共享型以上 中大型网站:4核8G通用型以上 项目临时测试:突发性能型.共享型,配置够用就行. 更多应用,比如分布式计算.AI学习等等,则需选择更好的云服务 ...

  6. BC26电信云平台LWM2M接入指南

    BC26电信云平台LWM2M接入指南 最近使用移远BC26做了电信云平台的LWM2M介入设计,遇到几个问题,逐一解决,做个记录 准备工作 相对于移动的OneNet平台,电信平台的LWM2M接入指令完全 ...

  7. 阿里云服务器安装RocketMQ及其控制台

    1. 环境说明 本文所使用的阿里云服务器为CentOS8,JDK为1.8,Maven为3.6.3,RocketMQ为4.9.1 2. 下载安装包 进入RocketMQ官网 点击最新版本,进入 点击下载 ...

  8. 阿里云网站应用支付接入

    阿里云网站应用支付接入 [本文使用沙箱环境进行开发测试] 一.配置沙箱环境 1.进入[支付宝开放平台],找到"研发服务"查看沙箱应用信息 2.设置沙箱应用的公钥.密钥 二.引入依赖 ...

  9. 阿里云ONS消息队列入门指南

    文章目录 概述 springboot整合接入 mq消费者 mq 生产者 概述 消息队列 RocketMQ 是阿里巴巴集团基于高可用分布式集群技术,自主研发的云正式商用的专业消息中间件,既可为分布式应用 ...

最新文章

  1. POJ 2482-Stars in Your Window(扫描线)
  2. oracle 创建数据库 表空间 用户 授权和toad导入导出数据库
  3. iOS - 在UITextField外部触摸时关闭键盘
  4. 支持向量机:Numerical Optimization
  5. stm32 iic接口 进入busy_STM32通过IIC接口读取JY61模块MPU6050陀螺仪芯片数据核心程序...
  6. CodeForces - 1455E Four Points(数学+几何)
  7. 算法 --- reduce的使用.
  8. 为什么有了接口还要增加一层抽象类?
  9. python3打包成exe运行 无法定位程度输入点_Pyinstaller递归错误解决方案
  10. Docker (一、dockerfile-node.js)
  11. Tomcat详解(六)——Tomcat运行模式调优
  12. 【渝粤教育】电大中专Office办公软件 (5)作业 题库
  13. Java求质数(素数)(超详细)
  14. Qt 3D 学习路径规划
  15. 数学作图工具_非常实用的九个程序员工具网站
  16. C语言——是否为闰年的判断
  17. 天翼云铸牢国云安全,护航千行百业
  18. 计算机最最最底层的工作原理是怎么运行的
  19. PrivacyIN Week2 | 张宇鹏博导开讲经典零知识证明协议设计原理
  20. 2019-12-17 摘抄: HPET 硬件高精度时钟源Linux内核引导选项

热门文章

  1. 游戏西游记计算机,新西游记电脑版
  2. 工厂进销存软件哪家好,有没有适合服装厂使用的?
  3. pve Linux分区
  4. Linux下的磁盘克隆、磁盘备份、磁盘还原、分区克隆、分区备份、分区还原
  5. 云服务器买来之后必做的几件事——你做了吗!【❤️建议收藏❤️】
  6. 王佩丰Excel24讲_第1讲:认识excel
  7. 一个简单的导航页面分享
  8. 计算机综合应用实训是什么意思,计算机综合应用能力实训报告.doc
  9. 1.8 - 多级存储
  10. 分享找素材思路和技巧,南京小妹做自媒体短视频,3个月挣3W多