你了解RPC,MQ, AMQP这些词语的含义吗?你了解一个并发性能强大的服务需要怎么与线下大量的客户端进行信息推送的吗?没事,只要你知道知道这三个关键词的含义就足以了解一个分布式服务器的重要组成部分推送服务器。如下我们可以得到这三个关键词的含义:

  MQ 全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。

  RPC(Remote Procedure Call Protocol远程过程调用)是分布式架构的核心。

  AMQP协议:即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。Erlang中的实现有 RabbitMQ等。

  其实你不用管这些繁杂的奥义,请看下图,清晰的看到这个工作原理

  

学会了这个,就知道分布式服务器的推送消息的方法了_第1张图片


  amqp协议工作原理

  还看不懂的话,这里就要再简单的说明下,首先安装一个开源的mq服务器如,rabbitmq,activemq,RocketMQ等等一大丢,选择其中一个。

  这里我们选择rabbitmq,RabbitMQ 一个独立的开源实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,可见只要你会其中之一就能用好它。

  然后我们就能使用他了,我们从图可以看出,只要做好生产者和消费者代码就能完成整个通路,也就是服务端是生产者,客户端是消费者的话,就是服务端一个连接rabbitmq代码,客户端连接rabbitmq一个代码,反之亦然,代码就不罗列了,可以查看github

  RabbitMQ 下的 rabbitmq-tutorials ,我使用了nodejs和php的。郑州妇科:www.zztjfk.com/郑州妇科医院:www.zztjfk.com/