12年,STOMP1.2规范发布  简单的文本消息传输协议,提供一种可互相操作的连接格式,允许客户端与任意消息服务器进行交互 主要的概念     STOMP包含客户端和服务器,其中客户端指生产者或消费者.     STOMP的客户端和服务器的通信之间的通信是基于帧来实现的,每一个帧都包括一个表示命令的字符串.一系列可选的帧头条目和帧的数据内容.     STOMP中的命令字符串按客户端还是服务端分成两大类.  …
04年,AMQP开放标准被开发 06年,AMQP规范被发布   基本概念     Message:与平台无相关的数据.     Publisher:向交换器发布消息的客户端应用程序     Exchange:用来接收消息生产者所发送的消息并把这些消息路由给服务器中的队列     Binding:用于消息队列和交换器之间的关联     VirtualHost:是消息队列以及相关对象的集合,是共享同一个身份验证和加密环境的独立服务器.     Broker(消息代理):表示消息队列服务器实体,接受客…
1999年,IBM和合作伙伴共同发明MQTT协议 14年,MQTT正式成为推荐的物联网传输协议标准 常应用于很多机器计算能力有限.底带宽.网络不可靠的远程通信应用场景中.   主要概念     MQTT协议的基本组件:             网络连接             应用消息             主题             负载             客户端             服务器             会话             订阅             主题…
1.MQ场景    1)订单异步解耦    2)解决分布式事务问题    3)应用于聊天平台    4)大规模机器的Cache同步    5)MySQL BinLog订阅数据分发2.ONS应用场景    异步.解耦.最终一致.并行3.设计假定    1)每台PC机器都可能down机不可服务    2)任意集群都可能处理能力不足    3)最坏情况一定会发生    4)内网环境需要低延迟来提供你最佳用户体验4.关键设计    1)分布式集群化        a.理论上无限处理能力        b…
RocketMQ作为阿里开源的一款高性能.高吞吐量的消息中间件,它是怎样来解决这两个问题的?RocketMQ 有哪些关键特性?其实现原理是怎样的? 关键特性以及其实现原理 一.顺序消息 消息有序指的是可以按照消息的发送顺序来消费.例如:一笔订单产生了 3 条消息,分别是订单创建.订单付款.订单完成.消费时,要按照顺序依次消费才有意义.与此同时多笔订单之间又是可以并行消费的.首先已两笔消息来看如下示例: 假如生产者产生了2条消息:M1.M2,要保证这两条消息的顺序,应该怎样做?你脑中想到的可能是这…
package com.study.mq.a1_example.helloworld.queue; import org.apache.activemq.ActiveMQConnectionFactory; import javax.jms.*; /** 简单生产者 */ public class Producer { public static void main(String[] args) { new ProducerThread("tcp://10.201.157.250:61616&q…
MetaQ(全称Metamorphosis)是一个高性能.高可用.可扩展的分布式消息中间件,思路起源于LinkedIn的Kafka,但并不是Kafka的一个Copy.MetaQ具有消息存储顺序写.吞吐量大和支持本地和XA事务等特性,适用于大吞吐量.顺序消息.广播和日志数据传输等场景,目前在淘宝和支付宝有着广泛的应用.   Github地址:  链接地址 为了使大家对MetaQ有进一步的了解,本期我们采访了MetaQ的核心开发者庄晓丹.  欢迎大家推荐更多开源项目给我们,支持中国的开源项目发展,如…
TubeMQ是腾讯在2013年自研的分布式消息中间件系统,专注服务大数据场景下海量数据的高性能存储和传输,经过近7年上万亿的海量数据沉淀,目前日均接入量超过25万亿条.较之于众多明星的开源MQ组件,TubeMQ在海量实践(稳定性+性能)和低成本方面有着比较好的核心优势. TubeMQ 捐赠 Apache 基金会 9月12日,Apache软件基金会成立20周年之际,腾讯在ApacheCon宣布TubeMQ 开源.TubeMQ 启动计划捐赠 Apache 基金会的流程. TubeMQ系统特点 1.…
分布式应用和集群: 从部署形态来看,它们都是多台机器或者多个进程部署,而且都是为了实现一个业务功能. 如果是一个业务被拆分成多个子业务部署在不同的服务器上,那就是分布式应用 如果是同一个业务部署在多台服务器上,那就是集群 分布式应用的多个子系统之间并不是完全独立的,它们需要相互通信来共同完成某个功能.系统间通信的方式有两种,一种是远程过程调用即RPC接口, 另一种是基于消息队列的方式. 基于消息队列的方式是指由应用中的某个系统负责发送消息,由订阅这条消息的相应系统负责接收消息.不同的系统在收到消…
一.概述 Apache出品,最流行的,能力强劲的开源消息总线. 1.JMS规范 Java消息服务(Java Message Service,即JMS)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于应用程序之间,或分布式系统中发送消息,进行异步通信.Java消息服务是一个与具体平台无关的API. JMS的对象模型 JMS的消息模型 指定的数据给指定的消费者 生产者发布消息,消息会传送给所有同一主题的消费者 JMS消息结构 消息头,关于一些消息的描述信息 消息属性可以理解…