Python和RabbitMQ进行消息传递和处理方式
作者:Lightning-py
一、RabbitMQ 简介
RabbitMQ 是一个开源的消息代理软件,它实现了高级消息队列协议(AMQP)标准。
它的官方客户端提供了多种编程语言的接口,包括 Python、Java 和 Ruby 等。
它支持消息的持久化、多种交换机类型、消息通知机制、灵活的路由和安全机制等。
二、RabbitMQ 工作原理
RabbitMQ 是由三部分组成的:生产者、代理服务器(Broker)和消费者。
生产者将要发送的消息发送到代理服务器中,代理服务器根据消息的内容和路由规则将消息分发给消费者进行消费。
在 RabbitMQ 中,消息的传送和存储都是基于队列的。生产者将消息发送到队列,消费者从队列中获取消息进行消费。
队列是消息的缓存区,多个消费者可以从同一个队列中获取消息。
消息在发送时可以设置是否做持久化,持久化的消息不会因为代理服务器的重启而丢失。
RabbitMQ 中有四种类型的交换机:direct、fanout、topic 和 headers。
生产者将消息发送到某个交换机中,交换机收到消息后根据路由规则将消息发送给相应的队列,消费者从队列中获取消息进行消费。
三、RabbitMQ 优劣势
优点
- 可靠性高:RabbitMQ 支持持久化,可以保证消息不会因为代理服务器的重启而丢失。
- 灵活性强:RabbitMQ 支持多种交换机类型,可以灵活地进行消息的路由和分发。
- 可扩展性强:RabbitMQ 支持集群,可以很方便地扩展到多台服务器上。
- 开发语言广泛:RabbitMQ 官方提供的客户端支持多种开发语言,包括 Python、Java 和 Ruby 等。
缺点
- 性能不如 Kafka:RabbitMQ 的性能相对不如 Kafka,在高并发的情况下可能会有瓶颈。
- 管理麻烦:RabbitMQ 的管理比较麻烦,需要专门的管理工具来管理。
四、RabbitMQ 使用场景
- 异步任务处理:异步任务处理是 RabbitMQ 的一个常见应用场景,生产者将任务发送到队列中,消费者从队列中获取任务进行处理,可以提高系统的并发性。
- 消息通知:RabbitMQ 可以用于消息通知,例如在微服务架构下,一个服务完成某个任务后需要通知另外一个服务进行后续处理。
- 数据同步:RabbitMQ 可以用于数据同步,例如在分布式系统中,需要将数据同步到不同的节点中,就可以使用 RabbitMQ 进行消息的传递和同步。
总之,RabbitMQ 是一个非常强大、可靠、灵活的消息代理软件,可以用于多种场景下实现消息的传递和分发。
五、Linux 环境安装 RabbitMQ
在 Linux 环境下安装 RabbitMQ 的步骤如下:
- 1.安装 Erlang
RabbitMQ 是基于 Erlang 开发的,所以需要先安装 Erlang。可以通过以下命令安装 Erlang:
sudo yum install erlang
- 2. 安装 RabbitMQ
添加源和导入公钥后,可以通过以下命令安装 RabbitMQ:
sudo yum install rabbitmq-server
- 3. 启动 RabbitMQ
安装完成后,可以通过以下命令启动 RabbitMQ:
sudo service rabbitmq-server start
至此,RabbitMQ 安装完成并已经启动。
需要注意的是,RabbitMQ 默认监听的端口是 5672,如果需要访问 RabbitMQ,需要确保该端口没有被防火墙或者安全组阻止。
另外,可以通过 sudo rabbitmqctl status
命令来检查 RabbitMQ 是否已经正常运行。
[root@localhost python]# yum install erlang 已加载插件:fastestmirror Loading mirror speeds from cached hostfile epel/x86_64/metalink | 6.9 kB 00:00:00 * base: mirrors.huaweicloud.com * epel: mirrors.tuna.tsinghua.edu.cn * extras: mirrors.bupt.edu.cn * updates: mirrors.bupt.edu.cn base | 3.6 kB 00:00:00 epel | 4.7 kB 00:00:00 extras | 2.9 kB 00:00:00 updates | 2.9 kB 00:00:00 (1/2): epel/x86_64/updateinfo | 1.0 MB 00:00:14 (2/2): epel/x86_64/primary_db | 7.0 MB 00:02:46 正在解决依赖关系 --> 正在检查事务 ---> 软件包 erlang.x86_64.0.R16B-03.18.el7 将被 安装 --> 正在处理依赖关系 erlang-appmon(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-asn1(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-common_test(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-compiler(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-cosEvent(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-cosEventDomain(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-cosFileTransfer(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-cosNotification(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-cosProperty(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-cosTime(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-cosTransactions(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-crypto(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-debugger(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-dialyzer(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-diameter(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-edoc(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-eldap(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-erl_docgen(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-erl_interface(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-erts(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-et(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-eunit(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-examples(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-gs(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-hipe(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-ic(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-inets(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-jinterface(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-kernel(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-megaco(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-mnesia(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-observer(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-odbc(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-orber(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-os_mon(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-otp_mibs(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-parsetools(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-percept(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-pman(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-public_key(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-reltool(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-runtime_tools(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-sasl(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-snmp(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-ssh(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-ssl(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-stdlib(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-syntax_tools(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-test_server(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-toolbar(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-tools(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-tv(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-typer(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-webtool(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-wx(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 erlang-xmerl(x86-64) = R16B-03.18.el7,它被软件包 erlang-R16B-03.18.el7.x86_64 需要 --> 正在检查事务 ---> 软件包 erlang-appmon.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-asn1.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-common_test.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-compiler.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-cosEvent.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-cosEventDomain.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-cosFileTransfer.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-cosNotification.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-cosProperty.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-cosTime.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-cosTransactions.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-crypto.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-debugger.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-dialyzer.x86_64.0.R16B-03.18.el7 将被 安装 --> 正在处理依赖关系 graphviz,它被软件包 erlang-dialyzer-R16B-03.18.el7.x86_64 需要 ---> 软件包 erlang-diameter.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-edoc.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-eldap.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-erl_docgen.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-erl_interface.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-erts.x86_64.0.R16B-03.18.el7 将被 安装 --> 正在处理依赖关系 lksctp-tools,它被软件包 erlang-erts-R16B-03.18.el7.x86_64 需要 ---> 软件包 erlang-et.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-eunit.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-examples.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-gs.x86_64.0.R16B-03.18.el7 将被 安装 --> 正在处理依赖关系 tk,它被软件包 erlang-gs-R16B-03.18.el7.x86_64 需要 ---> 软件包 erlang-hipe.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-ic.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-inets.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-jinterface.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-kernel.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-megaco.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-mnesia.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-observer.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-odbc.x86_64.0.R16B-03.18.el7 将被 安装 --> 正在处理依赖关系 libodbc.so.2()(64bit),它被软件包 erlang-odbc-R16B-03.18.el7.x86_64 需要 ---> 软件包 erlang-orber.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-os_mon.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-otp_mibs.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-parsetools.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-percept.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-pman.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-public_key.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-reltool.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-runtime_tools.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-sasl.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-snmp.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-ssh.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-ssl.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-stdlib.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-syntax_tools.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-test_server.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-toolbar.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-tools.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-tv.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-typer.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-webtool.x86_64.0.R16B-03.18.el7 将被 安装 ---> 软件包 erlang-wx.x86_64.0.R16B-03.18.el7 将被 安装 --> 正在处理依赖关系 libwx_baseu-2.8.so.0(WXU_2.8)(64bit),它被软件包 erlang-wx-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 libwx_gtk2u_adv-2.8.so.0(WXU_2.8)(64bit),它被软件包 erlang-wx-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 libwx_gtk2u_aui-2.8.so.0(WXU_2.8)(64bit),它被软件包 erlang-wx-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 libwx_gtk2u_aui-2.8.so.0(WXU_2.8.5)(64bit),它被软件包 erlang-wx-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 libwx_gtk2u_core-2.8.so.0(WXU_2.8)(64bit),它被软件包 erlang-wx-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 libwx_gtk2u_gl-2.8.so.0(WXU_2.8)(64bit),它被软件包 erlang-wx-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 libwx_gtk2u_html-2.8.so.0(WXU_2.8)(64bit),它被软件包 erlang-wx-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 libwx_gtk2u_stc-2.8.so.0(WXU_2.8)(64bit),它被软件包 erlang-wx-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 libwx_gtk2u_xrc-2.8.so.0(WXU_2.8)(64bit),它被软件包 erlang-wx-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 mesa-libGLU,它被软件包 erlang-wx-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 libGLU.so.1()(64bit),它被软件包 erlang-wx-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 libwx_baseu-2.8.so.0()(64bit),它被软件包 erlang-wx-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 libwx_baseu_xml-2.8.so.0()(64bit),它被软件包 erlang-wx-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 libwx_gtk2u_adv-2.8.so.0()(64bit),它被软件包 erlang-wx-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 libwx_gtk2u_aui-2.8.so.0()(64bit),它被软件包 erlang-wx-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 libwx_gtk2u_core-2.8.so.0()(64bit),它被软件包 erlang-wx-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 libwx_gtk2u_gl-2.8.so.0()(64bit),它被软件包 erlang-wx-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 libwx_gtk2u_html-2.8.so.0()(64bit),它被软件包 erlang-wx-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 libwx_gtk2u_stc-2.8.so.0()(64bit),它被软件包 erlang-wx-R16B-03.18.el7.x86_64 需要 --> 正在处理依赖关系 libwx_gtk2u_xrc-2.8.so.0()(64bit),它被软件包 erlang-wx-R16B-03.18.el7.x86_64 需要 ---> 软件包 erlang-xmerl.x86_64.0.R16B-03.18.el7 将被 安装 --> 正在检查事务 ---> 软件包 graphviz.x86_64.0.2.30.1-22.el7 将被 安装 --> 正在处理依赖关系 urw-fonts,它被软件包 graphviz-2.30.1-22.el7.x86_64 需要 --> 正在处理依赖关系 libltdl.so.7()(64bit),它被软件包 graphviz-2.30.1-22.el7.x86_64 需要 --> 正在处理依赖关系 libgs.so.9()(64bit),它被软件包 graphviz-2.30.1-22.el7.x86_64 需要 --> 正在处理依赖关系 libgd.so.2()(64bit),它被软件包 graphviz-2.30.1-22.el7.x86_64 需要 --> 正在处理依赖关系 libXpm.so.4()(64bit),它被软件包 graphviz-2.30.1-22.el7.x86_64 需要 --> 正在处理依赖关系 libXaw.so.7()(64bit),它被软件包 graphviz-2.30.1-22.el7.x86_64 需要 ---> 软件包 lksctp-tools.x86_64.0.1.0.17-2.el7 将被 安装 ---> 软件包 mesa-libGLU.x86_64.0.9.0.0-4.el7 将被 安装 ---> 软件包 tk.x86_64.1.8.5.13-6.el7 将被 安装 ---> 软件包 unixODBC.x86_64.0.2.3.1-14.el7 将被 安装 ---> 软件包 wxBase.x86_64.0.2.8.12-20.el7 将被 安装 ---> 软件包 wxGTK.x86_64.0.2.8.12-20.el7 将被 安装 --> 正在处理依赖关系 libSDL-1.2.so.0()(64bit),它被软件包 wxGTK-2.8.12-20.el7.x86_64 需要 ---> 软件包 wxGTK-gl.x86_64.0.2.8.12-20.el7 将被 安装 --> 正在检查事务 ---> 软件包 SDL.x86_64.0.1.2.15-17.el7 将被 安装 ---> 软件包 gd.x86_64.0.2.0.35-27.el7_9 将被 安装 ---> 软件包 libXaw.x86_64.0.1.0.13-4.el7 将被 安装 ---> 软件包 libXpm.x86_64.0.3.5.12-2.el7_9 将被 安装 ---> 软件包 libgs.x86_64.0.9.25-5.el7 将被 安装 --> 正在处理依赖关系 adobe-mappings-pdf,它被软件包 libgs-9.25-5.el7.x86_64 需要 --> 正在处理依赖关系 adobe-mappings-cmap-deprecated,它被软件包 libgs-9.25-5.el7.x86_64 需要 --> 正在处理依赖关系 adobe-mappings-cmap,它被软件包 libgs-9.25-5.el7.x86_64 需要 --> 正在处理依赖关系 libpaper.so.1()(64bit),它被软件包 libgs-9.25-5.el7.x86_64 需要 --> 正在处理依赖关系 libopenjp2.so.7()(64bit),它被软件包 libgs-9.25-5.el7.x86_64 需要 ---> 软件包 libtool-ltdl.x86_64.0.2.4.2-22.el7_3 将被 安装 ---> 软件包 urw-base35-fonts.noarch.0.20170801-10.el7 将被 安装 --> 正在处理依赖关系 urw-base35-fonts-common = 20170801-10.el7,它被软件包 urw-base35-fonts-20170801-10.el7.noarch 需要 --> 正在处理依赖关系 urw-base35-z003-fonts,它被软件包 urw-base35-fonts-20170801-10.el7.noarch 需要 --> 正在处理依赖关系 urw-base35-standard-symbols-ps-fonts,它被软件包 urw-base35-fonts-20170801-10.el7.noarch 需要 --> 正在处理依赖关系 urw-base35-p052-fonts,它被软件包 urw-base35-fonts-20170801-10.el7.noarch 需要 --> 正在处理依赖关系 urw-base35-nimbus-sans-fonts,它被软件包 urw-base35-fonts-20170801-10.el7.noarch 需要 --> 正在处理依赖关系 urw-base35-nimbus-roman-fonts,它被软件包 urw-base35-fonts-20170801-10.el7.noarch 需要 --> 正在处理依赖关系 urw-base35-nimbus-mono-ps-fonts,它被软件包 urw-base35-fonts-20170801-10.el7.noarch 需要 --> 正在处理依赖关系 urw-base35-gothic-fonts,它被软件包 urw-base35-fonts-20170801-10.el7.noarch 需要 --> 正在处理依赖关系 urw-base35-d050000l-fonts,它被软件包 urw-base35-fonts-20170801-10.el7.noarch 需要 --> 正在处理依赖关系 urw-base35-c059-fonts,它被软件包 urw-base35-fonts-20170801-10.el7.noarch 需要 --> 正在处理依赖关系 urw-base35-bookman-fonts,它被软件包 urw-base35-fonts-20170801-10.el7.noarch 需要 --> 正在检查事务 ---> 软件包 adobe-mappings-cmap.noarch.0.20171205-3.el7 将被 安装 ---> 软件包 adobe-mappings-cmap-deprecated.noarch.0.20171205-3.el7 将被 安装 ---> 软件包 adobe-mappings-pdf.noarch.0.20180407-1.el7 将被 安装 ---> 软件包 libpaper.x86_64.0.1.1.24-9.el7 将被 安装 ---> 软件包 openjpeg2.x86_64.0.2.3.1-3.el7_7 将被 安装 ---> 软件包 urw-base35-bookman-fonts.noarch.0.20170801-10.el7 将被 安装 --> 正在处理依赖关系 xorg-x11-font-utils,它被软件包 urw-base35-bookman-fonts-20170801-10.el7.noarch 需要 --> 正在处理依赖关系 xorg-x11-font-utils,它被软件包 urw-base35-bookman-fonts-20170801-10.el7.noarch 需要 ---> 软件包 urw-base35-c059-fonts.noarch.0.20170801-10.el7 将被 安装 ---> 软件包 urw-base35-d050000l-fonts.noarch.0.20170801-10.el7 将被 安装 ---> 软件包 urw-base35-fonts-common.noarch.0.20170801-10.el7 将被 安装 ---> 软件包 urw-base35-gothic-fonts.noarch.0.20170801-10.el7 将被 安装 ---> 软件包 urw-base35-nimbus-mono-ps-fonts.noarch.0.20170801-10.el7 将被 安装 ---> 软件包 urw-base35-nimbus-roman-fonts.noarch.0.20170801-10.el7 将被 安装 ---> 软件包 urw-base35-nimbus-sans-fonts.noarch.0.20170801-10.el7 将被 安装 ---> 软件包 urw-base35-p052-fonts.noarch.0.20170801-10.el7 将被 安装 ---> 软件包 urw-base35-standard-symbols-ps-fonts.noarch.0.20170801-10.el7 将被 安装 ---> 软件包 urw-base35-z003-fonts.noarch.0.20170801-10.el7 将被 安装 --> 正在检查事务 ---> 软件包 xorg-x11-font-utils.x86_64.1.7.5-21.el7 将被 安装 --> 解决依赖关系完成 依赖关系解决 ===================================================================================================================================== Package 架构 版本 源 大小 ===================================================================================================================================== 正在安装: erlang x86_64 R16B-03.18.el7 epel 31 k 为依赖而安装: SDL x86_64 1.2.15-17.el7 base 206 k adobe-mappings-cmap noarch 20171205-3.el7 base 2.1 M adobe-mappings-cmap-deprecated noarch 20171205-3.el7 base 114 k adobe-mappings-pdf noarch 20180407-1.el7 base 703 k erlang-appmon x86_64 R16B-03.18.el7 epel 139 k erlang-asn1 x86_64 R16B-03.18.el7 epel 758 k erlang-common_test x86_64 R16B-03.18.el7 epel 720 k erlang-compiler x86_64 R16B-03.18.el7 epel 1.0 M erlang-cosEvent x86_64 R16B-03.18.el7 epel 156 k erlang-cosEventDomain x86_64 R16B-03.18.el7 epel 121 k erlang-cosFileTransfer x86_64 R16B-03.18.el7 epel 175 k erlang-cosNotification x86_64 R16B-03.18.el7 epel 739 k erlang-cosProperty x86_64 R16B-03.18.el7 epel 168 k erlang-cosTime x86_64 R16B-03.18.el7 epel 113 k erlang-cosTransactions x86_64 R16B-03.18.el7 epel 173 k erlang-crypto x86_64 R16B-03.18.el7 epel 86 k erlang-debugger x86_64 R16B-03.18.el7 epel 547 k erlang-dialyzer x86_64 R16B-03.18.el7 epel 656 k erlang-diameter x86_64 R16B-03.18.el7 epel 657 k erlang-edoc x86_64 R16B-03.18.el7 epel 321 k erlang-eldap x86_64 R16B-03.18.el7 epel 103 k erlang-erl_docgen x86_64 R16B-03.18.el7 epel 154 k erlang-erl_interface x86_64 R16B-03.18.el7 epel 186 k erlang-erts x86_64 R16B-03.18.el7 epel 2.5 M erlang-et x86_64 R16B-03.18.el7 epel 225 k erlang-eunit x86_64 R16B-03.18.el7 epel 153 k erlang-examples x86_64 R16B-03.18.el7 epel 1.1 M erlang-gs x86_64 R16B-03.18.el7 epel 628 k erlang-hipe x86_64 R16B-03.18.el7 epel 2.4 M erlang-ic x86_64 R16B-03.18.el7 epel 885 k erlang-inets x86_64 R16B-03.18.el7 epel 800 k erlang-jinterface x86_64 R16B-03.18.el7 epel 101 k erlang-kernel x86_64 R16B-03.18.el7 epel 1.1 M erlang-megaco x86_64 R16B-03.18.el7 epel 5.5 M erlang-mnesia x86_64 R16B-03.18.el7 epel 700 k erlang-observer x86_64 R16B-03.18.el7 epel 558 k erlang-odbc x86_64 R16B-03.18.el7 epel 69 k erlang-orber x86_64 R16B-03.18.el7 epel 947 k erlang-os_mon x86_64 R16B-03.18.el7 epel 115 k erlang-otp_mibs x86_64 R16B-03.18.el7 epel 32 k erlang-parsetools x86_64 R16B-03.18.el7 epel 179 k erlang-percept x86_64 R16B-03.18.el7 epel 151 k erlang-pman x86_64 R16B-03.18.el7 epel 113 k erlang-public_key x86_64 R16B-03.18.el7 epel 538 k erlang-reltool x86_64 R16B-03.18.el7 epel 360 k erlang-runtime_tools x86_64 R16B-03.18.el7 epel 179 k erlang-sasl x86_64 R16B-03.18.el7 epel 293 k erlang-snmp x86_64 R16B-03.18.el7 epel 1.5 M erlang-ssh x86_64 R16B-03.18.el7 epel 394 k erlang-ssl x86_64 R16B-03.18.el7 epel 588 k erlang-stdlib x86_64 R16B-03.18.el7 epel 2.2 M erlang-syntax_tools x86_64 R16B-03.18.el7 epel 336 k erlang-test_server x86_64 R16B-03.18.el7 epel 282 k erlang-toolbar x86_64 R16B-03.18.el7 epel 55 k erlang-tools x86_64 R16B-03.18.el7 epel 566 k erlang-tv x86_64 R16B-03.18.el7 epel 397 k erlang-typer x86_64 R16B-03.18.el7 epel 67 k erlang-webtool x86_64 R16B-03.18.el7 epel 51 k erlang-wx x86_64 R16B-03.18.el7 epel 2.9 M erlang-xmerl x86_64 R16B-03.18.el7 epel 998 k gd x86_64 2.0.35-27.el7_9 updates 146 k graphviz x86_64 2.30.1-22.el7 base 1.3 M libXaw x86_64 1.0.13-4.el7 base 192 k libXpm x86_64 3.5.12-2.el7_9 updates 56 k libgs x86_64 9.25-5.el7 base 4.6 M libpaper x86_64 1.1.24-9.el7 base 37 k libtool-ltdl x86_64 2.4.2-22.el7_3 base 49 k lksctp-tools x86_64 1.0.17-2.el7 base 88 k mesa-libGLU x86_64 9.0.0-4.el7 base 196 k openjpeg2 x86_64 2.3.1-3.el7_7 base 153 k tk x86_64 1:8.5.13-6.el7 base 1.4 M unixODBC x86_64 2.3.1-14.el7 base 413 k urw-base35-bookman-fonts noarch 20170801-10.el7 base 852 k urw-base35-c059-fonts noarch 20170801-10.el7 base 879 k urw-base35-d050000l-fonts noarch 20170801-10.el7 base 75 k urw-base35-fonts noarch 20170801-10.el7 base 7.6 k urw-base35-fonts-common noarch 20170801-10.el7 base 19 k urw-base35-gothic-fonts noarch 20170801-10.el7 base 650 k urw-base35-nimbus-mono-ps-fonts noarch 20170801-10.el7 base 796 k urw-base35-nimbus-roman-fonts noarch 20170801-10.el7 base 860 k urw-base35-nimbus-sans-fonts noarch 20170801-10.el7 base 1.3 M urw-base35-p052-fonts noarch 20170801-10.el7 base 978 k urw-base35-standard-symbols-ps-fonts noarch 20170801-10.el7 base 40 k urw-base35-z003-fonts noarch 20170801-10.el7 base 275 k wxBase x86_64 2.8.12-20.el7 epel 588 k wxGTK x86_64 2.8.12-20.el7 epel 2.9 M wxGTK-gl x86_64 2.8.12-20.el7 epel 34 k xorg-x11-font-utils x86_64 1:7.5-21.el7 base 104 k 事务概要 ===================================================================================================================================== 安装 1 软件包 (+88 依赖软件包) 总下载量:58 M 安装大小:144 M Is this ok [y/d/N]: y Downloading packages: (1/89): SDL-1.2.15-17.el7.x86_64.rpm | 206 kB 00:00:00 (2/89): adobe-mappings-cmap-deprecated-20171205-3.el7.noarch.rpm | 114 kB 00:00:00 (3/89): adobe-mappings-cmap-20171205-3.el7.noarch.rpm | 2.1 MB 00:00:01 (4/89): erlang-R16B-03.18.el7.x86_64.rpm | 31 kB 00:00:02 (5/89): erlang-common_test-R16B-03.18.el7.x86_64.rpm | 720 kB 00:00:05 (6/89): erlang-cosEvent-R16B-03.18.el7.x86_64.rpm | 156 kB 00:00:00 (7/89): adobe-mappings-pdf-20180407-1.el7.noarch.rpm | 703 kB 00:00:08 (8/89): erlang-cosEventDomain-R16B-03.18.el7.x86_64.rpm | 121 kB 00:00:00 (9/89): erlang-appmon-R16B-03.18.el7.x86_64.rpm | 139 kB 00:00:07 (10/89): erlang-cosProperty-R16B-03.18.el7.x86_64.rpm | 168 kB 00:00:00 (11/89): erlang-cosTime-R16B-03.18.el7.x86_64.rpm | 113 kB 00:00:00 (12/89): erlang-cosNotification-R16B-03.18.el7.x86_64.rpm | 739 kB 00:00:01 (13/89): erlang-cosTransactions-R16B-03.18.el7.x86_64.rpm | 173 kB 00:00:00 (14/89): erlang-crypto-R16B-03.18.el7.x86_64.rpm | 86 kB 00:00:00 (15/89): erlang-cosFileTransfer-R16B-03.18.el7.x86_64.rpm | 175 kB 00:00:04 (16/89): erlang-dialyzer-R16B-03.18.el7.x86_64.rpm | 656 kB 00:00:02 (17/89): erlang-edoc-R16B-03.18.el7.x86_64.rpm | 321 kB 00:00:00 (18/89): erlang-eldap-R16B-03.18.el7.x86_64.rpm | 103 kB 00:00:00 (19/89): erlang-diameter-R16B-03.18.el7.x86_64.rpm | 657 kB 00:00:02 (20/89): erlang-debugger-R16B-03.18.el7.x86_64.rpm | 547 kB 00:00:03 (21/89): erlang-erl_docgen-R16B-03.18.el7.x86_64.rpm | 154 kB 00:00:00 (22/89): erlang-erl_interface-R16B-03.18.el7.x86_64.rpm | 186 kB 00:00:00 (23/89): erlang-eunit-R16B-03.18.el7.x86_64.rpm | 153 kB 00:00:00 (24/89): erlang-et-R16B-03.18.el7.x86_64.rpm | 225 kB 00:00:00 (25/89): erlang-gs-R16B-03.18.el7.x86_64.rpm | 628 kB 00:00:01 (26/89): erlang-examples-R16B-03.18.el7.x86_64.rpm | 1.1 MB 00:00:02 (27/89): erlang-erts-R16B-03.18.el7.x86_64.rpm | 2.5 MB 00:00:04 (28/89): erlang-ic-R16B-03.18.el7.x86_64.rpm | 885 kB 00:00:02 (29/89): erlang-jinterface-R16B-03.18.el7.x86_64.rpm | 101 kB 00:00:00 (30/89): erlang-hipe-R16B-03.18.el7.x86_64.rpm | 2.4 MB 00:00:04 (31/89): erlang-kernel-R16B-03.18.el7.x86_64.rpm | 1.1 MB 00:00:00 (32/89): erlang-compiler-R16B-03.18.el7.x86_64.rpm | 1.0 MB 00:00:18 (33/89): erlang-mnesia-R16B-03.18.el7.x86_64.rpm | 700 kB 00:00:00 (34/89): erlang-observer-R16B-03.18.el7.x86_64.rpm | 558 kB 00:00:00 (35/89): erlang-odbc-R16B-03.18.el7.x86_64.rpm | 69 kB 00:00:00 (36/89): erlang-orber-R16B-03.18.el7.x86_64.rpm | 947 kB 00:00:00 (37/89): erlang-os_mon-R16B-03.18.el7.x86_64.rpm | 115 kB 00:00:00 (38/89): erlang-otp_mibs-R16B-03.18.el7.x86_64.rpm | 32 kB 00:00:00 (39/89): erlang-parsetools-R16B-03.18.el7.x86_64.rpm | 179 kB 00:00:00 (40/89): erlang-percept-R16B-03.18.el7.x86_64.rpm | 151 kB 00:00:00 (41/89): erlang-pman-R16B-03.18.el7.x86_64.rpm | 113 kB 00:00:00 (42/89): erlang-asn1-R16B-03.18.el7.x86_64.rpm | 758 kB 00:00:26 (43/89): erlang-public_key-R16B-03.18.el7.x86_64.rpm | 538 kB 00:00:10 (44/89): erlang-reltool-R16B-03.18.el7.x86_64.rpm | 360 kB 00:00:01 (45/89): erlang-sasl-R16B-03.18.el7.x86_64.rpm | 293 kB 00:00:01 (46/89): erlang-megaco-R16B-03.18.el7.x86_64.rpm | 5.5 MB 00:00:18 (47/89): erlang-snmp-R16B-03.18.el7.x86_64.rpm | 1.5 MB 00:00:03 erlang-inets-R16B-03.18.el7.x8 FAILED ] 520 kB/s | 30 MB 00:00:55 ETA https://mirror.hostart.az/fedora-epel/7/x86_64/Packages/e/erlang-inets-R16B-03.18.el7.x86_64.rpm: [Errno 14] curl#7 - "Failed connect to mirror.hostart.az:443; Connection refused" 正在尝试其它镜像。 (48/89): erlang-runtime_tools-R16B-03.18.el7.x86_64.rpm | 179 kB 00:00:06 (49/89): erlang-ssh-R16B-03.18.el7.x86_64.rpm | 394 kB 00:00:00 (50/89): erlang-ssl-R16B-03.18.el7.x86_64.rpm | 588 kB 00:00:01 (51/89): erlang-test_server-R16B-03.18.el7.x86_64.rpm | 282 kB 00:00:01 (52/89): erlang-toolbar-R16B-03.18.el7.x86_64.rpm | 55 kB 00:00:00 (53/89): erlang-tools-R16B-03.18.el7.x86_64.rpm | 566 kB 00:00:00 (54/89): erlang-syntax_tools-R16B-03.18.el7.x86_64.rpm | 336 kB 00:00:02 (55/89): erlang-tv-R16B-03.18.el7.x86_64.rpm | 397 kB 00:00:00 (56/89): erlang-typer-R16B-03.18.el7.x86_64.rpm | 67 kB 00:00:00 (57/89): erlang-webtool-R16B-03.18.el7.x86_64.rpm | 51 kB 00:00:00 (58/89): erlang-wx-R16B-03.18.el7.x86_64.rpm | 2.9 MB 00:00:11 (59/89): gd-2.0.35-27.el7_9.x86_64.rpm | 146 kB 00:00:00 (60/89): graphviz-2.30.1-22.el7.x86_64.rpm | 1.3 MB 00:00:00 (61/89): libXpm-3.5.12-2.el7_9.x86_64.rpm | 56 kB 00:00:00 (62/89): libXaw-1.0.13-4.el7.x86_64.rpm | 192 kB 00:00:01 (63/89): libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm | 49 kB 00:00:00 (64/89): lksctp-tools-1.0.17-2.el7.x86_64.rpm | 88 kB 00:00:00 (65/89): mesa-libGLU-9.0.0-4.el7.x86_64.rpm | 196 kB 00:00:00 (66/89): libpaper-1.1.24-9.el7.x86_64.rpm | 37 kB 00:00:02 (67/89): libgs-9.25-5.el7.x86_64.rpm | 4.6 MB 00:00:02 (68/89): openjpeg2-2.3.1-3.el7_7.x86_64.rpm | 153 kB 00:00:00 (69/89): unixODBC-2.3.1-14.el7.x86_64.rpm | 413 kB 00:00:00 (70/89): urw-base35-c059-fonts-20170801-10.el7.noarch.rpm | 879 kB 00:00:02 (71/89): urw-base35-bookman-fonts-20170801-10.el7.noarch.rpm | 852 kB 00:00:02 (72/89): urw-base35-fonts-20170801-10.el7.noarch.rpm | 7.6 kB 00:00:00 (73/89): urw-base35-d050000l-fonts-20170801-10.el7.noarch.rpm | 75 kB 00:00:00 (74/89): urw-base35-fonts-common-20170801-10.el7.noarch.rpm | 19 kB 00:00:00 (75/89): urw-base35-gothic-fonts-20170801-10.el7.noarch.rpm | 650 kB 00:00:00 (76/89): urw-base35-nimbus-roman-fonts-20170801-10.el7.noarch.rpm | 860 kB 00:00:00 (77/89): urw-base35-nimbus-sans-fonts-20170801-10.el7.noarch.rpm | 1.3 MB 00:00:00 (78/89): urw-base35-p052-fonts-20170801-10.el7.noarch.rpm | 978 kB 00:00:00 (79/89): urw-base35-standard-symbols-ps-fonts-20170801-10.el7.noarch.rpm | 40 kB 00:00:00 (80/89): urw-base35-z003-fonts-20170801-10.el7.noarch.rpm | 275 kB 00:00:00 (81/89): urw-base35-nimbus-mono-ps-fonts-20170801-10.el7.noarch.rpm | 796 kB 00:00:03 (82/89): tk-8.5.13-6.el7.x86_64.rpm | 1.4 MB 00:00:37 (83/89): erlang-xmerl-R16B-03.18.el7.x86_64.rpm | 998 kB 00:00:41 (84/89): xorg-x11-font-utils-7.5-21.el7.x86_64.rpm | 104 kB 00:00:00 (85/89): wxGTK-gl-2.8.12-20.el7.x86_64.rpm | 34 kB 00:00:01 (86/89): wxBase-2.8.12-20.el7.x86_64.rpm | 588 kB 00:00:34 (87/89): erlang-inets-R16B-03.18.el7.x86_64.rpm | 800 kB 00:00:06 (88/89): wxGTK-2.8.12-20.el7.x86_64.rpm | 2.9 MB 00:00:56 (89/89): erlang-stdlib-R16B-03.18.el7.x86_64.rpm | 2.2 MB 00:02:06 ------------------------------------------------------------------------------------------------------------------------------------- 总计 353 kB/s | 58 MB 00:02:49 Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安装 : urw-base35-fonts-common-20170801-10.el7.noarch 1/89 正在安装 : 1:xorg-x11-font-utils-7.5-21.el7.x86_64 2/89 正在安装 : wxBase-2.8.12-20.el7.x86_64 3/89 正在安装 : libXpm-3.5.12-2.el7_9.x86_64 4/89 正在安装 : mesa-libGLU-9.0.0-4.el7.x86_64 5/89 正在安装 : libtool-ltdl-2.4.2-22.el7_3.x86_64 6/89 正在安装 : adobe-mappings-cmap-20171205-3.el7.noarch 7/89 正在安装 : adobe-mappings-cmap-deprecated-20171205-3.el7.noarch 8/89 正在安装 : unixODBC-2.3.1-14.el7.x86_64 9/89 正在安装 : libXaw-1.0.13-4.el7.x86_64 10/89 正在安装 : gd-2.0.35-27.el7_9.x86_64 11/89 正在安装 : urw-base35-c059-fonts-20170801-10.el7.noarch 12/89 正在安装 : urw-base35-d050000l-fonts-20170801-10.el7.noarch 13/89 正在安装 : urw-base35-z003-fonts-20170801-10.el7.noarch 14/89 正在安装 : urw-base35-nimbus-sans-fonts-20170801-10.el7.noarch 15/89 正在安装 : urw-base35-bookman-fonts-20170801-10.el7.noarch 16/89 正在安装 : urw-base35-standard-symbols-ps-fonts-20170801-10.el7.noarch 17/89 正在安装 : urw-base35-gothic-fonts-20170801-10.el7.noarch 18/89 正在安装 : urw-base35-p052-fonts-20170801-10.el7.noarch 19/89 正在安装 : urw-base35-nimbus-roman-fonts-20170801-10.el7.noarch 20/89 正在安装 : urw-base35-nimbus-mono-ps-fonts-20170801-10.el7.noarch 21/89 正在安装 : urw-base35-fonts-20170801-10.el7.noarch 22/89 正在安装 : adobe-mappings-pdf-20180407-1.el7.noarch 23/89 正在安装 : openjpeg2-2.3.1-3.el7_7.x86_64 24/89 正在安装 : SDL-1.2.15-17.el7.x86_64 25/89 正在安装 : wxGTK-2.8.12-20.el7.x86_64 26/89 正在安装 : wxGTK-gl-2.8.12-20.el7.x86_64 27/89 正在安装 : libpaper-1.1.24-9.el7.x86_64 28/89 正在安装 : libgs-9.25-5.el7.x86_64 29/89 正在安装 : graphviz-2.30.1-22.el7.x86_64 30/89 正在安装 : lksctp-tools-1.0.17-2.el7.x86_64 31/89 正在安装 : erlang-crypto-R16B-03.18.el7.x86_64 32/89 正在安装 : erlang-kernel-R16B-03.18.el7.x86_64 33/89 正在安装 : erlang-stdlib-R16B-03.18.el7.x86_64 34/89 正在安装 : erlang-erts-R16B-03.18.el7.x86_64 35/89 正在安装 : erlang-syntax_tools-R16B-03.18.el7.x86_64 36/89 正在安装 : erlang-compiler-R16B-03.18.el7.x86_64 37/89 正在安装 : erlang-hipe-R16B-03.18.el7.x86_64 38/89 正在安装 : erlang-mnesia-R16B-03.18.el7.x86_64 39/89 正在安装 : erlang-runtime_tools-R16B-03.18.el7.x86_64 40/89 正在安装 : erlang-wx-R16B-03.18.el7.x86_64 41/89 正在安装 : erlang-snmp-R16B-03.18.el7.x86_64 42/89 正在安装 : erlang-xmerl-R16B-03.18.el7.x86_64 43/89 正在安装 : erlang-asn1-R16B-03.18.el7.x86_64 44/89 正在安装 : erlang-public_key-R16B-03.18.el7.x86_64 45/89 正在安装 : erlang-ssl-R16B-03.18.el7.x86_64 46/89 正在安装 : erlang-inets-R16B-03.18.el7.x86_64 47/89 正在安装 : erlang-orber-R16B-03.18.el7.x86_64 48/89 正在安装 : erlang-tools-R16B-03.18.el7.x86_64 49/89 正在安装 : erlang-sasl-R16B-03.18.el7.x86_64 50/89 正在安装 : erlang-cosEvent-R16B-03.18.el7.x86_64 51/89 正在安装 : erlang-cosTime-R16B-03.18.el7.x86_64 52/89 正在安装 : erlang-cosNotification-R16B-03.18.el7.x86_64 53/89 正在安装 : erlang-cosProperty-R16B-03.18.el7.x86_64 54/89 正在安装 : erlang-edoc-R16B-03.18.el7.x86_64 55/89 正在安装 : erlang-ssh-R16B-03.18.el7.x86_64 56/89 正在安装 : erlang-otp_mibs-R16B-03.18.el7.x86_64 57/89 正在安装 : erlang-os_mon-R16B-03.18.el7.x86_64 58/89 正在安装 : erlang-erl_docgen-R16B-03.18.el7.x86_64 59/89 正在安装 : erlang-cosFileTransfer-R16B-03.18.el7.x86_64 60/89 正在安装 : erlang-cosEventDomain-R16B-03.18.el7.x86_64 61/89 正在安装 : erlang-reltool-R16B-03.18.el7.x86_64 62/89 正在安装 : erlang-cosTransactions-R16B-03.18.el7.x86_64 63/89 正在安装 : erlang-percept-R16B-03.18.el7.x86_64 64/89 正在安装 : erlang-eldap-R16B-03.18.el7.x86_64 65/89 正在安装 : erlang-diameter-R16B-03.18.el7.x86_64 66/89 正在安装 : erlang-erl_interface-R16B-03.18.el7.x86_64 67/89 正在安装 : erlang-ic-R16B-03.18.el7.x86_64 68/89 正在安装 : erlang-odbc-R16B-03.18.el7.x86_64 69/89 正在安装 : erlang-jinterface-R16B-03.18.el7.x86_64 70/89 正在安装 : erlang-parsetools-R16B-03.18.el7.x86_64 71/89 正在安装 : erlang-eunit-R16B-03.18.el7.x86_64 72/89 正在安装 : 1:tk-8.5.13-6.el7.x86_64 73/89 正在安装 : erlang-gs-R16B-03.18.el7.x86_64 74/89 正在安装 : erlang-et-R16B-03.18.el7.x86_64 75/89 正在安装 : erlang-webtool-R16B-03.18.el7.x86_64 76/89 正在安装 : erlang-observer-R16B-03.18.el7.x86_64 77/89 正在安装 : erlang-debugger-R16B-03.18.el7.x86_64 78/89 正在安装 : erlang-test_server-R16B-03.18.el7.x86_64 79/89 正在安装 : erlang-dialyzer-R16B-03.18.el7.x86_64 80/89 正在安装 : erlang-pman-R16B-03.18.el7.x86_64 81/89 正在安装 : erlang-tv-R16B-03.18.el7.x86_64 82/89 正在安装 : erlang-typer-R16B-03.18.el7.x86_64 83/89 正在安装 : erlang-common_test-R16B-03.18.el7.x86_64 84/89 正在安装 : erlang-megaco-R16B-03.18.el7.x86_64 85/89 正在安装 : erlang-appmon-R16B-03.18.el7.x86_64 86/89 正在安装 : erlang-toolbar-R16B-03.18.el7.x86_64 87/89 正在安装 : erlang-examples-R16B-03.18.el7.x86_64 88/89 正在安装 : erlang-R16B-03.18.el7.x86_64 89/89 验证中 : 1:xorg-x11-font-utils-7.5-21.el7.x86_64 1/89 验证中 : erlang-erl_interface-R16B-03.18.el7.x86_64 2/89 验证中 : erlang-orber-R16B-03.18.el7.x86_64 3/89 验证中 : erlang-erts-R16B-03.18.el7.x86_64 4/89 验证中 : libXpm-3.5.12-2.el7_9.x86_64 5/89 验证中 : erlang-mnesia-R16B-03.18.el7.x86_64 6/89 验证中 : adobe-mappings-cmap-20171205-3.el7.noarch 7/89 验证中 : erlang-public_key-R16B-03.18.el7.x86_64 8/89 验证中 : erlang-ic-R16B-03.18.el7.x86_64 9/89 验证中 : adobe-mappings-cmap-deprecated-20171205-3.el7.noarch 10/89 验证中 : erlang-crypto-R16B-03.18.el7.x86_64 11/89 验证中 : libtool-ltdl-2.4.2-22.el7_3.x86_64 12/89 验证中 : 1:tk-8.5.13-6.el7.x86_64 13/89 验证中 : urw-base35-fonts-common-20170801-10.el7.noarch 14/89 验证中 : erlang-kernel-R16B-03.18.el7.x86_64 15/89 验证中 : lksctp-tools-1.0.17-2.el7.x86_64 16/89 验证中 : erlang-et-R16B-03.18.el7.x86_64 17/89 验证中 : erlang-odbc-R16B-03.18.el7.x86_64 18/89 验证中 : erlang-tools-R16B-03.18.el7.x86_64 19/89 验证中 : erlang-snmp-R16B-03.18.el7.x86_64 20/89 验证中 : erlang-reltool-R16B-03.18.el7.x86_64 21/89 验证中 : erlang-cosTime-R16B-03.18.el7.x86_64 22/89 验证中 : erlang-megaco-R16B-03.18.el7.x86_64 23/89 验证中 : wxGTK-2.8.12-20.el7.x86_64 24/89 验证中 : erlang-eldap-R16B-03.18.el7.x86_64 25/89 验证中 : erlang-tv-R16B-03.18.el7.x86_64 26/89 验证中 : erlang-cosNotification-R16B-03.18.el7.x86_64 27/89 验证中 : erlang-common_test-R16B-03.18.el7.x86_64 28/89 验证中 : erlang-cosEvent-R16B-03.18.el7.x86_64 29/89 验证中 : libgs-9.25-5.el7.x86_64 30/89 验证中 : unixODBC-2.3.1-14.el7.x86_64 31/89 验证中 : erlang-erl_docgen-R16B-03.18.el7.x86_64 32/89 验证中 : erlang-cosTransactions-R16B-03.18.el7.x86_64 33/89 验证中 : erlang-jinterface-R16B-03.18.el7.x86_64 34/89 验证中 : erlang-cosFileTransfer-R16B-03.18.el7.x86_64 35/89 验证中 : erlang-edoc-R16B-03.18.el7.x86_64 36/89 验证中 : erlang-runtime_tools-R16B-03.18.el7.x86_64 37/89 验证中 : urw-base35-c059-fonts-20170801-10.el7.noarch 38/89 验证中 : urw-base35-d050000l-fonts-20170801-10.el7.noarch 39/89 验证中 : erlang-ssh-R16B-03.18.el7.x86_64 40/89 验证中 : erlang-xmerl-R16B-03.18.el7.x86_64 41/89 验证中 : wxGTK-gl-2.8.12-20.el7.x86_64 42/89 验证中 : erlang-appmon-R16B-03.18.el7.x86_64 43/89 验证中 : erlang-os_mon-R16B-03.18.el7.x86_64 44/89 验证中 : erlang-gs-R16B-03.18.el7.x86_64 45/89 验证中 : erlang-typer-R16B-03.18.el7.x86_64 46/89 验证中 : erlang-toolbar-R16B-03.18.el7.x86_64 47/89 验证中 : libpaper-1.1.24-9.el7.x86_64 48/89 验证中 : erlang-observer-R16B-03.18.el7.x86_64 49/89 验证中 : libXaw-1.0.13-4.el7.x86_64 50/89 验证中 : urw-base35-z003-fonts-20170801-10.el7.noarch 51/89 验证中 : urw-base35-nimbus-sans-fonts-20170801-10.el7.noarch 52/89 验证中 : erlang-stdlib-R16B-03.18.el7.x86_64 53/89 验证中 : erlang-debugger-R16B-03.18.el7.x86_64 54/89 验证中 : erlang-hipe-R16B-03.18.el7.x86_64 55/89 验证中 : erlang-inets-R16B-03.18.el7.x86_64 56/89 验证中 : erlang-webtool-R16B-03.18.el7.x86_64 57/89 验证中 : erlang-sasl-R16B-03.18.el7.x86_64 58/89 验证中 : erlang-parsetools-R16B-03.18.el7.x86_64 59/89 验证中 : erlang-test_server-R16B-03.18.el7.x86_64 60/89 验证中 : urw-base35-bookman-fonts-20170801-10.el7.noarch 61/89 验证中 : mesa-libGLU-9.0.0-4.el7.x86_64 62/89 验证中 : gd-2.0.35-27.el7_9.x86_64 63/89 验证中 : erlang-percept-R16B-03.18.el7.x86_64 64/89 验证中 : erlang-otp_mibs-R16B-03.18.el7.x86_64 65/89 验证中 : erlang-examples-R16B-03.18.el7.x86_64 66/89 验证中 : urw-base35-standard-symbols-ps-fonts-20170801-10.el7.noarch 67/89 验证中 : erlang-asn1-R16B-03.18.el7.x86_64 68/89 验证中 : graphviz-2.30.1-22.el7.x86_64 69/89 验证中 : urw-base35-gothic-fonts-20170801-10.el7.noarch 70/89 验证中 : erlang-dialyzer-R16B-03.18.el7.x86_64 71/89 验证中 : urw-base35-p052-fonts-20170801-10.el7.noarch 72/89 验证中 : urw-base35-nimbus-roman-fonts-20170801-10.el7.noarch 73/89 验证中 : erlang-compiler-R16B-03.18.el7.x86_64 74/89 验证中 : erlang-syntax_tools-R16B-03.18.el7.x86_64 75/89 验证中 : erlang-pman-R16B-03.18.el7.x86_64 76/89 验证中 : SDL-1.2.15-17.el7.x86_64 77/89 验证中 : erlang-diameter-R16B-03.18.el7.x86_64 78/89 验证中 : wxBase-2.8.12-20.el7.x86_64 79/89 验证中 : erlang-ssl-R16B-03.18.el7.x86_64 80/89 验证中 : urw-base35-fonts-20170801-10.el7.noarch 81/89 验证中 : openjpeg2-2.3.1-3.el7_7.x86_64 82/89 验证中 : erlang-eunit-R16B-03.18.el7.x86_64 83/89 验证中 : erlang-cosProperty-R16B-03.18.el7.x86_64 84/89 验证中 : urw-base35-nimbus-mono-ps-fonts-20170801-10.el7.noarch 85/89 验证中 : erlang-wx-R16B-03.18.el7.x86_64 86/89 验证中 : erlang-R16B-03.18.el7.x86_64 87/89 验证中 : adobe-mappings-pdf-20180407-1.el7.noarch 88/89 验证中 : erlang-cosEventDomain-R16B-03.18.el7.x86_64 89/89 已安装: erlang.x86_64 0:R16B-03.18.el7 作为依赖被安装: SDL.x86_64 0:1.2.15-17.el7 adobe-mappings-cmap.noarch 0:20171205-3.el7 adobe-mappings-cmap-deprecated.noarch 0:20171205-3.el7 adobe-mappings-pdf.noarch 0:20180407-1.el7 erlang-appmon.x86_64 0:R16B-03.18.el7 erlang-asn1.x86_64 0:R16B-03.18.el7 erlang-common_test.x86_64 0:R16B-03.18.el7 erlang-compiler.x86_64 0:R16B-03.18.el7 erlang-cosEvent.x86_64 0:R16B-03.18.el7 erlang-cosEventDomain.x86_64 0:R16B-03.18.el7 erlang-cosFileTransfer.x86_64 0:R16B-03.18.el7 erlang-cosNotification.x86_64 0:R16B-03.18.el7 erlang-cosProperty.x86_64 0:R16B-03.18.el7 erlang-cosTime.x86_64 0:R16B-03.18.el7 erlang-cosTransactions.x86_64 0:R16B-03.18.el7 erlang-crypto.x86_64 0:R16B-03.18.el7 erlang-debugger.x86_64 0:R16B-03.18.el7 erlang-dialyzer.x86_64 0:R16B-03.18.el7 erlang-diameter.x86_64 0:R16B-03.18.el7 erlang-edoc.x86_64 0:R16B-03.18.el7 erlang-eldap.x86_64 0:R16B-03.18.el7 erlang-erl_docgen.x86_64 0:R16B-03.18.el7 erlang-erl_interface.x86_64 0:R16B-03.18.el7 erlang-erts.x86_64 0:R16B-03.18.el7 erlang-et.x86_64 0:R16B-03.18.el7 erlang-eunit.x86_64 0:R16B-03.18.el7 erlang-examples.x86_64 0:R16B-03.18.el7 erlang-gs.x86_64 0:R16B-03.18.el7 erlang-hipe.x86_64 0:R16B-03.18.el7 erlang-ic.x86_64 0:R16B-03.18.el7 erlang-inets.x86_64 0:R16B-03.18.el7 erlang-jinterface.x86_64 0:R16B-03.18.el7 erlang-kernel.x86_64 0:R16B-03.18.el7 erlang-megaco.x86_64 0:R16B-03.18.el7 erlang-mnesia.x86_64 0:R16B-03.18.el7 erlang-observer.x86_64 0:R16B-03.18.el7 erlang-odbc.x86_64 0:R16B-03.18.el7 erlang-orber.x86_64 0:R16B-03.18.el7 erlang-os_mon.x86_64 0:R16B-03.18.el7 erlang-otp_mibs.x86_64 0:R16B-03.18.el7 erlang-parsetools.x86_64 0:R16B-03.18.el7 erlang-percept.x86_64 0:R16B-03.18.el7 erlang-pman.x86_64 0:R16B-03.18.el7 erlang-public_key.x86_64 0:R16B-03.18.el7 erlang-reltool.x86_64 0:R16B-03.18.el7 erlang-runtime_tools.x86_64 0:R16B-03.18.el7 erlang-sasl.x86_64 0:R16B-03.18.el7 erlang-snmp.x86_64 0:R16B-03.18.el7 erlang-ssh.x86_64 0:R16B-03.18.el7 erlang-ssl.x86_64 0:R16B-03.18.el7 erlang-stdlib.x86_64 0:R16B-03.18.el7 erlang-syntax_tools.x86_64 0:R16B-03.18.el7 erlang-test_server.x86_64 0:R16B-03.18.el7 erlang-toolbar.x86_64 0:R16B-03.18.el7 erlang-tools.x86_64 0:R16B-03.18.el7 erlang-tv.x86_64 0:R16B-03.18.el7 erlang-typer.x86_64 0:R16B-03.18.el7 erlang-webtool.x86_64 0:R16B-03.18.el7 erlang-wx.x86_64 0:R16B-03.18.el7 erlang-xmerl.x86_64 0:R16B-03.18.el7 gd.x86_64 0:2.0.35-27.el7_9 graphviz.x86_64 0:2.30.1-22.el7 libXaw.x86_64 0:1.0.13-4.el7 libXpm.x86_64 0:3.5.12-2.el7_9 libgs.x86_64 0:9.25-5.el7 libpaper.x86_64 0:1.1.24-9.el7 libtool-ltdl.x86_64 0:2.4.2-22.el7_3 lksctp-tools.x86_64 0:1.0.17-2.el7 mesa-libGLU.x86_64 0:9.0.0-4.el7 openjpeg2.x86_64 0:2.3.1-3.el7_7 tk.x86_64 1:8.5.13-6.el7 unixODBC.x86_64 0:2.3.1-14.el7 urw-base35-bookman-fonts.noarch 0:20170801-10.el7 urw-base35-c059-fonts.noarch 0:20170801-10.el7 urw-base35-d050000l-fonts.noarch 0:20170801-10.el7 urw-base35-fonts.noarch 0:20170801-10.el7 urw-base35-fonts-common.noarch 0:20170801-10.el7 urw-base35-gothic-fonts.noarch 0:20170801-10.el7 urw-base35-nimbus-mono-ps-fonts.noarch 0:20170801-10.el7 urw-base35-nimbus-roman-fonts.noarch 0:20170801-10.el7 urw-base35-nimbus-sans-fonts.noarch 0:20170801-10.el7 urw-base35-p052-fonts.noarch 0:20170801-10.el7 urw-base35-standard-symbols-ps-fonts.noarch 0:20170801-10.el7 urw-base35-z003-fonts.noarch 0:20170801-10.el7 wxBase.x86_64 0:2.8.12-20.el7 wxGTK.x86_64 0:2.8.12-20.el7 wxGTK-gl.x86_64 0:2.8.12-20.el7 xorg-x11-font-utils.x86_64 1:7.5-21.el7 完毕!
[root@localhost python]# yum install rabbitmq-server 已加载插件:fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.huaweicloud.com * epel: mirror-icn.yuki.net.uk * extras: mirrors.bupt.edu.cn * updates: mirrors.bupt.edu.cn 正在解决依赖关系 --> 正在检查事务 ---> 软件包 rabbitmq-server.noarch.0.3.3.5-34.el7 将被 安装 --> 正在处理依赖关系 erlang-sd_notify,它被软件包 rabbitmq-server-3.3.5-34.el7.noarch 需要 --> 正在检查事务 ---> 软件包 erlang-sd_notify.x86_64.0.0.1-1.el7 将被 安装 --> 解决依赖关系完成 依赖关系解决 ===================================================================================================================================== Package 架构 版本 源 大小 ===================================================================================================================================== 正在安装: rabbitmq-server noarch 3.3.5-34.el7 epel 4.0 M 为依赖而安装: erlang-sd_notify x86_64 0.1-1.el7 epel 9.1 k 事务概要 ===================================================================================================================================== 安装 1 软件包 (+1 依赖软件包) 总下载量:4.0 M 安装大小:4.8 M Is this ok [y/d/N]: y Downloading packages: (1/2): erlang-sd_notify-0.1-1.el7.x86_64.rpm | 9.1 kB 00:00:00 (2/2): rabbitmq-server-3.3.5-34.el7.noarch.rpm | 4.0 MB 00:00:46 ------------------------------------------------------------------------------------------------------------------------------------- 总计 89 kB/s | 4.0 MB 00:00:46 Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安装 : erlang-sd_notify-0.1-1.el7.x86_64 1/2 正在安装 : rabbitmq-server-3.3.5-34.el7.noarch 2/2 验证中 : erlang-sd_notify-0.1-1.el7.x86_64 1/2 验证中 : rabbitmq-server-3.3.5-34.el7.noarch 2/2 已安装: rabbitmq-server.noarch 0:3.3.5-34.el7 作为依赖被安装: erlang-sd_notify.x86_64 0:0.1-1.el7 完毕!
[root@localhost python]# service rabbitmq-server start Redirecting to /bin/systemctl start rabbitmq-server.service [root@localhost python]# rabbitmqctl status Status of node rabbit@localhost ... [{pid,69970}, {running_applications,[{rabbit,"RabbitMQ","3.3.5"}, {mnesia,"MNESIA CXC 138 12","4.11"}, {os_mon,"CPO CXC 138 46","2.2.14"}, {xmerl,"XML parser","1.3.6"}, {sasl,"SASL CXC 138 11","2.3.4"}, {stdlib,"ERTS CXC 138 10","1.19.4"}, {kernel,"ERTS CXC 138 10","2.16.4"}]}, {os,{unix,linux}}, {erlang_version,"Erlang R16B03-1 (erts-5.10.4) [source] [64-bit] [async-threads:30] [hipe] [kernel-poll:true]\n"}, {memory,[{total,35144264}, {connection_procs,2720}, {queue_procs,5440}, {plugins,0}, {other_proc,13454680}, {mnesia,58112}, {mgmt_db,0}, {msg_index,21800}, {other_ets,779728}, {binary,17784}, {code,16713450}, {atom,602729}, {other_system,3487821}]}, {alarms,[]}, {listeners,[{clustering,25672,"::"},{amqp,5672,"::"}]}, {vm_memory_high_watermark,0.4}, {vm_memory_limit,407812505}, {disk_free_limit,50000000}, {disk_free,12304441344}, {file_descriptors,[{total_limit,924}, {total_used,3}, {sockets_limit,829}, {sockets_used,1}]}, {processes,[{limit,1048576},{used,124}]}, {run_queue,0}, {uptime,3}] ...done.
六、Python 和 RabbitMQ 进行消息传递和处理
以下是一个使用 Python 和 RabbitMQ 进行消息传递和处理的示例:
1. 安装 RabbitMQ
首先需要安装 RabbitMQ,可以从官网下载对应系统的安装包进行安装。
安装完成后,启动 RabbitMQ 服务。参考第五章节内容。
2. 安装 pika 库
pika 是 RabbitMQ 的 Python 客户端库,可以使用 pip 安装:
pip install pika
[root@localhost python]# pip3 install pika Collecting pika Downloading pika-1.3.1-py3-none-any.whl (155 kB) |████████████████████████████████| 155 kB 352 kB/s Installing collected packages: pika Successfully installed pika-1.3.1 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
3. 生产者代码
以下是一个简单的生产者代码,可以运行该代码向队列中发送消息:
import pika # 连接 RabbitMQ connection = pika.BlockingConnection(pika.ConnectionParameters('localhost')) channel = connection.channel() # 创建队列 channel.queue_declare(queue='hello') # 发送消息 channel.basic_publish(exchange='', routing_key='hello', body='Hello World!') print(" [x] Sent 'Hello World!'") # 关闭连接 connection.close()
4. 消费者代码
以下是一个简单的消费者代码,可以运行该代码从队列中获取消息并进行处理:
import pika # 连接 RabbitMQ connection = pika.BlockingConnection(pika.ConnectionParameters('localhost')) channel = connection.channel() # 创建队列 channel.queue_declare(queue='hello') # 定义消息处理函数 def callback(ch, method, properties, body): print(" [x] Received %r" % body) # 注册消息处理函数 channel.basic_consume(queue='hello', on_message_callback=callback, auto_ack=True) # 开始消费 print(' [*] Waiting for messages. To exit press CTRL+C') channel.start_consuming()
5. 运行代码
先运行消费者代码,在命令行中执行:
python receive.py
然后再运行生产者代码,在命令行中执行:
python send.py
可以看到,生产者代码发送了一条消息,消费者代码从队列中获取到了该消息并进行了处理。这就是 RabbitMQ 的基本使用方式。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。