当前位置: 首页 > news >正文

【tower-boot 系列】开源RocketMQ和阿里云rockerMq 4.x和5.x集成 (一)

RocketMQ 简单介绍

RockerMq

阿里云rockerMq 4.x和5.x集成

一、云平台创建实例

参考文档:
阿里云api

阿里云 创建实例
阿里云Rocker实例

二、skd集成思路

公司用的RocketMQ一般是自建开源apache的RocketMQ和上阿里云的RocketMQ,目前阿里云支持4.x和5.x版本
项目集成思路:
1、集成阿里RocketMQ 两个版本 4.x和5.x 支持版本配置和开源apache的RocketMQ集成
2、RocketProperties 单配置适用多版本集成
3、RocketConsumer 消费者注解,支持多版本集成(消费组监听器继承实现可以不一样,注解一致)
4、RocketMessageProducer 生产者接口,支持多版本集成,根据配置版本自动适配

注:这个是一个持续集成优化过程,需要不停磨练

三、根据RocketConsumer注解,动态监听器实现

1、核心逻辑代码:
扫描包注解,根据配置版本号走不同的,消费组创建

        String packageName = properties.getPackageName(); // 扫描包路径ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(false);scanner.addIncludeFilter(new AnnotationTypeFilter(RocketConsumer.class));Set<BeanDefinition> candidates = scanner.findCandidateComponents(packageName);for (BeanDefinition beanDefinition : candidates) {try {Integer versions = properties.getVersions();if (Objects.equals(RockerMqVersions.ALI_4.getCode(), versions)) {onsRocketMQConsumerClient.start(beanDefinition);}if (Objects.equals(RockerMqVersions.ALI_5.getCode(), versions)) {rocketMQConsumerClient.start(beanDefinition);}} catch (Exception e) {e.printStackTrace();}}

2、消费组push 用法示例
版本4.x 写法

@Slf4j
@Component
@RocketConsumer(topic = "PRODUCER_TOPIC", consumerGroup = "PRODUCER_GROUP")
public class Push4MQConsumer implements MessageListener {@Autowiredprivate UserService userService;@Overridepublic Action consume(Message message, ConsumeContext consumeContext) {String body = new String(message.getBody());log.info("TestMQConsumer:" + body + "user:" + userService.getUserId());return Action.CommitMessage;}
}

版本5.x 写法

@Slf4j
@Component
@RocketConsumer(topic = "PRODUCER_TOPIC", consumerGroup = "PRODUCER_GROUP")
public class TestMQConsumer implements MessageListener {@Autowiredprivate UserService userService;@Overridepublic ConsumeResult consume(MessageView messageView) {String body = StandardCharsets.UTF_8.decode(messageView.getBody()).toString();log.info("TestMQConsumer:" + body + "user:" + userService.getUserId());return ConsumeResult.SUCCESS;}
}

五、RocketMessageProducer 生产发送

目前只写5.x 写法,后面持续优化
普通消息

RocketMsg rocketMsg = new RocketMsg();
rocketMsg.setBody("hxl测试发送");
rocketMessageProducer.sendMessage("PRODUCER_TOPIC", null, rocketMsg);
return ApiResult.success();

延迟消息

RocketMsg rocketMsg = new RocketMsg();
rocketMsg.setBody("延迟消息发送发送");
rocketMessageProducer.sendMessage("DELAY_TOPIC", null, 5 * 60L, rocketMsg);# github 地址:
[https://github.com/sanxiaoshitou/tower-boot](https://github.com/sanxiaoshitou/tower-boot)

相关文章:

【tower-boot 系列】开源RocketMQ和阿里云rockerMq 4.x和5.x集成 (一)

RocketMQ 简单介绍 阿里云rockerMq 4.x和5.x集成 一、云平台创建实例 参考文档&#xff1a; 阿里云api 阿里云 创建实例 二、skd集成思路 公司用的RocketMQ一般是自建开源apache的RocketMQ和上阿里云的RocketMQ&#xff0c;目前阿里云支持4.x和5.x版本 项目集成思路&…...

Pikachu-Cross-Site Scripting-反射型xss(post)

查看源代码 &#xff0c;这是需要先登录&#xff0c;然后再去做xss攻击 使用admin &#xff0c;123456 登陆; 登陆后&#xff0c;输入的message 内容直接返回 输入 <script>alert(1)</script> 得到xss攻击结果...

Vue3 工具函数(总结)

目录 前言 1.isRef 2.isReactive 3.isReadonly 4.isProxy 5.toRef 6.toRefs 7.unref 8.shallowRef 9.shallowReactive 10.triggerRef 11.customRef 12.markRaw 13.toRaw 14.readonly 15.watchEffect 前言 在 Vue 3 中&#xff0c;除了核心的响应式 API&#x…...

(undone) MIT6.824 Lab1

参考&#xff1a;http://nil.csail.mit.edu/6.824/2021/labs/lab-mr.html task1: 熟悉讲义&#xff0c;尤其是搞明白如何运行测试程序(完成) ------------------------------------------------ start 先看 Introduction 我们的目标&#xff1a;构建一个MapReduce系统。 细节&…...

SpringMVC——REST

路径请求方式请求行为 查询&#xff1a;GET 新增&#xff1a;POST 修改&#xff1a;PUT 删除&#xff1a;DELETE 有重复的东西怎么办...

【牛客网刷题记录】【java】二叉树

&#xff08;1&#xff09;二叉树的前中后遍历 最基本的树的遍历&#xff0c;不会可以重开了 public class Solution {/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回方法规定的值即可** * param root TreeNode类 * return int整型一维…...

一文讲透大语言模型构建流程

最近已有不少大厂都在秋招宣讲了&#xff0c;也有一些在 Offer 发放阶段。 节前&#xff0c;我们邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对新手如何入门算法岗、该如何准备面试攻略、面试常考点、大模型技术趋势、算法项目落地经验分享等热门话题进行了…...

VR视频怎样进行加密和一机一码的使用?--加密(一)

在视频加密领域&#xff0c;我们常见接触的就是在普通设备上使用的加密视频&#xff0c;如电脑、手机、平板等。Vr的发展和兴起给人们带来最真实的体验感受&#xff0c;不仅在游戏行业应用较广&#xff0c;在一些影院或者元宇宙文旅、展厅等视频场景也备受青睐。 随着VR视频场景…...

Ubuntu启动后第一次需要很久才能启动GTK应用问题

Ubuntu启动后第一次需要很久才能启动GTK应用问题 自从升级了 Ubuntu 之后&#xff0c;设备重启&#xff0c;发现打开 Terminal 、Nautilus 以及其他的GTK 应用都很慢&#xff0c;需要至少一分钟的时间启动。 刚开始也是拿着 journalctl 的异常日志去寻找答案&#xff0c;但是没…...

栏目二:Echart绘制动态折线图+柱状图

栏目二&#xff1a;Echart绘制动态折线图柱状图 配置了一个ECharts图表&#xff0c;该图表集成了数据区域缩放、双Y轴显示及多种图表类型&#xff08;折线图、柱状图、象形柱图&#xff09;。图表通过X轴数据展示&#xff0c;支持平滑折线展示比率数据并自动添加百分比标识&…...

Gromacs——使用过程中暴露问题分析及学习

gromacs——突变残基蛋白电场MD和基本分析从入门到发SCIENCE&#xff1a;基于Gromacs的蛋白小分子动态模拟全过程解析水溶性蛋白模拟全过程&#xff1a;从准备蛋白结构文件&#xff08;top、itp、gro文件生成&#xff09;到模拟数据分析GromacsGROMACS 教程&#xff1a;蛋白配体…...

Webpack模式-Resolve-本地服务器

目录 ResolveMode配置搭本地服务器区分环境配置 Resolve 前面学习时使用了各种各样的模块依赖&#xff0c;这些模块可能来自于自己编写的代码&#xff0c;也可能来自第三方库&#xff0c;在 Webpack 中&#xff0c;resolve 是用于解析模块依赖的配置项&#xff0c;它决定了 We…...

【LLM论文日更】| 通过指令调整进行零样本稠密检索的无监督文本表示学习

论文&#xff1a;https://arxiv.org/pdf/2409.16497代码&#xff1a;暂未开源机构&#xff1a;Amazon AGI、宾夕法尼亚州立大学领域&#xff1a;Dense Retrieval发表&#xff1a;Accepted at DCAI24 workshopCIKM2024 研究背景 研究问题&#xff1a;这篇文章要解决的问题是如…...

02.01、移除重复节点

02.01、[简单] 移除重复节点 1、题目描述 编写代码&#xff0c;移除未排序链表中的重复节点。保留最开始出现的节点。 2、解题思路 为了实现这一目标&#xff0c;我们可以使用一个哈希表&#xff08;或集合&#xff09;来记录已经遇到的节点值&#xff0c;逐步遍历链表并删…...

旅游推荐|旅游推荐系统|基于Springboot+VUE的旅游推荐系统设计与实现(源码+数据库+文档)

旅游推荐系统 目录 基于java的旅游推荐系统设计与实现 一、前言 二、系统功能设计 三、系统实现 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码农|毕设布道师&#xf…...

github项目--crawl4ai

github项目--crawl4ai 输出html输出markdown格式输出结构化数据与BeautifulSoup的对比 crawl4ai github上这个项目&#xff0c;没记错的话&#xff0c;昨天涨了3000多的star&#xff0c;今天又新增2000star。一款抓取和解析工具&#xff0c;简单写个demo感受下 这里我们使用cra…...

仅有N卡独显的情况下安装ubuntu是遇到的黑屏,加载卡顿等问题

Ubuntu安装的两个阶段都要进行一定的设置来临时禁用掉独显或者ubuntu的通用显卡驱动。 U盘启动阶段 U盘启动阶段要对U盘启动项进行设置,通过BIOS设置第一boot为USB hard disk后可以进到U盘引导项,第一项为 “try or install ubuntu”,倒计时10s后自动进入。 这个时候不要…...

Vite:为什么选 Vite

一、现实问题 在浏览器支持 ES 模块之前&#xff0c;JavaScript 并没有提供原生机制让开发者以模块化的方式进行开发。这也正是我们对 “打包” 这个概念熟悉的原因&#xff1a;使用工具抓取、处理并将我们的源码模块串联成可以在浏览器中运行的文件。 时过境迁&#xff0c;我…...

个人项目简单https服务配置

1.SSL简介 SSL证书是一种数字证书&#xff0c;由受信任的证书颁发机构&#xff08;CA&#xff09;颁发&#xff0c;用于在互联网通信中建立加密链接。SSL代表“安全套接层”&#xff0c;是用于在互联网上创建加密链接的协议。SSL证书的主要目的是确保数据传输的安全性和隐私性…...

Rust 函数

Rust 函数 Rust 是一种系统编程语言&#xff0c;以其安全性、并发性和性能而闻名。函数是 Rust 编程语言中的基本构建块&#xff0c;用于封装可重用的代码块。本文将深入探讨 Rust 中的函数&#xff0c;包括其定义、特性、参数、返回值以及高级概念。 函数定义 在 Rust 中&a…...

VLC源码深度定制:3大核心模块解析与编译实践

VLC源码深度定制&#xff1a;3大核心模块解析与编译实践 【免费下载链接】vlc VLC media player - All pull requests are ignored, please use MRs on https://code.videolan.org/videolan/vlc 项目地址: https://gitcode.com/gh_mirrors/vl/vlc 你是否曾想过&#xff…...

C# 图像清晰度“核武器”:8个PictureBox永不模糊的硬核实战技巧

在 Windows Forms 开发中&#xff0c;PictureBox 是我们展示视觉效果的窗口。然而&#xff0c;你是否曾因为图片在缩放或背景色不匹配时变得模糊、锯齿横生&#xff0c;甚至出现难看的“黑边”而感到抓狂&#xff1f;这不仅影响用户体验&#xff0c;更是对完美主义开发者的一种…...

避坑指南:用Qt为STM32项目写上位机时,我遇到的5个串口和界面难题

避坑指南&#xff1a;用Qt为STM32项目写上位机时&#xff0c;我遇到的5个串口和界面难题 第一次用Qt给STM32开发上位机时&#xff0c;我以为串口通信不过是简单的数据收发&#xff0c;界面设计拖拖控件就能搞定。直到项目进度被各种诡异bug拖慢两周后&#xff0c;才意识到自己踩…...

AI专著生成神器登场!快速输出20万字专著,写作不用愁!

学术专著写作困境与AI工具的崛起 对于许多学术研究者来说&#xff0c;撰写学术专著时面临的最大挑战&#xff0c;无疑是“有限的精力”和“无穷的需求”之间的矛盾。撰写专著通常需要三到五年&#xff0c;甚至更长时间&#xff0c;而研究者还需平衡教学、科研项目和学术交流等…...

3D Tiles Tools终极指南:如何快速掌握3D模型格式转换与优化

3D Tiles Tools终极指南&#xff1a;如何快速掌握3D模型格式转换与优化 【免费下载链接】3d-tiles-tools 项目地址: https://gitcode.com/gh_mirrors/3d/3d-tiles-tools 在3D地理空间数据可视化领域&#xff0c;3D Tiles Tools是一套功能强大的开源工具集&#xff0c;专…...

别再为毕设供电发愁了!手把手教你用航模电池+降压模块搞定多电压系统

毕设供电系统实战指南&#xff1a;航模电池与智能降压方案全解析 刚拿到毕设题目的电子系学生小张&#xff0c;正盯着实验室桌上散落的传感器、单片机和电机发愁——这些设备需要的供电电压各不相同&#xff1a;单片机要7-12V&#xff0c;电机要12V&#xff0c;传感器却只要5V。…...

芯片巨头并购软件公司:从硬件竞赛到软硬协同的产业变革

1. 行业现象背后的深层逻辑最近和几个在芯片设计公司和EDA软件公司工作的老朋友聊天&#xff0c;大家不约而同地提到了一个趋势&#xff1a;芯片巨头们的手&#xff0c;伸得越来越长了。以前是买IP核、买制造厂&#xff0c;现在则是频频出手&#xff0c;将一家家软件公司收入囊…...

别再死记硬背了!用一块74283芯片搞定所有BCD码转换(附实战练习题)

用74283芯片玩转BCD码转换&#xff1a;从原理到实战的终极指南 在数字电路设计与计算机组成原理的学习中&#xff0c;BCD码转换一直是让许多学生头疼的"拦路虎"。传统的死记硬背方法不仅效率低下&#xff0c;更无法应对考试中千变万化的题型。本文将彻底改变这一现状…...

还在为视频号下载烦恼吗?3分钟学会res-downloader批量下载技巧

还在为视频号下载烦恼吗&#xff1f;3分钟学会res-downloader批量下载技巧 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 你…...

终极罗技PUBG压枪宏配置指南:从新手到高手的完整教程

终极罗技PUBG压枪宏配置指南&#xff1a;从新手到高手的完整教程 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 你是否在《绝地求生》中经历过这…...