消息队列:
消息队列的用途(优点):
1.应用解耦:解决不同重要程度、不同能力级别的系统之间的依赖。解决依赖导致的一死全死的情况。
2.流量削峰:主要解决顺势写压力大于应用服务能力导致消息丢失,系统崩溃的问题。
3.数据分发:
解耦、数据恢复、缓冲、灵活性&峰值处理能力、异步通信
缺点:
1.系统可用性降低(mq过于核心,存在mq宕机问题);引出如何解决高可用问题
2.系统的复杂度提升:消息重复消费问题?数据丢失问题?消息传递的顺序?
3.一致性问题
重点:作为缓存消息的一个作用;处理生产者与消费者速率不对等的问题。
常见的消息队列:Kafka、rocketMQ、RatbitMQ;
消息队列的模式:
点对点:消费者主动拉取数据
发布订阅:
消费者主动拉取数据:(由消费者决定消费的速度),缺点:消费者方浪费资源(需要维护一个长轮询)-->kafka
由队列主动的推送的模式:(消费者无法决定)
ONS的使用:(ONS:一个阿里提供的消息队列,其中包含topic(主题)、groupId)
1.配置配置文件:
mq.ons.access_key= K8pfCPRU6gL2lldimq.ons.secret_key= U3lYVGl3L9nb23cEMogWcU