EMQ ---问题集】的更多相关文章

1)emqttd 使用 SSL遇到的问题:服务器直接布了一份emqttd ,然后什么都没管,端口默认的ws 8083,wss8084,mqtt 1883,mqtt(ssl) 8883. 结果跑起来之后点了点发现出了问题,前端的websocket根本连不上,Chrome报错 WebSocket connection to 'wss://10.0.0.111:8084/mqtt' failed: Error in connection establishment: net::ERR_INSECURE…
emqttd集群设置管理 一.先来看EMQ的文档定义:http://emqtt.com/docs/v1/cluster.html emqttd集群设置管理 假设部署两台服务器s1.emqtt.io, s2.emqtt.io上部署集群: 节点名 主机名(FQDN) IP地址 emqttd@s1.emqtt.io 或emqttd@192.168.0.10 s1.emqtt.io 192.168.0.10 emqttd@s2.emqtt.io 或emqttd@192.168.0.20 s2.emqtt…
1 Emqtt简单搭建 1.1  介绍:EMQ:EMQ 2.0,号称百万级开源MQTT消息服务器,基于Erlang/OTP语言平台开发,支持大规模连接和分布式集群,发布订阅模式的开源MQTT消息服务器. EMQ 默认开启的 MQTT 服务 TCP 端口: 1883 MQTT 协议端口 8883 MQTT/SSL 端口 8083 MQTT/WebSocket 端口 8084 MQTT/WebSocket/SSL 端口 防火墙根据使用的 MQTT 接入方式,开启上述端口的访问权限. EMQ 节点集群…
一.EMQ集群搭建实现高可用和负载均衡 架构服务器规划 服务器IP 部署业务 作用 192.168.81.13 EMQTTD EMQ集群 192.168.81.22 EMQTTD EMQ集群 192.168.81.23 EMQTTD EMQ集群 192.168.81.12(VIP:192.168.81.101) haproxy.keepalived HA和LB 192.168.81.21(VIP:192.168.81.101) haproxy.keepalived HA和LB 二.架构图 三.E…
本地订阅(Local Subscription) 本地订阅(Local Subscription)只在本节点创建订阅与路由表,不会在集群节点间广播全局路由,非常适合物联网数据采集应用. 使用方式: 订阅者在主题(Topic)前增加'$local/'前缀. 共享订阅(Shared Subscription) 共享订阅(Shared Subscription)支持在多订阅者间采用分组负载平衡方式派发消息: 使用方式: 订阅者在主题(Topic)前增加'$queue'或'$share//'前缀. 一.…
前言寒假的时候开始搭建mqtt服务器,一开始使用的是RabbitMQ,基于Erlang语言.但是RabbitMQ的本职工作是AMQP,MQTT只是他的一个插件功能,似乎有些大材小用,很多MQTT的功能也没有集成.这次我打算使用EMQ来重新部署我的MQTT服务器.EMQ也是基于 Erlang/OTP 语言平台开发.他是支持大规模连接和分布式集群,发布订阅模式的开源 MQTT 消息服务器.支持的输入协议不仅仅是MQTT,还包括WebSocket,以及物联网同样著名的与MQTT基于TCP传输协议不同的…
从原作者那边了解到,总体还可以,但是做不到99.99%稳定.主要是连接内存占用没有保护. pubsub均衡时很稳定,但是集群或大量消息向少量订阅发布时会崩溃,小概率情况. EMQ中CPU是公平分配给MQTT会话,大量pub消息到一个订阅,订阅不会拿到更多cpu,最终导致消息累积,内存溢出宕机. 崩溃可能发生在网络波动,大量消息向少量订阅发布,容量不够,集群脑裂,出现异常订阅发布等情况. 所以,客户端要做好连接back off,即连接退避,防止连接风暴.就是说服务器崩溃了,重启时,要防止海量客户端…
集群方式接受 Erlang/OTP 最初是爱立信为开发电信设备系统设计的编程语言平台,电信设备(路由器.接入网关.…)典型设计是通过背板连接主控板卡与多块业务板卡的分布式系统. Erlang/OTP 语言平台的分布式程序,由分布互联的 Erlang 运行系统组成,每个 Erlang 运行系统被称为节点(Node),节点(Node) 间通过 TCP 互联,消息传递的方式通信: EMQ 消息服务器集群基于 Erlang/OTP 分布式设计,集群原理可简述为下述两条规则: MQTT 客户端订阅主题时,…
[emqttd] (EMQ)是采用Erlang语言开发,全面支持MQTT V3.1.1协议,支持集群和大规模连接的开源MQTT消息服务器. [emqttd]致力于发布一个基于Erlang/OTP语言平台,企业级稳定可靠,完全开源免费,可集群支持大规模物联网.移动互联网连接的MQTT消息服务器. # 完整的MQTT V3.1/V3.1.1协议支持 * 全面支持MQTT V3.1/V3.1.1协议规范 * QoS0/1/2消息发布与订阅支持 * Session管理和离线消息支持 * Last Wil…
支持下国产开源. MQTT物联网传输控制协议:<MQTT-3.1.1-CN.pdf> 下载:emqttd-centos64-v2.0-rc.2-20161019.zip 安装: $ unzip emqttd-centos64-v2.0-rc.2-20161019.zip -d /data/ $ mv /data/emqttd /data/emqttd-centos64-v2.0-rc.2-20161019 $ ln -s /data/emqttd-centos64-v2.0-rc.2-2016…
issue 1. EMQX的共享订阅 EMQX是一个非常强大的物联网通信消息总线,基于EMQX开展应用开发,要注意很多配置细节问题,这里要说到的就是共享订阅以及和cleanSession之间的关系问题.共享订阅在EMQ的里程牌中出现的较早,V2的时候就已经提供了,只是那个时候只支持单节点的共享订阅,在V3的时候才支持集群的共享订阅. 共享订阅功能非常实用,解决了消费者应用程序的负载均衡问题,或者说高可用问题.否则,负载均衡或者高可用问题,需要借助于全局锁进行消息消费过程中的只消费一次的问题.这个…
这里,简单记录一下自己在最近项目中遇到的paho的心得,这里也涵盖EMQX的问题. 1. cleanSession 这个标识,是确保client和server之间是否持久化状态的一个标志,不管是client还是server重启还是连接断掉.下面是来自paho客户端源码的注释. Sets whether the client and server should remember state across restarts and reconnects. If set to false both t…
MQTT是基于TCP/IP协议栈构建的异步通信消息协议,是一种轻量级的发布/订阅信息传输协议.MQTT在时间和空间上,将消息发送者与接受者分离,可以在不可靠的网络环境中进行扩展.适用于设备硬件存储空间有限或网络带宽有限的场景.物联网平台支持设备使用MQTT协议接入. 官网:mqtt.org wiki各种语言版本开发库 https://github.com/mqtt/mqtt.github.io/wiki/libraries?spm=a2c4g.11186623.2.11.2d73174cN52z…
关闭防火墙(可选):systemctl stop firewalld.service 1.安装依赖库> sudo yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel 2.获取源码包> wget http://www.erlang.org/download/otp_src_R13B04.tar.gz 3.解压.编译.安装> tar xfvz otp_src_R13B04.tar.gz>…
目录 分布集群 emq@s1.emqtt.io 节点设置 emq@s2.emqtt.io 节点设置 节点加入集群 节点退出集群 节点发现与自动集群 manual 手动创建集群 基于 static 节点列表自动集群 基于 mcast 组播自动集群 基于 DNS A 记录自动集群 基于 etcd 自动集群 基于 Kubernetes 自动集群 集群脑裂与自动愈合 集群节点自动清除 跨节点会话(Session) 防火墙设置 一致性 Hash 与 DHT 负载均衡 HAProxy -> EMQ 集群 N…
作为基于现代密码学公钥算法的安全协议,TLS/SSL能在计算机通讯网络上保证传输安全,EMQ的MQTT broker支持TLS,也可以用这种方式来确保传输安全. 参考官网:https://www.emqx.io/cn/blog/emqx-server-ssl-tls-secure-connection-configuration-guide TLS/SSL带来的安全优势 强认证. 用TLS建立连接的时候,通讯双方可以互相检查对方的身份.在实践中,很常见的一种身份检查方式是检查对方持有的X.509…
项目全部代码地址:https://github.com/Tom-shushu/work-study.git (mqtt-emqt 项目) 先看我们最后实现的一个效果 1.手机端向主题 topic111 发送消息,并接收.(手机测试工具名称:MQTT调试器) 2.控制台打印 MQTT基本简介 MQTT 是用于物联网 (IoT) 的 OASIS 标准消息传递协议.它被设计为一种极其轻量级的发布/订阅消息传输,非常适合连接具有小代码足迹和最小网络带宽的远程设备. MQTT协议简介 MQTT 是客户端服…
背景: 这个问题的来源是,某用户将该ESXi主机直接夺取到另一个vCenterA的管辖中,而这个vCenterA中集群A开启了VSAN功能,导致再次反向夺取到vCenterB中的时候带有了来自于集群A的种种VSAN服务. 此时在vCenterB中可以看到这个回迁回来的主机一致都有标题中的警告信息: Figure 1 Host with the VSAN service enabled is not in the vCenter cluster Figure 2中文提示长这个样子 Figure 3…
集群发现机制 在Ignite中的集群号称是无中心的,而且支持命令行启动和嵌入应用启动,所以按理说很简单.而且集群有自动发现机制感觉对于懒人开发来说太好了,抱着试一试的心态测试一下吧. 在Apache Ignite中有三种自有的发现机制:组播.静态IP.组播+静态IP.下面就这几种来试一试吧. 测试方法简述 测试的方法主要是通过搭建2台tomcat服务器,使用nginx来代理这2台tomcat,tomcat服务器里有一个web应用,此应用内通过Apache Ignite webSession cl…
从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www.cnblogs.com/lyhabc/p/4682028.html第三篇http://www.cnblogs.com/lyhabc/p/4682986.html第四篇http://www.cnblogs.com/lyhabc/p/6136227.html 这一篇是从0开始搭建SQL Server…
SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnblogs.com/lyhabc/articles/3914213.html Microsoft SQL Server 2005技术内幕:T-SQL查询笔记http://www.cnblogs.com/lyhabc/articles/3912608.html Microsoft SQL Server 2…
Ubuntu 14.04中Elasticsearch集群配置 前言:本文可用于elasticsearch集群搭建参考.细分为elasticsearch.yml配置和系统配置 达到的目的:各台机器配置成功,可以达到如下效果: elasticsearch节点组成集群,对外来看俨如一台机器 elasticsearch节点的内存得到优化调整 一. elasticsearch.yml配置 network.host: "172.16.0.4" #这里可以是内网ip.机器名 bootstrap.ml…
本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,由标题就能看出此内容不是一篇分享文章能说完的,所以我打算分几篇分享文章来讲解,一步一步实现分布式架构:下面将先给出整个架构的核心节点简介,希望各位多多点赞: . 架构设计图展示 . nginx+iis构建服务集群 . redis存储分布式共享的session及共享session运作流程 . redis主从配置及Sentinel管理多个Redis集群 . 定时框架Task.MainForm提…
通过iSCSI方式连接到ESXi主机上的外挂存储意外失联了一段时间,导致部分虚拟主机在集群中呈现出孤立的状态,单独登陆到每台ESXi上可以看到这些虚拟主机都变成了unknow状态.因为有过上一次(VMware-存储断网之后无法添加vmx到清单)的经验,所有操作等待存储恢复与ESXi连接之后再进行操作,这样可以尽量避免虚拟主机意外“消失”. 前奏 最终,存储网络恢复正常,期间经历了大约1个小时,有绝大多数的Windows虚拟主机在存储网络恢复正常之后继续正常工作:有少部分的Linux虚拟主机内部E…
PowerCLI是VMware开发的基于微软(MSFT)的PowerShell的命令行管理vSphere的实现,因此在批量化操作方面CLI会减轻很多GUI环境下的繁琐重复劳作. 现有场景中有大量的物理主机已经安装好的ESXi,并且可以被vCenter所管理,由于默认情况下可供管理的那个Manage管理网卡是不开启vMotion的,因此我们需要借用这个Manage管理网卡来开启vMotion功能,从而实现集群内的HA功能. 说明:一般情况下,VMware建议,条件允许的情况下每个网卡的功能最好能独…
集群概念介绍(一)) 白宁超 2015年7月16日 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体系的总结,一则进行回顾复习,另则便于查询使用.本图文文档亦源于此.阅读Oracle RAC安装与使用教程前,笔者先对这篇文章整体构思和形成进行梳理.由于阅读者知识储备层次不同,我将从Oracle RAC安装前的准备与规划开始进行整体介绍安装部署Oracle RAC.始于唐博士指导,对数据库集…
Hadoop集群的配置(一) 摘要: hadoop集群配置系列文档,是笔者在实验室真机环境实验后整理而得.以便随后工作所需,做以知识整理,另则与博客园朋友分享实验成果,因为笔者在学习初期,也遇到不少问题.但是网上一些文档大多互相抄袭,里面错误百出.笔者结合自学书籍视频等资料,完成这一套配置资料.实验结果和过程经过反复测试无误后方整理出来的.配置过程中,初学者若有实验环境,可以在真机环境下完成,若无条件,可补习下虚拟机与Linux操作系统的基础知识,以及里面对linux常规命令使用,建议读者边配置…
1.Sentinel 哨兵 Sentinel(哨兵)是Redis 的高可用性解决方案:由一个或多个Sentinel 实例 组成的Sentinel 系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器. 例如: 在Server1 掉线后: 升级Server2 为新的主服务器: 2.Redis 主从分离 在讲解Sentinel 哨兵集群之前,我们先来搭建一个简单的主从分离(读写分离). 首先,我们…
本文演示:(一个主服务器,一个备份服务器,三个仲裁服务器) 官方推荐副本集的成员数量为奇数,最多12个副本集节点,最多7个节点参与选举. 本文演示基于本机,用端口区分服务(每个服务器下新建db文件夹用于存储数据,mongodb.conf文件配置启动参数) 各个服务器配置文件内容如下: 27000主服务器 dbpath=D:\MongoDB\Server27000\3.2\db port=27000 replSet=datamip/127.0.0.1:27001 //副本集下面有其他服务器2700…
概述 集群和分布式都是从集中式进化而来的.分布式和集群会相互合作的,同时的集群和分布式.在这里重点说说集群 集群是什么? 集群能提高单位时间内处理的任务数量,提升服务器性能 有多台服务器去处理任务,但是每个任务都是由一台服务器独立完成的 分布式是什么? 分布式能缩短单个任务处理的时间 跟集群一样,也有多台服务器去处理任务,但是每个任务由多台服务器合作完成,每台服务器负责完成大任务中的一个小任务 集中式是什么? 集中式就是最传统的那种,所有任务由一台大机完成 集群场景 可以在一台物理服务器上集群多…