实际上消息中间件的发展也是挺有意思的,我们知道任何一个技术的出现都是为了解决实际问题,这个问题是 通过一种通用的软件“总线”也就是一种通信系统,解决应用程序之间繁重的信息通信工作。最早的小白鼠就是金融交易领域,因为在当时这个领域中,交易员需要通过不同的终端完成交易,每台终端显示不同的信息。如果接入消息总线,那么交易员只需要在一台终端上操作,然后订阅其他终端感兴趣的消息。于是就诞生了发布订阅模型(pubsub),同时诞生了世界上第一个现代消息队列软件(TIB)The information Bus, TIB允许开发者建立一系列规则去描述消息内容,只要消息按照这些规则发布出去,任何消费者应用都能订阅感兴趣的消息。随着TIB带来的甜头被广泛应用在各大领域,IBM也开始研究开发自己的消息中间件,3年后IBM的消息队列IBM MQ产品系列发布,之后的一段时间MQ系列进化成了WebSphere MQ统治商业消息队列平台市场。

包括后期微软也研发了自己的消息队列(MSMQ)

各大厂商纷纷研究自己的MQ,但是他们是以商业化模式运营自己的MQ软件,商业MQ想要解决的是应用互通的问题,而不是创建标准接口来允许不同MQ产品互通。所以有些大型的金融公司可能会使用来自多个供应商的MQ产品,来服务企业内部不同的应用。那么问题来了,如果应用已经订阅了TIB MQ的消息然后突然需要消费IBM MQ的消息,那么整个实现过程会很麻烦。为了解决这个问题,在2001年诞生了 Java Message Service(JMS),JMS通过提供公共的Java API方式,隐藏单独MQ产品供应商的实现接口,从而跨越了不同MQ消费和解决互通问题。从技术层面来说,Java应用程序只需要针对JMS API编程,选择合适的MQ驱动即可。JMS会处理其他部分。这种方案实际上是通过单独标准化接口来整合很多不同的接口,效果还是不错的,但是碰到了互用性的问题。两套使用两种不同编程语言的程序如何通过它们的异步消息传递机制相互通信呢。这个时候就需要定义一个异步消息传递的通用标准

所以AMQP(Advanced Message Queuing Protocol)高级消息队列协议产生了,它使用了一套标准的底层协议,加入了许多其他特征来支持互用性,为现代应用丰富了消息传递需求,针对标准编码的任何人都可以和任意AMQP供应商提供的MQ服务器进行交互。

除了JMS和AMQP规范以外,还有一种MQTT(Message Queueing Telemetry[特莱米缺] Transport),它是专门为小设备设计的。因为计算性能不高的设备不能适应AMQP上的复杂操作,它们需要一种简单而且可互用的方式进行通信。这是MQTT的基本要求,而如今,MQTT是物联网(IOT) 生态系统中主要成分之一

今天要讲解的Kafka,它并没有遵循上面所说的协议规范,注重吞吐量,类似udp 和 tcp

消息中间件的发展过程相关推荐

  1. 【计算机网络】HTTP 与 HTTPS ( HTTP 发展过程 | HTTP/1.1 与 HTTP/2 对比 | HTTP 报文格式 )

    文章目录 前言 一.HTTP 发展过程 二.HTTP/1.1 与 HTTP/2 对比 三.HTTP 报文格式 前言 目前如果在浏览器中访问 http 网站 , 浏览器会提示不安全 , 如下图 : 如果 ...

  2. html5发展前景-兄弟连,IT兄弟连 HTML5教程 HTML5的曲折发展过程 HTML5的诞生

    原标题:IT兄弟连 HTML5教程 HTML5的曲折发展过程 HTML5的诞生 十年磨一剑,正如我们所看到的一样,HTML5大潮正来势汹汹.但也正如我们所知道的一样,HTML5是一种技术标准,它的语义 ...

  3. AI 质检学习报告——学习篇——AI质检产生背景和发展过程

    一.传统质检 1.什么是质检? 百度百科对质检的定义:质检顾名思义就是质量检验.可以详细划分为内部质检与外部质检. AI质检主要研究的是内部质检. 内部质量检查是指企业内部质检部门为了确保满足交付的工 ...

  4. ​网络 IO 演变发展过程和模型介绍

    作者:jaydenwen,腾讯 pcg 后台开发工程师 在互联网中提起网络,我们都会避免不了讨论高并发.百万连接.而此处的百万连接的实现,脱离不了网络 IO 的选择,因此本文作为一篇个人学习的笔记,特 ...

  5. 计算机操作系统(2):OS的发展过程

    1.2  OS的发展过程 20世纪50年代中期,第一个简单的批处理系统 60年代中期,多道程序批处理系统,随后出现分时系统 上世纪80年代开始至21世纪初,微型机.多处理机.计算机网络大发展年代→微机 ...

  6. mysql的发展进程和特点,试述数据库技术的发展过程。数据库技术发展的特点是什么?...

    试述数据库技术的发展过程.数据库技术发展的特点是什么? 更多相关问题 如果冬季涂料施工时涂料不易干,应多加一些催干剂. THE ANCHOR WAS HEAVED AWEIGH means _____ ...

  7. MySQL数据步骤管控_数据管理的发展过程分为哪三个阶段

    数据管理的发展过程分为哪三个阶段 发布时间:2020-11-12 12:01:00 来源:亿速云 阅读:124 作者:小新 这篇文章主要介绍数据管理的发展过程分为哪三个阶段,文中介绍的非常详细,具有一 ...

  8. 网络IO演变发展过程和模型介绍

    本文来说下网络IO演变发展过程和模型介绍 文章目录 概述 网络IO的发展 网络 IO 的各个发展阶段 网络的两个阶段 阻塞IO和非阻塞IO的区别 同步IO和异步IO的区别 阻塞IO 阻塞IO的概念 阻 ...

  9. IBM发展过程中给我们带来什么启示?

    IBM作为世界上最大的服务公司.第三大软件公司.第三大数据库公司,在它的发展过程和发展策略上有很多值得我们借鉴的经验.下面从两个方面聊聊我们都能得到些什么启示. 保守的追随者 1976年史蒂夫·乔布斯 ...

最新文章

  1. PHP mysql数据迁移,【MySQL】迁移数据目录php-php教程
  2. 大数运算(3)——大数减法
  3. html页面icon字体无法显示,bootstrap中icon字体图标怎么不显示?
  4. 区县级政府网站群建设要点
  5. mAP与IOU的简单介绍
  6. Java番外篇4——BigInteger与BigDecimal
  7. MySQL为什么用 B+ 树,不用 B 树?
  8. 2017.02.19学习C#的第二天,今天我学到了什么?
  9. 华为 HG255D 刷openwrt trunk 支持ipv6
  10. 计算机系统文字图片以啥子存在,电脑如何识别图片中文字的字体|电脑通过图片识别字体的方法...
  11. 阿里云服务器租用价格最新收费标准(2019实时更新)
  12. 在论文开题报告中,研究目的和研究意义两者之间有什么区别吗?
  13. hbuilder配置浏览器 设置编辑器默认浏览器
  14. 微信高级群发之预览接口
  15. 求生之路显示服务器ip,求生之路云服务器开服教程
  16. arcgis之合并碎小图斑到相邻大块图斑
  17. DCHQ + EMC REX-Ray在多个云和虚拟化平台上交付容器数据库服务
  18. 华为鸿蒙系统英语报纸_华为鸿蒙系统报名方法
  19. 猜数游戏 先由计算机,C++实现猜数游戏
  20. chrome linux依赖包,[WebDriver]Linux/Docker下安装Chrome浏览器和ChromeDriver

热门文章

  1. Linux Kernel ‘install_user_keyrings()’竞争条件漏洞
  2. Optimize a Flex application using deferred instantiations
  3. wince驱动异常调试方法(作者:wogoyixikexie@gliet)
  4. 《汇编语言》- 来自底层的较量 - 温故而知新
  5. vue2.0框架认识
  6. 常用Redis命令总结
  7. 利用python去除红章
  8. 安装完成后在命令行运行bash时报错0x80070057
  9. 自定义类型处理器的应用
  10. Jdk1.8新特性(三)——方法引用::