生产者中把orderid接受取模,把同一模的数据放到messagequeue里面,消费者消费同一个messagequeue,只要消费者这边活动有序消费,那就是可以可以保证数据被顺序消费。
我想你的问题是想问“要如何自己电脑设计”一套消息队列框架,对吗?
现实中也有了很多再朝完全不同系统的消息队列软件,长大成熟的消息队列如kafka,rocketmq等。其实现语言也多种多样,你也可以从github之类的地方获得这些软件来去学习和在用。
而自己电脑设计一套消息队列,是因为面对相同的应用场景,其要求是不一样的,也没也能适用所有场景的消息队列。而下面我简单啊讲下一个其它的、稍微地完备的消息队列框架估计怎么设计哪些东西,通常可以介绍下基本都功能,思想和设计。希望能帮到你。
消息队列主要是目的是系统解耦,先讲讲设计上要确定哪些。
1、一个比较好求下载的消息队列要考虑100元以内功能(不全部列表)
消息收与发机制、消息剥落如何处理、、消息不持久化、消息可信投递(最起码绝对的保证三次投递,这些再重复一遍投递的处理)、topic支持什么(仅有或多topic)、多消费者投递(不同topic消息)、投递溯回、集群和负载均衡等性能设计、事务支持、监控和告警等能维护功能
大概有这些吧。
以上是设计必须判断的东东。
再简单说说基于要确定什么。
2、实现方法的话,主要注意从协议、转储、消费简单的说说。
?
协议:这个发动了攻击了很多内容。简单啊说那是现在高速公路通行的是用rpc框架实现通信。依靠prc框架能解决负载均衡,服务发现,协议化,序列化等问题。rpc框架你这个可以百度打听一下下。
消息简单的方法topic序列化并组织到存储管道中,管道维护一个锁,获得锁的消费者查询并我得到自己的消息项。
存储:存储管道一般会确立在内存、文件系统(本地或分布式)、数据库(关系、非关系男女皆)。这两种依据什么具体怎么样选用。.例如:需要速度,不要深度则判断内存,是需要可信就选数据库,等等。
?
消费关系:消息投递到消费者就像需要广播或单播,最常见的使用场景是组内单播,组间广播,对如一个集群内也可以不使用是一样的的群组来注册订阅。正常情况还要辅助系统指导程序维护消费订阅关系,在消费关系突然发生变化时发出通知。
?
别外不需要特别考虑到的东西也有:消息的靠谱经过,再确认与重发,序列号角点等等。这些几句话说不上来,有时间你可以在回复中提问,我具体知道回答。