目前业务上需要选用合适的消息队列来做数据传输,因此特意调研了一下当下较主流的消息队列的各特点:
消息中间件三要素:生产者、消息、消费者。
衡量标准:生产者、消息、消费者三者的交互。
1.消息路由:消息如何经过消息中间件到达消费者。
2.消息可靠性:
2.1.不允许消息丢失
2.2.允许消息丢失,性能需求大于可靠性
3.消息重放:已经消费过的消息是否能设置某一时间间隔后重新被消费(适用于新系统导入旧数据,防数据丢失)
4.消息堆积:流量高峰期时,消息中间件在高并发投递消息时可能会出现问题,所以把消息暂存在中间件,等流量高峰过去,再投给下游业务
5.消息优先级:
5.1.消息投递顺序和消费顺序一致
5.2.可设置某些消息的消费优先级
6.性能和扩展
6.1.性能:主要指tps、qps以及并发连接数
6.2.扩展:通过添加消费者来提高消费速率、消息中间件的容量上限
鉴于目前我们业务是做数据传输,主要是需要保证数据的完整性,综合比较,选择了RabbitMQ。