开源消息代理组件mosquitto
# ll
total 556
-rw-r----- 1 sk sk 148417 Mar 6 14:59 libuv-1.44.2-1.el7.x86_64.rpm
-rw-r----- 1 sk sk 120717 Mar 6 14:59 libwebsockets-3.0.1-2.el7.x86_64.rpm
-rw-r----- 1 sk sk 293429 Mar 6 14:59 mosquitto-1.6.10-1.el7.x86_64.rpm
将用到的依赖上传到主机上,分别安装lib*类依赖
1.安装libuv-1.44.2-1.el7.x86_64.rpm
# sudo yum install libuv-1.44.2-1.el7.x86_64.rpm -y
Loaded plugins: fastestmirror
Examining libuv-1.44.2-1.el7.x86_64.rpm: 1:libuv-1.44.2-1.el7.x86_64
Marking libuv-1.44.2-1.el7.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package libuv.x86_64 1:1.44.2-1.el7 will be installed
--> Finished Dependency ResolutionDependencies Resolved==================================================================================================================================================Package Arch Version Repository Size
==================================================================================================================================================
Installing:libuv x86_64 1:1.44.2-1.el7 /libuv-1.44.2-1.el7.x86_64 393 kTransaction Summary
==================================================================================================================================================
Install 1 PackageTotal size: 393 k
Installed size: 393 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionInstalling : 1:libuv-1.44.2-1.el7.x86_64 1/1 Verifying : 1:libuv-1.44.2-1.el7.x86_64 1/1 Installed:libuv.x86_64 1:1.44.2-1.el7 Complete!
2.安装libwebsockets-3.0.1-2.el7.x86_64.rpm
# sudo yum install libwebsockets-3.0.1-2.el7.x86_64.rpm -y
Loaded plugins: fastestmirror
Examining libwebsockets-3.0.1-2.el7.x86_64.rpm: libwebsockets-3.0.1-2.el7.x86_64
Marking libwebsockets-3.0.1-2.el7.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package libwebsockets.x86_64 0:3.0.1-2.el7 will be installed
--> Finished Dependency ResolutionDependencies Resolved==================================================================================================================================================Package Arch Version Repository Size
==================================================================================================================================================
Installing:libwebsockets x86_64 3.0.1-2.el7 /libwebsockets-3.0.1-2.el7.x86_64 269 kTransaction Summary
==================================================================================================================================================
Install 1 PackageTotal size: 269 k
Installed size: 269 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionInstalling : libwebsockets-3.0.1-2.el7.x86_64 1/1 Verifying : libwebsockets-3.0.1-2.el7.x86_64 1/1 Installed:libwebsockets.x86_64 0:3.0.1-2.el7 Complete!
3.最后安装mqtt
# sudo yum install -y mosquitto-1.6.10-1.el7.x86_64.rpm
Loaded plugins: fastestmirror
Examining mosquitto-1.6.10-1.el7.x86_64.rpm: mosquitto-1.6.10-1.el7.x86_64
Marking mosquitto-1.6.10-1.el7.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package mosquitto.x86_64 0:1.6.10-1.el7 will be installed
--> Finished Dependency ResolutionDependencies Resolved==================================================================================================================================================Package Arch Version Repository Size
==================================================================================================================================================
Installing:mosquitto x86_64 1.6.10-1.el7 /mosquitto-1.6.10-1.el7.x86_64 748 kTransaction Summary
==================================================================================================================================================
Install 1 PackageTotal size: 748 k
Installed size: 748 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionInstalling : mosquitto-1.6.10-1.el7.x86_64 1/1 Verifying : mosquitto-1.6.10-1.el7.x86_64 1/1 Installed:mosquitto.x86_64 0:1.6.10-1.el7 Complete!
mosquitto的启动检查命令
service mosquitto start
service mosquitto stop
service mosquitto restart
service mosquitto status
检查运行状态
# service mosquitto status
Redirecting to /bin/systemctl status mosquitto.service
● mosquitto.service - Mosquitto MQTT v3.1/v3.1.1 BrokerLoaded: loaded (/usr/lib/systemd/system/mosquitto.service; disabled; vendor preset: disabled)Active: inactive (dead)Docs: man:mosquitto.conf(5)man:mosquitto(8)# service mosquitto start
Redirecting to /bin/systemctl start mosquitto.service
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to manage system services or units.
Authenticating as: root
Password: # sudo service mosquitto start
Redirecting to /bin/systemctl start mosquitto.service# sudo service mosquitto status
Redirecting to /bin/systemctl status mosquitto.service
● mosquitto.service - Mosquitto MQTT v3.1/v3.1.1 BrokerLoaded: loaded (/usr/lib/systemd/system/mosquitto.service; disabled; vendor preset: disabled)Active: active (running) since Mon 2023-03-06 16:59:16 CST; 5s agoDocs: man:mosquitto.conf(5)man:mosquitto(8)Main PID: 32450 (mosquitto)Tasks: 1Memory: 856.0KCGroup: /system.slice/mosquitto.service└─32450 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.confMar 06 16:59:16 hostname systemd[1]: Starting Mosquitto MQTT v3.1/v3.1.1 Broker...
Mar 06 16:59:16 hostname mosquitto[32450]: 1678093156: mosquitto version 1.6.10 starting
Mar 06 16:59:16 hostname mosquitto[32450]: 1678093156: Config loaded from /etc/mosquitto/mosquitto.conf.
Mar 06 16:59:16 hostname mosquitto[32450]: 1678093156: Opening ipv4 listen socket on port 1883.
Mar 06 16:59:16 hostname mosquitto[32450]: 1678093156: Opening ipv6 listen socket on port 1883.
Mar 06 16:59:16 hostname systemd[1]: Started Mosquitto MQTT v3.1/v3.1.1 Broker.
验证是否可用
打开两个终端,模拟发送端与接收端,其中,-t 指定主题 -m 指定内容
a.接收端
# mosquitto_sub -h 10.19.49.27 -t "mostt" -v
b.发送端
# mosquitto_pub -h 10.15.49.27 -t "mostt" -m "hello word"
# mosquitto_pub -h 10.15.49.27 -t "mostt" -m "hello word"
# mosquitto_pub -h 10.15.49.27 -t "mostt" -m "hello word3"
# mosquitto_pub -h 10.15.49.27 -t "mostt" -m "hello word3"
# mosquitto_pub -h 10.15.49.27 -t "mostt" -m "hello word4"# mosquitto_pub -h 10.15.49.27 -t "01topic" -m "mosquitto test01"
# mosquitto_pub -h 10.15.49.27 -t "01topic" -m "mosquitto test02"
# mosquitto_pub -h 10.15.49.27 -t "01topic" -m "mosquitto test03"
此时,再查看接收端,哪个主题下的哪些内容
# mosquitto_sub -h 10.15.49.27 -t "mostt" -v mostt hello word
mostt hello word
mostt hello word3
mostt hello word3
mostt hello word4# mosquitto_sub -h 10.15.49.27 -t "01topic" -v
01topic mosquitto test01
01topic mosquitto test02
01topic mosquitto test03
跟kafka类似,访问安全性中都可以设置访问时的用户名密码
添加如下文件内容
# sudo less /etc/mosquitto/mosquitto.conf | grep -v "#" |grep -v "^$"
pid_file /var/run/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
allow_anonymous false
password_file /etc/mosquitto/pwdfile
acl_file /etc/mosquitto/acl
参数含义
# 进程号文件
pid_file /var/run/mosquitto.pid# 是否持久化
persistence true
persistence_location /var/lib/mosquitto/# 关闭匿名访问
allow_anonymous false# 密码和访问控制
password_file /etc/mosquitto/pwdfile
acl_file /etc/mosquitto/acl
设置Mosquitto的交互账号
# sudo mosquitto_passwd -c /etc/mosquitto/pwdfile testuser1
Password:
Reenter password: # sudo mosquitto_passwd /etc/mosquitto/pwdfile testuser2
Password:
Reenter password:
第一个账号需要加-c参数,因为密码文件没有生成,后面的账号不需要再加c参数,否则是重新生成密码文件并写入账号。
配置账号与发布订阅之间的关系:
vim /etc/mosquitto/acl
# cat /etc/mosquitto/acl
user testuser1
topic write usertopic
user testuser2
topic read usertopic
设置testuser1账号只能在主题usertopic上进行发布
设置testuser2账号只能在主题usertopic上进行订阅
重启服务
# sudo service mosquitto status
Redirecting to /bin/systemctl status mosquitto.service
● mosquitto.service - Mosquitto MQTT v3.1/v3.1.1 BrokerLoaded: loaded (/usr/lib/systemd/system/mosquitto.service; disabled; vendor preset: disabled)Active: active (running) since Mon 2023-03-06 16:59:16 CST; 46min agoDocs: man:mosquitto.conf(5)man:mosquitto(8)Main PID: 32450 (mosquitto)Tasks: 1Memory: 872.0KCGroup: /system.slice/mosquitto.service└─32450 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.confMar 06 17:17:46 hostname mosquitto[32450]: 1678094266: New connection from 10.15.49.27 on port 1883.
Mar 06 17:17:46 hostname mosquitto[32450]: 1678094266: New client connected from 10.15.49.27 as mosq-D0pkHhYybXF0xuGhDW (p2, c1, k60).
Mar 06 17:17:46 hostname mosquitto[32450]: 1678094266: Client mosq-D0pkHhYybXF0xuGhDW disconnected.
Mar 06 17:17:49 hostname mosquitto[32450]: 1678094269: New connection from 10.15.49.27 on port 1883.
Mar 06 17:17:49 hostname mosquitto[32450]: 1678094269: New client connected from 10.15.49.27 as mosq-IujfILsMdH7PyItQVe (p2, c1, k60).
Mar 06 17:17:49 hostname mosquitto[32450]: 1678094269: Client mosq-IujfILsMdH7PyItQVe disconnected.
Mar 06 17:17:51 hostname mosquitto[32450]: 1678094271: New connection from 10.15.49.27 on port 1883.
Mar 06 17:17:51 hostname mosquitto[32450]: 1678094271: New client connected from 10.15.49.27 as mosq-J1wdgGJ57LPjucsxIh (p2, c1, k60).
Mar 06 17:17:51 hostname mosquitto[32450]: 1678094271: Client mosq-J1wdgGJ57LPjucsxIh disconnected.
Mar 06 17:34:31 hostname mosquitto[32450]: 1678095271: Client mosq-daklhgLG1gK0voclKu disconnected.
[sk@hostname ~]$
[sk@hostname ~]$ sudo service mosquitto restart
Redirecting to /bin/systemctl restart mosquitto.service
[sk@hostname ~]$
[sk@hostname ~]$ sudo service mosquitto status
Redirecting to /bin/systemctl status mosquitto.service
● mosquitto.service - Mosquitto MQTT v3.1/v3.1.1 BrokerLoaded: loaded (/usr/lib/systemd/system/mosquitto.service; disabled; vendor preset: disabled)Active: active (running) since Mon 2023-03-06 17:45:39 CST; 4s agoDocs: man:mosquitto.conf(5)man:mosquitto(8)Main PID: 10859 (mosquitto)Tasks: 1Memory: 856.0KCGroup: /system.slice/mosquitto.service└─10859 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.confMar 06 17:45:39 hostname systemd[1]: Starting Mosquitto MQTT v3.1/v3.1.1 Broker...
Mar 06 17:45:39 hostname mosquitto[10859]: 1678095939: mosquitto version 1.6.10 starting
Mar 06 17:45:39 hostname mosquitto[10859]: 1678095939: Config loaded from /etc/mosquitto/mosquitto.conf.
Mar 06 17:45:39 hostname mosquitto[10859]: 1678095939: Opening ipv4 listen socket on port 1883.
Mar 06 17:45:39 hostname mosquitto[10859]: 1678095939: Opening ipv6 listen socket on port 1883.
Mar 06 17:45:39 hostname systemd[1]: Started Mosquitto MQTT v3.1/v3.1.1 Broker.
订阅和发布主题都需要提供正确的账号和指定的主题,如果主题不是acl中指定的,则无法收到消息。需要给用户授权。
# sudo mosquitto_pub -h 10.15.49.27 -t "usertopic" -u testuser1 -P 123456 -m "secreat"
# sudo mosquitto_pub -h 10.15.49.27 -t "usertopic" -u testuser1 -P 123456 -m "secreat2323"
# sudo mosquitto_sub -h 10.15.49.27 -t "usertopic" -v -u testuser2 -P 123456
usertopic secreat
usertopic secreat2323
相关文章:
开源消息代理组件mosquitto
# ll total 556 -rw-r----- 1 sk sk 148417 Mar 6 14:59 libuv-1.44.2-1.el7.x86_64.rpm -rw-r----- 1 sk sk 120717 Mar 6 14:59 libwebsockets-3.0.1-2.el7.x86_64.rpm -rw-r----- 1 sk sk 293429 Mar 6 14:59 mosquitto-1.6.10-1.el7.x86_64.rpm 将用到的依赖上传到主机…...
vuex的五个属性及使用方法示例
一,Vuex简介 Vuex是Vue.js的状态管理库,它通过中心化的状态管理使得组件间的数据共享更加容易。 Vuex包含五个核心属性:state、getters、mutations、actions和modules。 Vuex是Vue.js的状态管理库,它提供了一种集中式存储管理应…...
9.SpringSecurity核心过滤器-SecurityContextPersistenceFilter
SpringSecurity核心过滤器-SecurityContextPersistenceFilter 一、SpringSecurity中的核心组件 在SpringSecurity中的jar分为4个,作用分别为 jar作用spring-security-coreSpringSecurity的核心jar包,认证和授权的核心代码都在这里面spring-security-co…...
23种设计模式-桥接模式
概念 桥接模式是一种结构型设计模式,它通过将抽象与其实现分离来解耦。它使用接口(抽象类)作为桥梁,将一个抽象类与其实现类的代码分别独立开来,从而使它们可以各自独立地变化。桥接模式的核心思想是“组合优于继承”…...
TCP PMTU 静态路由
HTTP协议 --- 超文本传输协议TCP --- 80端口超文本 --- 包含有超链接link和多媒体元素标记的文本TCP协议是一种面向连接的可靠性传输协议面向连接:数据在传输前,收发双方建立一条逻辑通道。可靠性确认机制:传输确认,每接受一个数据…...
Android动画——属性动画
在属性动画中,常用到的API有ValueAnimator,ObjectAnimator。ValueAnimator:时间引擎,负责计算各个帧的属性值,基本上其他属性动画都会直接或间接继承它;ObjectAnimator: ValueAnimator 的子类&a…...
华为OD机试真题Python实现【寻找连续区间】真题+解题思路+代码(20222023)
寻找连续区间 题目 给定一个含有N个正整数的数组, 求出有多少个连续区间(包括单个正整数), 它们的和大于等于x。 🔥🔥🔥🔥🔥👉👉👉👉👉👉 华为OD机试(Python)真题目录汇总 ## 输入 第一行两个整数N x (0 < N <= 100000 ,0 <= x <=…...
15. 三数之和
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 …...
40-Golang中的文件
Golang中的文件基本介绍文件的打开和关闭读文件操作应用实例写文件操作实例判断文件是否存在基本介绍 文件在程序中是以流的形式存在的 流:数据在数据源(文件)和程序(内存)之间经历的路程 输入流:数据从数据源到程序之间的路径 输出流:数据…...
Springboot整合RabbitMQ并使用
1、Springboot整合RabbitMQ 1、引入场景启动器 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency>引入AMQP场景启动器之后,RabbitAutoConfiguratio…...
Java中方法引用(引用静态方法、引用成员方法(引用其他类的成员方法、引用本类的成员方法、引用父类的成员方法)、引用构造方法、其他调用方式、小练习)
方法引用:把已经存在的方法拿过来用,当作函数式接口中抽象方法的方法体 我们前面学到Arrays工具类中的sort方法,当我们需要指定排序规则时,需要传递Comparator接口的实现类对象,我们之前使用匿名内部类类的形式作为参…...
整理了100道关于Python基础知识的练习题,记得收藏~
实例1.数字组合 题目: 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析: 遍历全部可能,把有重复的剃掉。 total0 for i in range(1,5):for j in range(…...
OSG三维渲染引擎编程学习之七十七:“第七章:OSG场景图形交互” 之 “7.8 场景交互”
目录 第七章 OSG场景图形交互 7.8 场景交互 7.8.1 osgGA库 7.8.2 事件消息处理 7.8.3 程序抓图示例...
797.差分
输入一个长度为 n的整数序列。 接下来输入 m个操作,每个操作包含三个整数 l,r,c,表示将序列中 [l,r] 之间的每个数加上 c。 请你输出进行完所有操作后的序列。 输入格式 第一行包含两个整数 n和 m。 第二行包含 n个整数,表示整数序列。 …...
为什么说要慎用BeanUtils,因为性能真的拉跨
1 背景之前在专栏中讲过“不推荐使用属性拷贝工具”,推荐直接定义转换类和方法使用 IDEA 插件自动填充 get / set 函数。不推荐的主要理由是:有些属性拷贝工具性能有点差有些属性拷贝工具有“BUG”使用属性拷贝工具容易存在一些隐患(后面例子…...
【项目设计】高并发内存池(六)[细节优化+测试]
🎇C学习历程:入门 博客主页:一起去看日落吗持续分享博主的C学习历程博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话: 也许你现在做的事情,暂时看不到成果,但不要忘记&…...
同模块设置不同应用主题方案
有时候公司内部会有不同应用但是有部分模块功能一样,只根据应用角色有些细节逻辑区分的场景。这时候往往采用模块化采用以应用至不同的APP。如果APP主题不一致,该如果解决。 方案: 在不同应用的config.gradle 下面根据不同应用定义不同的a…...
centos7 安装 hyperf
PHP > 7.4 Swoole PHP 扩展 > 4.5,并关闭了 Short Name OpenSSL PHP 扩展 JSON PHP 扩展 PDO PHP 扩展 Redis PHP 扩展 Protobuf PHP 扩展 composer create-project hyperf/hyperf-skeleton 推荐安装项 全部选n php.ini [swoole] extens…...
RZ/G2UL核心板-40℃低温启动测试
1. 测试对象HD-G2UL-EVM基于HD-G2UL-CORE工业级核心板设计,一路千兆网口、一路CAN-bus、 3路TTL UART、LCD、WiFi、CSI 摄像头接口等,接口丰富,适用于工业现场应用需求,亦方便用户评估核心板及CPU的性能。HD-G2UL-CORE系列工业级核…...
PyQt5可视化 7 饼图和柱状图实操案例 ①Qt项目的创建
目录 一、新建Qt项目 二、添加组件和布局 三、添加资源 1. 新建资源文件 2. 添加图标资源 四、frameHead 1. toolBtnGenData 2. toolBtnCounting 3. comboTheme 4. comboAnimation 5. Horizontal Spacer 6. toolBtnQuit 7. 设置toolBtnQuit的功能 8. frameHead的…...
eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...
