首页 > 其他分享 >测试环境路由可以这么做(六):RocketMQ增强

测试环境路由可以这么做(六):RocketMQ增强

时间:2024-09-21 09:53:31浏览次数:3  
标签:消费 测试环境 环境 特性 RocketMQ 路由 消息

现状

消息队列的处理在测试环境路由中是非常特殊的存在,据说阿里ToG的团队都没有搞定RocketMQ。知道了这个消息,我们还是很值得骄傲的!!!

图片

消息队列有多种实现,当时我们公司同时使用了RabbitMQ、ActiveMQ、Kafka、RocketMQ四种,但业务主要使用的是ActiveMQ,未来计划统一为RocketMQ,所以当前仅对ActiveMQ和RocketMQ做了测试环境路由的增强。

这里主要讲解RocketMQ的增强实现。

为了避免增强的实现逻辑过于复杂,方便升级操作,RocketMQ的路由判断的主要实现放到了RocketMQ-Dashboard服务里面

整体的架构

架构如下图所示:

图片

实现思路

1、不同特性环境的生产者向同一个主题放送消息,但在消息中会携带链路信息

2、不同的特性环境以不同的消费组订阅主题,消费组名称中带有特性环境的名称

3、每个消费组接收到消息后,调用dashboard暴露的接口,判断是否应该自己消费,不应该自己消费,就抛弃掉此消息

下面从代码层面详情介绍具体的业务逻辑

消费者注册特性环境身份

拦截方法:voidDefaultMQPushConsumer#setConsumerGroup(String consumerGroup)

图片

修改消费组名称,名称中附加特性环境标识

消费者消费逻辑

图片

从消息头中解析出调用链路来源的特性环境标识,与消费者的特性环境身份对比,如果一致,直接消费;

若不一致,则调用RocketMQ Dashboard中的新增暴露的http方法,判断是否应该由自己消费,若不应该,则抛弃

Dashboard中新增的远程消费规则逻辑

图片

如果你觉得这篇文章对你有帮助,请不要吝惜你的“关注”、“点赞”、“评价”,我们可以进一步讨论实现方案和细节。你的支持永远是我前进的动力~~~

标签:消费,测试环境,环境,特性,RocketMQ,路由,消息
From: https://blog.csdn.net/u013469646/article/details/142374528

相关文章

  • Vue-router路由
    目录16.1介绍16.2vue的路由16.3安装路由模块16.5声明式路由16.5.1创建MyInfo.vue16.5.1创建Admin.vue16.5.2创建静态路由表16.5.3main.js引入路由模块并使用16.5.4App.vue使用路由16.6编程式路由16.7参数的传递16.7.1声明式路由传参16.7.2编程式路由......
  • vue解决history路由模式刷新重定向问题(apache服务器)
    问题:vue文件打包后部署到apache服务器下,vue在history路由模式时,访问www.xx.com/about路径时刷新会导致notfount页面,这是因为www.xx.com/about目录不存在于服务器。解决:apche服务器重写路由到www.xx.com/下。然后刷新可正常访问到about页面apache开启路由重写1、配置文件......
  • RocketMq详解:一、RocketMQ 介绍及基本概念
    文章目录前言1.RocketMQ简介2.RocketMQ特点3.核心特性4.应用场景5.RocketMQ优势6.RocketMQ四大核心组件6.1NameServer1.NameServer作用2.NameServer被设计为无状态的原因3.和NameServer和Zookeeper的区别4.NameServer的高可用保障6.2Broker1.Broker部署方式2.高可用与负......
  • VUE框架CLI组件化配置Router实现单页面路由程序省市切换联动------VUE框架
    //导入vue-router对象importVueRouterfrom"vue-router";importHebeifrom"../components/hebei.vue";importHenanfrom"../components/henan.vue";//创建路由器对象(在这个路由器对象中配置路由)constrouter=newVueRouter({//在这里配置所有的路由规则......
  • vue3/Element-Plus/路由的使用
    我们来实现一个简单的二级路由1.准备主页和要配置的组件主页面<template><!--加载配置路由--><RouterView></RouterView></template><stylescoped></style>组件1<template><div>考试组件</div></template>组件2<temp......
  • vivo 全链路多版本开发测试环境落地实践
    作者:来自vivo互联网研发效能团队-WangKang测试环境全链路多版本部署,解决多测试环境资源争抢等问题。一、背景介绍软件系统中全链路指的是从用户请求发起,到最终返回响应的整个过程中所涉及到的所有环节和组件。在微服务软件架构风格盛行的今天,因为微服务独立部署、松耦合等特性,......
  • 路由跳转登录权限判断/vue3
    1main.ts引入路由和权限校验importrouterfrom"./router";//路由守卫权限拦截2-2import"@/router/permisstion";2router文件夹,三个文件1.1indexe.tsimport{createRouter,createWebHistory}from"vue-router";import{constRouter}from".......
  • 网关路由
    目录1.1.认识网关1.2.快速入门1.2.1.创建项目1.2.2.引入依赖1.2.3.启动类1.2.4.配置路由1.1.认识网关什么是网关?顾明思议,网关就是网络的关口。数据在网络间传输,从一个网络传输到另一网络时就需要经过网关来做数据的路由和转发以及数据安全的校验。更通俗的来讲,网关......
  • vue一级、二级路由设计
    一、一级路由设计一级路由是指直接映射到应用程序中顶级页面或组件的路由。这些路由通常定义在VueRouter的配置中,作为应用程序导航结构的基础。直接映射:一级路由直接映射到URL路径和Vue组件,没有嵌套关系。顶级导航:它们通常用于应用程序的顶级导航,如首页、关于页面、用户中心......
  • RocketMQ QandA
    RocKetMQ消费消息是推送还是拉取在RocketMQ中,消息的消费可以是推送(Push)模式,也可以是拉取(Pull)模式。拉取模式(Pull):消费者主动去Broker端拉取消息。消费端会定期或按需拉取消息,根据自己的消费速度进行控制。这种模式下,消费者可以控制自己什么时候拉取消息以及拉取的速率,更适合......