前不久我在 Mac 上成功安装了 mosquitto,这次我又试了试安装另一个热门的 broker —— Apache Apollo。对在 Mac 上安装 mosquitto 感兴趣的可以点击查看我的另一篇文章《Python:Mac 下 MQTT 服务器 Mosquitto 的配置》。

安装和运行 Apache Apollo

1. 下载文件 apache-apollo-1.7.1-unix-distro.tar.gz (网上搜一搜资源,我当时是在有人提供的百度云盘中下载的,现在找不到链接了)。

2. 解压在你习惯的位置。解压的文件夹中有一个 readme.html,双击打开是安装指南,我就是参照这个安装的,不过其中有些内容需要变通一下。

3. 打开终端,进入解压后的文件夹下的 bin 文件夹。(比如说我将解压文件放置在了 /Users/Zhenqi 文件夹下,所以我执行cd /Users/zhenqi/apache-apollo-/bin 。)

4. 执行  ./apollo create mybroker ,(可以取 mybroker 之外的名字),就会得到一个实例 mybroker 在 bin 文件夹下。运行结果如下。

5. 执行  ./mybroker/bin/apollo-broker run ,如显示以下界面就成功运行了。之后要再运行时也要再执行该命令,注意 path 的改变。

6. 打开浏览器,访问 https://127.0.0.1:61681/ 或 http://127.0.0.1:61680/ 就可以打开 Apollo 管理界面。输入默认用户名 admin 和密码 password,如下图。我在访问前一个 URL 时显示不安全,访问后一个就好了。

 

一个 Python 例子

在下载的文件中有很多不同语言的例子,在这里我就写一下我试验成功的一个 Python 例子。用到的两个 Python 文件的位置是 apache-apollo-1.7.1 > examples > stomp > python > stompest > sync ,两个文件分别是 listener.py 和 pusblisher.py。如下图所示。建议研究一下源代码便于理解。

这两个文件中都用到了 stompest 包,需要安装一下,建议将这个包安装在 python2 的库中,因为这两个文件是主要是 python2 的语法(如果运行python3 会报错,当然你也可以手动将所有错误修改)终端中执行 pip install stompest 。如果安装时报错,就在前面加上 sudo 试一试。

在一个终端界面中保持 apollo broker 的运行,并打开 apollo 管理界面(https://127.0.0.1:61681/ 或 http://127.0.0.1:61680/),操作如之前所述。

打开两个新的终端页面(快捷键 cmd + N),都进入 apache-apollo-1.7.1/examples/stomp/python/stompest/sync 位置,如下图。

将 Apollo 管理界面放在一旁置顶便于观察。

在后面新开的两个终端中的其中一个终端中执行  python listener.py ,终端不会有任何输出,该文件持续运行中,观察 Apollo 管理界面就能发现有了一个 topic,如下图所示。

这时候在另一个新开的终端中执行 python publisher.py ,你会观察到 Apollo 管理界面中 Topics 下 Consumers 由1变0,后两个终端也会有输出内容。效果如下动图。Apollo 管理界面中运行速度快,如果没有观察到变化,可以重复运行 listener.py 和 publisher.py,要先运行前者,你可以试一试先运行后者的效果便于理解。

Mac 上 Apache Apollo 的安装与运行,和官方下载文件中 Python 实例的演示的更多相关文章

  1. OpenSSL证书生成及Mac上Apache服务器配置HTTPS(也适用centos)

    自签名证书 配置Apache服务器SSL 自己作为CA签发证书 这里是OpenSSL和HTTPS的介绍OpenSSLHTTPS 开启HTTPS配置前提是已在Mac上搭建Apache服务器→Mac上Ap ...

  2. 如何在 Mac 上通过 Boot Camp 安装 Windows?

    如何在 Mac 上通过 Boot Camp 安装 Windows? The following contents are chosen from the apple website, thanks f ...

  3. 在Mac上使用vundle自动安装vim插件,并用vim代替sourceinsight

    一直以来在Mac上找不到好的代码阅读工具,最近根据网上的教程,自己总结一下,做了个在Mac的类sourceinsight的vim,感觉很好用.我不喜欢那种把vim搞的很复杂的配置,所以做了个仅仅能满足 ...

  4. mac上一键配置和安装adb驱动或者环境

    最近才使用的mac,老实说mac上要配置adb的环境不那么复杂,但是还是会让一些心不细或者动手能力不强的同学望而却步.那么到底有没有一个一键完成mac上adb和fastboot环境搭配的软件或者脚本呢 ...

  5. 【转】如何在Mac上卸载Java及安装Java

    如何在 Mac 上卸载 Java? 本文适用于: 平台: Macintosh OS X Java 版本: 7.0, 8.0 使用终端卸载 Oracle Java 注:要卸载 Java,必须具有管理员权 ...

  6. Mac上sonar插件的安装及使用

    本文主要讲解sonar的安装及使用. 分为两个维度来讲解 1. 使用sonarqube以及自带的Derby数据库 2. 使用sonarqube以及配置mysql数据库 ---------------- ...

  7. Mac下Apache+MySQL+PHP安装

    max下是自带有Apache和php的服务器的,不需要另外安装,本文就对相关配置进行介绍. 第一:Apache 在终端中输入,下面指令即可启动Apache服务器: //启动 sudo apachect ...

  8. Mac上使用Docker Desktop安装Kubernetes

    下载镜像需要特殊手段,你懂的,如果没有特殊手段,建议放弃这种方式. 1 启用Kubernetes 启用过程,会联网下载kubenetes相关的核心组件镜像,如下是我下载好的: 下载好了,kubenet ...

  9. 在mac上使用tar.gz安装mysql

    官方: download: https://dev.mysql.com/downloads/mysql/ mysql参考文档:https://dev.mysql.com/doc/ 环境: macOS ...

随机推荐

  1. logback日志框架的简单使用

    1.首先在maven中增加依赖 <dependency> <groupId>ch.qos.logback</groupId> <artifactId>l ...

  2. mvc设计模式的优点

    软件设计的理念是:高内聚,低耦合.采用三层: UI:(jsp,servlet), service:(具体的业务实现), dao:(对数据库的操作) 的设计模式来指导项目开发可以使得项目各层之间是一个粗 ...

  3. Codeforces #541 (Div2) - F. Asya And Kittens(并查集+链表)

    Problem   Codeforces #541 (Div2) - F. Asya And Kittens Time Limit: 2000 mSec Problem Description Inp ...

  4. nginx正则匹配

    1.通用匹配规则 .     匹配除换行符以外的任意字符 \w  匹配字母.数字.下划线.汉字 \s   匹配任意的空白符 \d   匹配数字 ^    匹配字符串的开始 $    匹配字符串的结束 ...

  5. DRF缓存

    对于现在的动态网站来讲,所有的界面展示都是通过客户端请求服务端,服务端再去请求数据库,然后将请求到的数据渲染后返回给客户端.用户每次访问页面都需要去请求数据库,如果同时有多个人访问的话,对于我们的数据 ...

  6. openstack第五章:cinder

    第五篇cinder— 存储服务   一.cinder 介绍:   理解 Block Storage 操作系统获得存储空间的方式一般有两种: 通过某种协议(SAS,SCSI,SAN,iSCSI 等)挂接 ...

  7. 我对DFS的理解

    我对DFS的理解 [何为DFS] 深度优先搜索(Depth-First-Search),简称DFS.是一种常见搜索算法.其方法是从原点不断一条路扩散,当无路可走时回退来走下一条路,直至找到目标或遍历. ...

  8. mysql主主配置

    数据安装完成后 配置信息  开启二进制文件复制 [client]port=3306[mysqld]basedir=/usr/local/mysqldatadir=/usr/local/mysql/da ...

  9. [转帖]优化IMPDP/EXPDP导入导出速度

    优化IMPDP/EXPDP导入导出速度 https://www.2cto.com/database/201308/238176.html 一年半没太学习数据库了.. 其实这个parallel 的参数一 ...

  10. 通过后缀名和MIME-TYPE检查实现文件类型校验

    前言 文件上传是一个在开发中很常见的需求场景,通常出于安全考虑,我们会对上传的文件进行类型校验,其中常见的有后缀名校验,mime-type校验 话不多说,直接上代码 1.首先定义允许上传的文件类型白名 ...