# emq **Repository Path**: idea_dsd/emq ## Basic Information - **Project Name**: emq - **Description**: EMQ X 消息服务器简介 - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-07-24 - **Last Updated**: 2022-01-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EMQ X 消息服务器简介 EMQ X (Erlang/Enterprise/Elastic MQTT Broker) 是基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器。 Erlang/OTP 是出色的软实时 (Soft-Realtime)、低延时 (Low-Latency)、分布式 (Distributed) 的语言平台。 MQTT 是轻量的 (Lightweight)、发布订阅模式 (PubSub) 的物联网消息协议。 **EMQ X 面向海量的 移动 / 物联网 / 车载 等终端接入,并实现在海量物理网设备间快速低延时的消息路由:** + 稳定承载大规模的 MQTT 客户端连接,单服务器节点支持百万连接。 + 分布式节点集群,快速低延时的消息路由,单集群支持千万规模的路由。 + 消息服务器内扩展,支持定制多种认证方式、高效存储消息到后端数据库。 + 完整物联网协议支持,MQTT、MQTT-SN、CoAP、LwM2M、私有 TCP/UDP 协议支持 ## 一 认识mqtt协议 [MQTT协议](./src/MQTT.md) ## 二 emq相关 [1.emq入门](./src/emq.md) [2.emq认证](./src/认证.md) [3.发布订阅ACL](./src/发布订阅ACL.md) [4.规则引擎](./src/规则引擎.md) [5.分布式集群](./src/分布式集群.md) [6.使用nginx为emq集群配置负载均衡](./src/nginx为集群负载均衡.md) # smartOs相关知识点 ## 一.入门 SmartOS支持操作系统虚拟化,虚拟出SmartMachine。和KVM类似,一个SmartMachine看上去就是一个完整的机器, 有自己的硬件(存储、网络和处理器)和操作系统以及库文件等。和KVM不同的是,没有格外的虚拟化层。这意味着不同的SmartMachine在同一硬件上共用操作系统(SmartOS) ## 1.为什么要推荐使用SmartMachine或SmartOS,而不是Linux呢? **主要有以下几个原因:** ### 1)性能 文件系统,SmartOS使用了ZFS,每个SmartMachine运行自己的ZFS数据集,每个Linux/Windows虚拟机有自己的ZFS卷。 ZFS使用了Adjustable Replacement Cache (ARC)算法,在缓存文件系统数据或元数据方面做得非常好 ### 2) 可观测性(Observability) SmartOS提供了一个工具叫做DTrace DTrace机制可以用于: 调试排错 —— 比如,使用DTrace跟踪函数的入口和返回,输出相应的参数和返回值。还可以用它研究某个函数是如何被调用的(stacktrace),对于某个给定事件,代码运行路径是怎样的等等。 性能分析 —— DTrace允许你拿到纳秒级的信息。你可以用它去采样来看CPU是如何耗时的,也可以用来研究为什么应用程序会被阻止继续执行,会持续多久等。 代码覆盖 —— DTrace可以判断程序是否有被执行,这在测试中很重要。 ### 3) 可靠性 SmartOS间接地来自于Solaris,而后者一直以来在可靠和安全方面都广受好评。此外,ZFS校验和可保证数据不受损坏,使用写时复制(copy-on-write)机制确保活跃数据不会被被覆盖。 ZFS文件系统有良好的一致性,自从2006年就被用于生产环境,易于管理。最近还被用于大数据方面 ## 二.smartOS概述 [1.虚拟化](./smartOS/src/虚拟化.md) [2.Zone的概念](./smartOS/src/zones.md) [3.smartOS安装](./smartOS/src/smartOS安装.md) ## 三.常用操作 [1.如何创建HVM区](./smartOS/src/operation/KVM.md) [2.如何创建快照](./smartOS/src/operation/创建快照.md)