开源消息代理组件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的…...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
STM32---外部32.768K晶振(LSE)无法起振问题
晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…...
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...
边缘计算网关提升水产养殖尾水处理的远程运维效率
一、项目背景 随着水产养殖行业的快速发展,养殖尾水的处理成为了一个亟待解决的环保问题。传统的尾水处理方式不仅效率低下,而且难以实现精准监控和管理。为了提升尾水处理的效果和效率,同时降低人力成本,某大型水产养殖企业决定…...
