首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

EMQ X 消息服务器简介

EMQ X 消息服务器简介 EMQ X (Erlang/Enterprise/Elastic MQTT Broker) 是基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器。...启动 EMQ X:启动 EMQ X 并查看启动状态。 Dashboard:通过 Dashboard 管理 EMQ X 及在线设备。...消息发布:通过 HTTP 调用 EMQ X 发布 MQTT 消息,应用程序与客户端通信可靠的方式。 主题订阅:动态管理客户端订阅列表,无需客户端主动发起订阅/取消订阅。...数据存储 EMQ X 企业版特有功能,数据存储将客户端上下线状态,订阅关系,离线消息消息内容,消息抵达后发送的消息回执等操作记录到各种数据库中。...消息桥接 EMQ X 企业版桥接转发 MQTT 消息到 Kafka、RabbitMQ、Pulsar、RocketMQ、MQTT Broker 或其他 EMQ X 节点。

2.1K20
您找到你想要的搜索结果了吗?
是的
没有找到

延迟消息处理

之前有这样一个需求,运营在后端配置一条系统消息或者营销活动等类型的消息等到了需要推送的时间以后会自动的将消息推送给用户APP端显示,一开始是采用的任务调度的方式(定时器),通过轮询扫表去做,因为具体什么时候推送消息没有固定的频率...,固定的时间,因此需要每分钟扫表以避免消息在指定时间内未及时推送给APP端内.所以每次都是1分钟扫描一次,太过于频繁。...因此这里选取了几种延迟发送的方式: 1.rabbitMQ 2.redis 3.DelayedQueue(慎用) 代码部分(发送端): /** * 提供了一个公有的方法...MQTopicConstant.SYS_MESSAGE_SEND_DELAY_TOPIC_PRODUCER) .send(MessageBuilder.withPayload(msg) .setHeader("x-delay....toMillis()) .build()); } } #配置系统消息延迟发送

80620

RabbitMQ 延迟队列,消息延迟推送

目录 应用场景 消息延迟推送的实现 测试结果 ---- 应用场景 目前常见的应用软件都有消息延迟推送的影子,应用也极为广泛,例如: 淘宝七天自动确认收货。...在我们签收商品后,物流系统会在七天后延时发送一个消息给支付系统,通知支付系统将款打给商家,这个过程持续七天,就是使用了消息中间件的延迟推送功能。 12306 购票支付确认页面。...消息延迟推送的实现 在 RabbitMQ 3.6.x 之前我们一般采用死信队列+TTL过期时间来实现延迟队列,我们这里不做过多介绍,可以参考之前文章来了解:TTL、死信队列 在 RabbitMQ 3.6....x 开始,RabbitMQ 官方提供了延迟队列的插件,可以下载放置到 RabbitMQ 根目录下的 plugins 下。...//Map pros = new HashMap(); //设置交换机支持延迟消息推送 //pros.put("x-delayed-message

2.2K10

RocketMQ 延迟消息

概述 RocketMQ 支持发送延迟消息,但不支持任意时间的延迟消息的设置,仅支持内置预设值的延迟时间间隔的延迟消息。...broker在接收到延迟消息的时候会把对应延迟级别的消息先存储到对应的延迟队列中,等延迟消息时间到达时,会把消息重新存储到对应的topic的queue里面。...2、判断该消息是否设置延迟,如果延迟级别大于零,则说明该消息延迟消息。...一个延迟级别对应一个 Queue 6、消息原始的 Topic 名称和 QueueId 备份保存到 property 中 7、修改消息的 topic 和 queueId,让该消息先投递到延迟消息队列中...// 消息包括3部分:物理偏移量、消息大小、Tag的HashCode // 这里的tagsCode在延迟消息队列中存储是存储在 【延迟队列中的时间 + 延迟的时间

2.5K20

EMQ百万级MQTT消息服务(介绍和搭建)

1.EMQ EMQ (Erlang/Enterprise/Elastic MQTT Broker) 是基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器。...MQTT 是轻量的(Lightweight)、发布订阅模式(PubSub) 的物联网消息协议。...EMQ 项目设计目标是承载移动终端或物联网终端海量 MQTT 连接,并实现在海量物联网设备间快速低延时消息路由: 稳定承载大规模的 MQTT 客户端连接,单服务器节点支持50万到100万连接。...分布式节点集群,快速低延时的消息路由,单集群支持1000万规模的路由。 消息服务器内扩展,支持定制多种认证方式、高效存储消息到后端数据库。...当笔者要选择一个服务端的时候考虑了如下几点: 能够集群化来应对大量的设备 能够进行精细的权限控制(MQTT不管是对于服务器和终端来说都是发布和订阅所以需要进行权限的限制不是所有人都能给设备发送消息) 社区完善有团队持续支持

2.8K50

RabbitMQ 延迟消息实战

第二种选择是使用官方的 RabbitMQ 延迟消息插件。本文详细介绍了 RabbitMQ 延迟消息。TOC什么是 RabbitMQ?...使用 TTL 和 DLX 延迟消息传递RabbitMQ 延迟消息插件使用 TTL 和 DLX 延迟消息传递通过组合这些功能,我们可以将消息发布到队列,该消息将在 TTL 后过期,然后它被重新被发送到另一个交换器中...args.put("x-message-ttl", 10000);//当queue.normal中的消息过期时,将发送到exchange.dlxargs.put("x-dead-letter-exchange...图片延迟消息延迟消息,用户必须使用 x-delay 标头发布它,该标头接受一个整数,表示消息应由 RabbitMQ 延迟的毫秒数。...检查延迟消息一旦我们在消费者端收到消息,我们如何判断消息是否被延迟x-delay 消息头由插件保留。如果您以 5000 毫秒的延迟发送消息,消费者会发现 x-delay 标头设置为 5000。

51170

EMQ百万级MQTT消息服务(优化和压测)

附上: 喵了个咪的博客:w-blog.cn EMQ官方地址:http://emqtt.com/ EMQ中文文档:http://emqtt.com/docs/v2/guide.html 1.Liunx和Erlang...## Maximum number of concurrent clients(以1G内存比5W进行配置) listener.tcp.external.max_clients = 1000000 重启emq...之后可以在Dashboard看到如下显示: 2.压测程序EMQ 进行压力测试需要erlang R17版本以上的环境(默认yum装下来是R16版本,如果yum能装到新版本请无视) ## 依赖 yum -y.../emqtt_bench_sub -h 192.168.2.111 -c 32219 -i 1 -t bench /%i -q 2 附上笔者压测图: 笔者使用了1核1G的服务器14台对2核心8G的EMQ...能承载的连接数确实很惊人,对的起百万级别消息服务的称呼,得到这个结论之后我们下一步就是开始集群的权限限制的探索,我们不见不散哦…… 注:笔者能力有限有说的不对的地方希望大家能够指出,也希望多多交流!

3.1K61

EMQ X + ClickHouse 实现物联网数据接入与分析

物联网数据采集涉及到大量设备接入、海量的数据传输,EMQ X 物联网消息中间件 与 ClickHouse 联机分析 (OLAP) 数据库的组合技术栈完全能够胜任物联网数据采集传输与存储、分析处理业务。...方案介绍 EMQ X 简介 EMQ X 是基于高并发的 Erlang/OTP 语言平台开发,支持百万级连接和分布式集群架构,发布订阅模式的开源 MQTT 消息服务器。...EMQ X 内置了大量开箱即用的功能,其 企业版 EMQ X Enterprise 支持通过规则引擎将物联网消息数据存储到 ClickHouse。...配置 EMQ X 存储数据到 ClickHouse EMQ X 企业版支持通过规则引擎将设备事件与消息数据写入到各类数据库与消息中间件中(包括 ClickHouse),参考文档。...规则 SQL 规则 SQL 用于 EMQ X 消息以及事件筛选,以下 SQL 表示从 sensor/data 主题筛选出 payload 数据: SELECT payload FROM "sensor

1.7K41

EMQ百万级MQTT消息服务(ACL鉴权)

虽然EMQ已经搭建起来了,但是投入到业务使用中还面临着一些问题,当然MQTT设计之初也考虑了这一点,比如不是任何一个客户端都能链接到服务器和限制客户端能够对topic操作的权限 附上: 喵了个咪的博客:...w-blog.cn EMQ官方地址:http://emqtt.com/ EMQ中文文档:http://emqtt.com/docs/v2/guide.html 1.ACL鉴权 先说实际场景,我们需要监听每一台设备的链接和断开事件等...EMQ的系统行为,这样的事件当然不是任何一个连接到服务器的终端,这样的限制就是ACL鉴权,官方也提供了默认的鉴权,在 /usr/local/emqttd/etc/acl.conf 下,默认值允许127.0.0.1...定于如下主题,当客户端链接的时候是无法获取消息的 $SYS/brokers/+/clients/+/connected $SYS/brokers/+/clients/+/disconnected 但是只需要修改...## 打开mysql鉴权 > emqttd_ctl plugins load emq_auth_mysql Start apps: [emq_auth_mysql] Plugin emq_auth_mysql

2.2K40

RocketMQ延迟消息源码分析

写作目的 第一个原因:最近玩哔哩哔哩遇到一个RocketMQ的Contributor,一开始不知道他是Contributor,后来问到延迟消息的时候这块还不是很了解,他告诉我学习要系统,你既然了解事务消息那我理解应该也了解延迟消息...源码分析 延迟消息配置 消息的延时级别level一共有18级,分别为: private String messageDelayLevel = "1s 5s 10s 30s 1m 2m 3m 4m 5m...6m 7m 8m 9m 10m 20m 30m 1h 2h"; 延迟消息发送 生产延迟消息的代码如下 public static void main(String[] args) throws Exception...接下来看一下延迟消息构建过程。...如下面的代码所示,如果是延迟消息,则tagsCode=存储时间+延迟时间 延迟消息定时任务 源码剖析RocketMQ延时消息原理第3小节中讲的很详细。

20810

EMQ百万级MQTT消息服务(分布式集群)

在强大的单机也比不上集群,EMQ的集群模式很粗暴,只需要把EMQ服务关联在一起然后负载均衡就可以达到集群的效果,这样就算面对1000CK问题也迎刃而解 附上: 喵了个咪的博客:w-blog.cn EMQ...Erlang/OTP 语言平台的分布式程序,由分布互联的 Erlang 运行系统组成,每个 Erlang 运行系统被称为节点(Node),节点(Node) 间通过 TCP 互联,消息传递的方式通信: -...消息服务器集群基于 Erlang/OTP 分布式设计,集群原理可简述为下述两条规则: MQTT 客户端订阅主题时,所在节点订阅成功后广播通知其他节点:某个主题(Topic)被本节点订阅。...MQTT 客户端发布消息时,所在节点会根据消息主题(Topic),检索订阅并路由消息到相关节点。...EMQ 消息服务器同一集群的所有节点,都会复制一份主题(Topic) -> 节点(Node)映射的路由表,例如: topic1 -> node1, node2 topic2 -> node3 topic3

2.5K80

EMQ X | 百万级的开源MQTT消息服务器(搭建一个私有MQTT服务器)

EMQ X EMQ X 与 emqttd 的关系 EMQ X 全称 Erlang/Enterprise/Elastic MQTT Broker,它是基于 Erlang/OTP 语言平台开发,支持大规模连接和分布式集群...说起 EMQ-X,其它的前身就是 emqttd 消息服务器,自 emqttd 3.0 版本起更名为 EMQ-X。 ?...EMQ X EMQ X 支持的协议 EMQ X 消息服务器完整支持 MQTT V3.1/V3.1.1/V5.0 版本协议规范,并扩展支持 MQTT-SN 、WebSocket、CoAP、LwM2M、Stomp...EMQ X 消息服务器默认占用的 TCP 端口包括: 端口 说明 1883 MQTT 协议端口 8883 MQTT/SSL 端口 8083 MQTT/WebSocket 端口 8080 HTTP API...EMQ X 消息服务器默认占用的 TCP 端口包括: 端口 说明 1883 MQTT 协议端口 8883 MQTT/SSL 端口 8083 MQTT/WebSocket 端口 8080 HTTP API

15.1K71

mall整合RabbitMQ实现延迟消息

本文主要讲解mall整合RabbitMQ实现延迟消息的过程,以发送延迟消息取消超时订单为例。 项目使用框架介绍 RabbitMQ RabbitMQ是一个被广泛使用的开源消息队列。...标志 中文名 英文名 描述 P 生产者 Producer 消息的发送者,可以将消息发送到交换机 C 消费者 Consumer 消息的接收者,从队列中获取消息进行消费 X 交换机 Exchange 接收生产者发送的消息...整合RabbitMQ实现延迟消息 在pom.xml中添加相关依赖 <!...true 添加消息队列的枚举配置类QueueEnum 用于延迟消息队列及处理取消订单消息队列的常量定义,包括交换机名称、队列名称、路由键名称。...添加延迟消息的发送者CancelOrderSender 用于向订单延迟消息队列(mall.order.cancel.ttl)里发送消息

68620
领券