搭建apollo_Mac OS 下搭建MQTT

本文介绍了在Mac OS环境下如何搭建MQTT服务器,包括安装JDK、下载Apollo、配置服务及启动。同时,文章提供了MQTT服务器端与单客户端连接的测试步骤,帮助读者完成MQTT的完整搭建过程。
摘要由CSDN通过智能技术生成

一、关于MQTT

1. MQTT 简介

MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议,为此,它需要一个消息中间件。

IBM公司的安迪·斯坦福-克拉克及Cirrus Link公司的阿兰·尼普于1999年撰写了该协议的第一个版本。

该协议的可用性取决于该协议的使用环境。IBM公司在2013年就向结构化资讯标准促进组织提交了 MQTT 3.1 版规范,并附有相关章程,以确保只能对规范进行少量更改。MQTT-SN是针对非 TCP/IP 网络上的嵌入式设备主要协议的变种,与此类似的还有ZigBee协议。

纵观行业的发展历程,“MQTT”中的“MQ” 是来自于IBM的MQ系列消息队列产品线。然而通常队列本身不需要作为标准功能来支持。

可选协议包含了高级消息队列协议,面向文本的消息传递协议,互联网工程任务组约束应用协议,可扩展消息与存在协议,数据分发服务,OPC UA以及web 应用程序消息传递协议。

2. MQTT 特性

MQTT协议工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:

  (1)使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。

  (2)对负载内容屏蔽的消息传输。

  (3)使用TCP/IP提供网络连接。

  (4)有三种消息发布服务质量:

  “至多一次”,消息发布完全依赖底层TCP/IP网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次记录无所谓,因为不久后还会有第二次发送。

  “至少一次”,确保消息到达,但消息重复可能会发生。

“只有一次”,确保消息到达一次。在一些要求比较严格的计费系统中,可以使用此级别。在计费系统中,消息重复或丢失会导致不正确的结果。

(5)小型传输,开销很小(固定长度的头部是2字节),协议交换最小化,以降低网络流量。

3. MQTT 实现

实现MQTT协议需要客户端和服务器端通讯完成,在通讯过程中,MQTT协议中有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。

MQTT传输的消息分为:主题(Topic)和负载(payload)两部分:

  (1)Topic,可以理解为消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息内容(payload);

  (2)payload,可以理解为消息的内容,是指订阅者具体要使用的内容。


二、MQTT搭建

你可以通过各种途径对MQTT进行更细致的了解,这篇文章主要是介绍一下如何搭建MQTT。所以还等什么,让我们开始吧!

(1)安装JDK(如果已经安装过的朋友们可以忽略此步骤)

步骤1: -----下载:Java SE Development Kit 8 Downloads

下载地址:(如果失效了,大家自行百度~)

Java SE Development Kit 8​www.oracle.com

4da1ea20e8b4d4a0803608e3c643f07c.png

步骤2: ----- 安装完成JDK后,查看JAVAHOME的路径

cd /Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home

b5b92df5fe1d8d5bb891f8c50cf25752.png

步骤3: -----配置环境变量

如果是第一次配置环境变量,可以使用“vim .bash_profile” 创建一个.bash_profile的隐藏配置文件(如果已存在配置文件,则直接添加配置信息即可)

vim ~/.bash_profile

添加以下配置信息添加到.bash_profile 文件中(这里注意 jdk1.8.0_171.jdk这个需要替换成你自己版本)

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home
PATH=$JAVA_HOME/bin:$PATH:.
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
export JAVA_HOME
export PATH
export CLASSPATH

f728c50136228715d3e0e5a3b5b857df.png

步骤4: -----使配置生效

source .bash_profile 

步骤5: -----查看是否生效

java –version

如果成功会返回这个哦~

6ae264a3ef9e2ca7fb8bd10a6a4c0144.png

(2)下载Apollo

下载地址:(如果失效了,大家自行百度~)

Download​activemq.apache.org
de7fb5f1d969a06ec7fb58bc87befd0e.png

1084a7c97dbb2efcdf1616103ceba895.png

(3)安装

步骤1:将压缩包解压到~/Library/目录下

步骤2: -----定位到本地文件夹bin目录

cd  ~/ Library/apache-apollo-1.7.1/bin 

8d825e0adcb75e75da5a45c06ac1cd8b.png

步骤3: -----创建本地的MqttBroker文件夹

./apollo create MqttBroker

23dfde12c0076d09a840536ca3edb233.png

步骤4: -----定位到MqttBroker文件夹

cd MqttBroker/bin

c8248bbdd9742c812d2e6bcab556123d.png

步骤5: -----启动服务

启动服务可以使用 apollo-broker runapollo-broker-service start

apollo-broker run

486de0dab6b20391377fb3ae2393c8ad.png

步骤6: -----查看服务进程

ps axu | grep apollo 

cdbb56ab072d4184886eddd61eef9e54.png

(4)登陆MQTT服务器,修改配置

步骤1: -----查看IP地址

ifconfig

05d5da495b9e59391d8cf859bdd0c78e.png

步骤2:

登录网页,并修改ip地址,以供局域网连接

在浏览器中http://127.0.0.1:61680/console/index.html#,初始用户名为admin,密码是password,打开之后,选择configration下

选择apollo.xml文件,修改<host_name>属性为服务器ip,web_admin同步修改,以及tcp节点下,将默认的tcp://0.0.0.0:61613修改为服务器的IP,以供局域网使用。点击保存,即可在局域网内使用服务器的IP登录

226e1c1587788a0c243d2a9623a42208.png

以更改过后的服务器IP登录后,可查看如下信息。此IP在局域网其他客户端均可登录

3fe713029b144305e793218bdea3d452.png

至此我们搭建任务已经顺利完成!

在终端中control+c 就可以结束服务进程~


下面进行一个连接的小测试

三、MQTT服务器端与单客户端连接测试

步骤1:

在浏览器中输入服务器地址,打开服务器

步骤2:

打开Mqtt.fx软件,配置连接信息,点击Connect连接服务器

19c295782eae8ab96163416512b3410f.png

步骤3:

查看服务器状态,看见一个当前的connect

056dd749bc808f2d7e1beabca6deeac1.png

关于MQTT搭建以及连接测试到此结束啦~ 各位完成了吗?

如果途中有问题,请各位不要放弃。这个搭建还是很简单的。

根据出现的问题自行百度等~ 或者私信我~

后续会更新Android实现 MQTT 客户端,敬请期待~(请大佬勿喷)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值