前不久我在 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. asp.net core 集成 log4net 日志框架

    asp.net core 集成 log4net 日志框架 Intro 在 asp.net core 中有些日志我们可能想输出到数据库或文件或elasticsearch等,如果不自己去实现一个 Logg ...

  2. OpenGL Windows 窗口程序环境搭建

    OpenGL环境搭建步骤: Downloading OpenGL 根据官网的说法: In all three major desktop platforms (Linux, macOS, and Wi ...

  3. EF6实现软删除

    https://www.jianshu.com/p/c65fbfe16e1a

  4. python中os模块和sys模块的常见用法

    OS模块的常见用法 os.remove()   删除文件 os.rename()   重命名文件 os.walk()    生成目录树下的所有文件名 os.chdir()    改变目录 os.mkd ...

  5. Win7系统下,docker构建nginx+php7环境实践

    前面两章介绍的是Windows系统下如何安装和配置docker,主要原因在于,公司大多人数用的是Windows环境,想通过在Windows环境上,通过docker,构建一个公用的配置. 首先要说明的是 ...

  6. 卸载或安装Git出现Invalid drive错误的解决方案【简记】

    前言:工作中由于公司的电脑(SSD+HDD)硬盘(HDD)突然坏了,只剩下一个系统盘(SSD).然后就是有个比较紧急的需求正在做,申请换的新硬盘不能立刻换上,因为工作的机器不在公司,操作远程机器工作, ...

  7. Node.js在指定的图片模板上生成二维码图片并附带底部文字说明

    在Node.js中,我们可以通过qr-image包直接在后台生成二维码图片,使用方法很简单: var qr = require('qr-image'); exports.createQRImage = ...

  8. python学习笔记3_抽象

    这一步的学习四个知识点,如何将语句组织成函数,参数,作用域(scope),和递归 一.函数 1.抽象和结构 抽象可以节省很多的工作量,实际上它的作用更大,它是使得计算机程序让人读懂的关键(这也是最基本 ...

  9. SQL AVG 函数

    定义和用法 AVG 函数返回数值列的平均值.NULL 值不包括在计算中. SQL AVG() 语法 SELECT AVG(column_name) FROM table_name SQL AVG() ...

  10. C#使用异步操作时的注意要点(翻译)

    异步操作时应注意的要点 使用异步方法返回值应避免使用void 对于预计算或者简单计算的函数建议使用Task.FromResult代替Task.Run 避免使用Task.Run()方法执行长时间堵塞线程 ...