1999年,IBM和合作伙伴共同发明MQTT协议 14年,MQTT正式成为推荐的物联网传输协议标准 常应用于很多机器计算能力有限.底带宽.网络不可靠的远程通信应用场景中.   主要概念     MQTT协议的基本组件:             网络连接             应用消息             主题             负载             客户端             服务器             会话             订阅             主题…
04年,AMQP开放标准被开发 06年,AMQP规范被发布   基本概念     Message:与平台无相关的数据.     Publisher:向交换器发布消息的客户端应用程序     Exchange:用来接收消息生产者所发送的消息并把这些消息路由给服务器中的队列     Binding:用于消息队列和交换器之间的关联     VirtualHost:是消息队列以及相关对象的集合,是共享同一个身份验证和加密环境的独立服务器.     Broker(消息代理):表示消息队列服务器实体,接受客…
12年,STOMP1.2规范发布  简单的文本消息传输协议,提供一种可互相操作的连接格式,允许客户端与任意消息服务器进行交互 主要的概念     STOMP包含客户端和服务器,其中客户端指生产者或消费者.     STOMP的客户端和服务器的通信之间的通信是基于帧来实现的,每一个帧都包括一个表示命令的字符串.一系列可选的帧头条目和帧的数据内容.     STOMP中的命令字符串按客户端还是服务端分成两大类.  …
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的核心开发者庄晓丹.  欢迎大家推荐更多开源项目给我们,支持中国的开源项目发展,如…
分布式应用和集群: 从部署形态来看,它们都是多台机器或者多个进程部署,而且都是为了实现一个业务功能. 如果是一个业务被拆分成多个子业务部署在不同的服务器上,那就是分布式应用 如果是同一个业务部署在多台服务器上,那就是集群 分布式应用的多个子系统之间并不是完全独立的,它们需要相互通信来共同完成某个功能.系统间通信的方式有两种,一种是远程过程调用即RPC接口, 另一种是基于消息队列的方式. 基于消息队列的方式是指由应用中的某个系统负责发送消息,由订阅这条消息的相应系统负责接收消息.不同的系统在收到消…
为什么是kafka? 在我们大量使用分布式数据库.分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户的搜索关键词进行统计,分析出当前的流行趋势 有些数据,存储数据库浪费,直接存储硬盘效率又低 这些场景都有一个共同点: 数据是由上游模块产生,上游模块,使用上游模块的数据计算.统计.分析,这个时候就可以使用消息系统,尤其是分布式消息系统! 知道了我们有必要在数据处理系统中使用一个消息系统,但是我们为什么一定要选kafk…
TubeMQ是腾讯在2013年自研的分布式消息中间件系统,专注服务大数据场景下海量数据的高性能存储和传输,经过近7年上万亿的海量数据沉淀,目前日均接入量超过25万亿条.较之于众多明星的开源MQ组件,TubeMQ在海量实践(稳定性+性能)和低成本方面有着比较好的核心优势. TubeMQ 捐赠 Apache 基金会 9月12日,Apache软件基金会成立20周年之际,腾讯在ApacheCon宣布TubeMQ 开源.TubeMQ 启动计划捐赠 Apache 基金会的流程. TubeMQ系统特点 1.…
一.概述 Apache出品,最流行的,能力强劲的开源消息总线. 1.JMS规范 Java消息服务(Java Message Service,即JMS)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于应用程序之间,或分布式系统中发送消息,进行异步通信.Java消息服务是一个与具体平台无关的API. JMS的对象模型 JMS的消息模型 指定的数据给指定的消费者 生产者发布消息,消息会传送给所有同一主题的消费者 JMS消息结构 消息头,关于一些消息的描述信息 消息属性可以理解…
(接上文<架构设计:系统间通信(19)--MQ:消息协议(上)>) 上篇文章中我们重点讨论了"协议"的重要性.并为各位读者介绍了Stomp协议和XMPP协议. 这两种协议是消息队列中两种不同使用场景下的典型代表. 本文主要接续上文的篇幅,继续讨论消息队列中还有一种典型协议:AMQP协议. 3-3.AMQP协议 AMQP协议的全称是:Advanced Message Queuing Protocol(高级消息队列协议).眼下AMQP协议的版本号为 Version 1.0.这个…