前不久我在 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. Express NodeJs Web框架 入门笔记

    Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具. 使用 Express 可以快速地搭建一个完整功能的网 ...

  2. 前端开发之基础知识-HTML(二)

    1.6 html链接 html链接 <a>标签可以在网页上定义一个链接地址,通过src属性定义跳转的地址,通过title属性定义鼠标悬停时弹出的提示文字框. <a href=&quo ...

  3. 查看SQL Server服务运行帐户和SQL Server的所有注册表项

    查看SQL Server服务运行帐户和SQL Server的所有注册表项 SELECT * FROM sys.dm_server_registry SELECT * FROM sys.dm_serve ...

  4. go语言框架gin之集成swagger

    1.安装swag 在goLand中直接使用go get -u github.com/swaggo/swag/cmd/swag命令安装会报错 翻了很多博客,都没找到太合适的办法,根据博客中所写的操作还是 ...

  5. 在Winform开发中使用Grid++报表

    之前一直使用各种报表工具,如RDLC.DevExpress套件的XtraReport报表,在之前一些随笔也有介绍,最近接触锐浪的Grid++报表,做了一些测试例子和辅助类来处理报表内容,觉得还是很不错 ...

  6. Git使用注意事项

    第一次用git时push时,突然想到我没有设置ssh key,却也可以push代码到自己仓库,那我本地登陆的账号Git是存在哪儿了呢? Git本地账户凭证管理 在第一次push到远程仓库时,git会提 ...

  7. iOS 关于监听手机截图,UIView生成UIImage, UIImage裁剪与压缩的总结

    一.  关于监听手机截图 1. 背景: 发现商品的售价页总是被人转发截图,为了方便用户添加截图分享的小功能 首先要注册用户截屏操作的通知 - (void)viewDidLoad { [super vi ...

  8. webpack优化相关操作

    1.缩小文件搜索的范围 • 优化loader配置 尽量精确使用 include 只命中需要的文件.    module.exports = {      module: {        rules: ...

  9. C#-之属性(2)

    1.   属性结合字段和方法得多个方面,对于对象的用户来说,属性就像字段(这样就可以修改属性值或者访问),对于类的实现者来说,属性包括两个各部分get访问器(用于读取属性)和set访问器(用于设置属性 ...

  10. JS操作iframe元素

    1.  demo1.html页面中有个iframe元素,iframe元素的src是iframe1.html,怎么在demo1.html页面中操作iframe1.html页面 答曰:demo1.html ...