为什么学习消息队列

为什么学习消息队列

 

 

 

 

 

 生产者:负责生产并发送消息到Broker中,字符串,对象,json数据等等

Broker :消息处理中心,消息存储,确认,负责消息的

消费者:把数据拿过来,后面进行一些,处理相关业务

消息队列可以解决很多问题,比如耗时比较长的操作可以放到消息队列里去,比如,发短信,邮件,推送消息等。

用户很多的,同步发送会很慢,通过异步进行发送,缓解服务器压力

异步性,同步耗时的变成异步,提高执行效率

解耦,降低业务之间的关联性

还可以做成分布式

根据场景选择

kafka 

目前业界用的非常多的解决消息队列的应用

高性能的,跨语言的,分布式的消息队列系统

支持数据持久化。支持高吞吐量

在官网有一个测试:一个普通的服务器可以达到10W以上每秒的处理能力,QPS。

完全支持分布式,天然支持分布式。

处理海量的日志平台,

rabbitMQ 比较优秀的开源消息队列系统,基于erlang开发。数据一致性,稳定性,可靠性都不错。

Redis 也可以支持消息队列的,push,pop。发布订阅功能也可以做这样一个场景。5.0redis消息队列,思想借鉴kafka非常有潜力。

 

 

       

 

 官网 下载  选择二进制包  wget下载  tar xvf 解压  路径安装到usr/local  启动需要依赖JDK(java)

配置zookeeper.properties

配置server.properties 监听端口 

先启动zookeeper

 在启动kafka

 

 是否启动完成

 创建消费者

 创建生产者,启动后生产者输入消息,消费者输出消息

 php安装kafka扩展 

github搜索librdkafka 克隆下载  系统中安装librdkafka(./configure make make install)

github搜索php-rdkafka 克隆下载  php扩展安装(phpize  make && make install) 配置到php.ini中

 重启lnmp  php -m查看扩展 rdkafka

在model 中创建 kafka

原文地址:https://www.cnblogs.com/zhaoyang-1989/p/13269029.html