Home avatar

个人知识星球,专注于全栈开发和AI应用

RabbitMQ简易教程 - RPC

在教程第二篇里面我们学习了如何实现一个任务队列,异步方式去处理那些比较耗时的任务。 但是如果我们需要调用一个远程主机上面的方法,并且等待它的执行结果呢? 这种模式我们通常将它称为远程方法调用(RPC)。

这一篇我们将利用RabbitMQ来构建一个RPC服务,服务器上面有一个可返回斐波拉契数的函数。 客户端通过rpc调用来获取结果。

RabbitMQ简易教程 - 主题

前面一篇通过使用direct类型的交换机代替fanout广播类型交换机, 实现了一个基于日志级别路由对应的消息的功能。

但是还是有它的局限性——它并不能根据多个条件来实现路由,只能通过完全匹配routing key, 灵活性不够。

RabbitMQ简易教程 - 路由

前面一篇实现了一个非常基础的日志系统,交换机将所有接收到的消息广播到它所知道的多个接受者。

这一节我们更进一步,实现订阅部分消息的功能。比如我只讲那些ERROR级别的消息写入日志文件, 同时将所有日志打印到控制台上面。

RabbitMQ简易教程 - 发布订阅

前面一篇介绍的任务队列是每个消息只能被一个工作者取走。这一篇讲解发布/订阅消息模式, 在这个模式里面,一个消息可以被发送给多个消费者。

这里我通过一个简单的日志系统来说明,消息生产者会将日志发送给队列,然后多个订阅者可以接收到这条日志显示到不同的地方, 比如可以打印到文件中,同时打印到控制台上面。

RabbitMQ简易教程 - 安装

最近又开始捣鼓RabbitMQ了,一个超好用的队列中间件,官网教程更新,自己也将有用的东东记录下来。

测试环境:消息服务器CentOS7.4、客户端Python3.6.1

RabbitMQ是一个出色的消息代理中间件(Message Broker):接受和转发消息。你可以将它看作是一个邮局, 你把自己的信件写上收件人地址,然后放到邮筒里面就不用管了,由邮局负责将这个信件送到目的地。