【技术实现步骤摘要】
消息队列的泳道隔离方法、装置、电子设备和存储介质
[0001]本文涉及但不限于消息队列领域。
技术介绍
[0002]泳道隔离是指来自上游带有不同泳道标识的消息能够隔离,从而被下游相同泳道标识的消费实例接收,逻辑上如同游泳场中的泳道,互相隔离。
[0003]微服务框架下服务个数多、调用链路较长,其中一个服务出问题会影响到整条链路。但QA提测往往需要该条链路上的多个服务配套测试,甚至是同时测试一个服务的多个演进版本。
[0004]RabbitMQ消息队列作为整个服务链路的一环,同样需要具备泳道的能力,即相同泳道标识的消息会被相同泳道消费实例消费,而不会被不同泳道标识的消费实例消费。提供稳定环境和多服务/多版本同时测试的需求显得尤为迫切,而MQ作为其中上下游串联的一环,必须具备泳道隔离的能力,把合适的数据交给合适的消费者。
[0005]RabbitMQ原生并不具备泳道的能力,自身仅仅提供了RoutingKey用于判断如何进行消息的路由,RoutingKey是发送消息时带的标识,会被Exchange(Rabb ...
【技术保护点】
【技术特征摘要】
1.一种消息队列的泳道隔离方法,其特征在于,包括:发送端从线程上下文中获取泳道标识,将获取到的泳道标识放到消息中,发送给消息队列;消费端拿到消息后,由骨干消费者解析消息里的泳道标识,转发到对应的泳道队列里,如果没有相应的泳道队列则新建一个泳道队列;查看是否存在对应的泳道消费者,如果存在则由泳道消费者消费该含泳道标识的消息,如果不存在,则由骨干消费者消费该含泳道标识的消息。2.根据权利要求1所述的消息队列的泳道隔离方法,其特征在于,所述将获取到的泳道标识放到消息中包括:将泳道标识放到消息的消息头中。3.根据权利要求1所述的消息队列的泳道隔离方法,其特征在于,还包括:每个消费者会将自身节点信息以临时节点的方式注册,泳道消费者的临时节点是注册在泳道节点下。4.根据权利要求3所述的消息队列的泳道隔离方法,其特征在于,还包括:骨干消费者会对泳道节点的变化监听,当有新增、删除时更新本地内存中的在线泳道消费者标识。5.根据权利要求3所述的消息队列的泳道隔离方法,其特征在于,还包括:泳道消费者上线时会更新泳道节点内容。6.根据权利要求1所述的消息队列的泳道隔离方法,其特征在于,还包括:泳道消费者将泳道标识放到请求上下文中,继续向下流转。7.根据权利要求1所述的消息队列的泳道隔离方法,其特征在于,还包括:如果存在对应的泳道消费者,但泳道消费者不在线,则等待泳道消费者上线再消费。8.根据权利要求1所述的消息队列的泳道隔离方法,其特征在于,还包括:如果...
【专利技术属性】
技术研发人员:李壮壮,
申请(专利权)人:上海虎瑾信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。