背景
这种结构耦合性太高,后端一旦发生变化,前端就要改动。
使用中间件进行解耦,提高扩展性,各种服务都把生成的数据或变化写到中间件,后端服务器根据需要获取数据或变化,同时当生产者生产的数据大于消费者消费的数据时提供了缓存机制。消息队列能够使关键组件顶住突发的访问压⼒力,而不会因为突发的超负荷的请求⽽而完全崩溃。
Kafka是LinkedIn开源的分布式发布-订阅消息系统,它是一种数据管道和消息队列,相当于数据分发中心。
Kafka有如下特点:
- ⾼高吞吐率、低延迟 :每秒处理几⼗万条消息,延迟最低⼏毫秒
- 可扩展性:支持动态扩展节点数据
- 持久性与可靠性:数据被持久化到磁盘上,支持数据多副本防⽌数据丢失
- 高容错 :允许节点失败
- 高并发:支持上千个客户端同时读写
Kafka原理
Kafka是一个生产者-消费者模型,Producer推数据,Consumer主动拉数据。