zoukankan      html  css  js  c++  java
  • 搭建mqtt服务器apollo

    使用的apollo,官网太慢,附上百度云下载地址:

    链接:https://pan.baidu.com/s/1NIq6R71hlyPuaUBwPoMPNg
    提取码:36vw

    原文链接:https://blog.csdn.net/yangsong4353/article/details/87967561

    需要注意的是想要在宿主机上访问,需要修改

    Apollo监控页面配置

      vi /opt/apollo/mybroker/etc/apollo.xml

      修改 
      http://127.0.0.1:61680“/> 
      https://127.0.0.1:61681“/> 
      为 
      http://0.0.0.0:61680“/> 
      https://0.0.0.0:61681“/>

    MQTT服务器尝试过两种,一种是 Mosquitto、另一种是 Apollo,本次记录Apollo 在CentOS 7.6 linux 下的安装和测试。

        Apollo下载地址: http://activemq.apache.org/apollo/versions/1.7/website/download.html

    下载后的文件放置在Downloads文件夹下,对此压缩包进行解压。

    有可能需要进入root权限,输入su,之后输入密码,进入root权限。

    解压: tar -zxvf apache-apollo-1.7.1-unix-distro.tar.gz

    由于搭建 Apollo 环境变量需要有 JAVA_HOME,这个时候需要确认下系统中是否已经安装有jdk。

    确认办法为输入命令: java -version,如有回复类似如下,则说明环境中已经有了jdk。

    此版本的linux 系统中默认就有此,无需另外安装。如果没有,在参考其他文章安装jdk。

    进入apache-apollo-1.7.1/bin目录,输入命令  cd /Downloads/apache-apollo-1.7.1/bin目录

    创建一个Broker示例:./apollo create broker1。注意最前面有个“.”,创建成功后,会有如下提示:
    Creating apollo instance at: mybroker
    Generating ssl keystore...
    You can now start the broker by executing:  
    "xxx/apache-apollo-1.7.1/bin/broker1/bin/apollo-broker" run
    Or you can setup the broker as system service and run it in the background:
    sudo ln -s "xxx/apache-apollo-1.7.1/bin/broker1/bin/apollo-broker-service start"

    提示内容是告知如何启动broker。

    创建完成后,会在/Downloads/apache-apollo-1.7.1/bin目录下,创建了一个broker1的文件夹。

    进入到此目录后,会看到有如下文件夹:

    进入到bin目录下,输入命令 ./apollo-broker run,启动broker。

    出现这个界面即表示启动成功。

    之后查看打印信息即可知道MQTT要连接的端口和管理页面端口。

    然后打开Ubuntu浏览器,输入 http://127.0.0.1:61680/ 或 https://127.0.0.1:61681/, 即可进入 Apollo Console 窗口。

    用户名和密码在 etc/users.properties文件中。默认用户名和密码为 admin 和 password。

    配置
    配置文件在 broker1/etc 文件中。具体说明可以参考 http://activemq.apache.org/apollo/versions/1.7/website/index.html 中的User Manual 章节。

    简要介绍如下:

    apollo.xml

    此文件中设置了IP地址和端口号,设置访问用户组和访问权限。默认情况下,需要用户名和密码登陆网页,同时,MQTT设备连接服务器,也需要用户名和密码,默认情况下和登陆网页的相同。

    如果需求其他用户名和密码,则需要在users.properties中增加用户名和密码,在groups.properties中增加users组,并在组中增加在users.properties中增加的成员。之后就可以使用新增加的用户名和密码进行登录。示例如下

    如果想不需要用户名和密码登录,则按照如下方式修改即可。 

    <authentication enabled="false"/> 
     <!--<access_rule allow="users" action="connect create destroy send receive consume"/> -->

    对外连接的端口号也可以在这个文件中进行修改。

    black-list.txt

    黑名单,可以将不需要的IP地址写入到这个文件中

    log4j.properties

    输出log配置,输出的log文件在log文件夹中

    测试
    配置完成后,可以对搭建好的服务器进行测试。

    先在局域网进行测试。 在linux终端中输入 ifconfig 命令,查看本地ip地址。记录。

    测试工具使用paho。下载地址
    https://pan.baidu.com/s/1veYDXA3Pgu1liOAkATsfuQ 密码:8ljd  或  https://repo.eclipse.org/content/repositories/paho-releases/org/eclipse/paho/org.eclipse.paho.ui.app/
    根据链接下载,打开paho for eclipse 文件夹中的 64位/paho.exe。如图:

    打开软件

    在服务器地址的位置,输入刚刚查到的地址,“:”后为端口号,根据启动apollo时提示的的端口号进行输入。默认的端口号是61613,我这里因为修改了配置文件,所以是1883。

    之后点击 连接,如果能够连接上,说明成功了。

    修改防火墙
    实测,不成功,卡死在连接的那个状态了。

    莫急莫急。通过查找发现,是因为linux防火墙开启,导致端口不能访问的原因。

    查看默认防火墙状态使用命令: firewall-cmd --state (关闭后显示notrunning,开启后显示running)

    1

    2

    [root@localhost ~]#firewall-cmd --state

    not running

    如果出现的是 running,那么就是这个原因导致不能连接服务器了。关闭防火墙可以参考文章 https://www.cnblogs.com/zhangzhibin/p/6231870.html 或 https://www.jianshu.com/p/dd663cb4affa

    我使用的是下面的两个命令关闭防火墙。关闭之后,就可以正常使用啦。

    systemctl stop firewalld.service    #停止firewall
    systemctl disable firewalld.service   #禁止firewall开机启动

    稳妥一点的话,可以开启防火墙特定的端口,以免整个服务器收到攻击。这个设置如下。

    启动防火墙服务:systemctl start firewalld.service

    在开机时启用服务:systemctl enable firewalld.service

    查看已经开放的端口: firewall-cmd --list-ports 。 如果有开放的会列举出来,如果没有则只显示一个空白行。

    开启端口: firewall-cmd --zone=public --add-port=1883/tcp --permanent

             命令含义:

             –zone  #作用域

             –add-port=1883/tcp  #添加端口,格式为:端口/通讯协议

             –permanent   #永久生效,没有此参数重启后失效

    重启防火墙:  firewall-cmd --reload。

    至此,就可以安心的使用服务器啦。

    补充说明防火墙命令:

    查看防火墙状态: firewall-cmd --state

    启动一个服务:systemctl start firewalld.service

    关闭一个服务:systemctl stop firewalld.service

    重启一个服务:systemctl restart firewalld.service

    显示一个服务的状态:systemctl status firewalld.service

    在开机时启用一个服务:systemctl enable firewalld.service

    在开机时禁用一个服务:systemctl disable firewalld.service

    查看服务是否开机启动:systemctl is-enabled firewalld.service;echo $?

    查看已启动的服务列表:systemctl list-unit-files|grep enabled

    查看已经开放的端口: firewall-cmd --list-ports

    开启防火墙端口: firewall-cmd --zone=public --add-port=80/tcp --permanent

    关闭防火墙端口: firewall-cmd --remove-port=3000/tcp --permanent

    重启防火墙:  firewall-cmd --reload


  • 相关阅读:
    Autofac 依赖注入
    C#高级语法
    @helper
    Spiral Matrix -- LeetCode
    Best Time to Buy and Sell Stock with Cooldown -- LeetCode
    Kth Smallest Element in a Sorted Matrix -- LeetCode
    Number of Connected Components in an Undirected Graph -- LeetCode
    Super Ugly Number -- LeetCode
    Ugly Number II -- LeetCode
    Missing Ranges -- LeetCode
  • 原文地址:https://www.cnblogs.com/a1304908180/p/11409136.html
Copyright © 2011-2022 走看看