一、为什么要使用消息中间件

消息中间件就是可以省去繁琐的步骤,直达目的,怎么讲呢,就是比如你想很多人,知道你的动态,而知道的人可能手机没电,可能手机信号不好,可能手机不在服务区,或者看的人比较忙,看的时间不固定,这样的时候,你发送的消息怎么会让其看到呢,就是建立一个微信公众号,可以满足用户随时看到你想让其看到的消息,这就是中间件的一种应用方式,生活中老师讲课的黑板,家中的电视机都是中间件的一种体现方式。

消息中间件的好处

1、解耦

2、异步

3、横向扩展 :就是可以通过一个中间件进行一个功能多次的操作

4、安全可靠   消息中间件可以把消息保存

5、顺序保存,比如kafka

二、什么是中间件

非底层操作系统软件,非业务应用软件,不是给最终用户使用,不能直接给用户带来价值的软件统称为中间件。

三、什么是消息中间件

关注于数据的发送和接受,利用高效可靠的异步消息传递机制集成分布式系统。

四、什么是JMS

Java消息服务(Java Message Service)即JMS,是一个Java平台中关于面向消息中间件的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。

五、什么是AMQP

AMQP(advanced message queuing protocol)是一个提供统一消息服务的应用层标准协议,基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同开发语言等条件的限制.

常见消息中间件对比

1、ActiveMQ

ActiveMQ是Apache出品,最流行的,能力强劲的开源消息总线. ActiveMQ是一个完全支持JMS1.1和J2EE1.4规范的JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位.

ActiveMQ特性

(1)多种语言和协议编写客户端.语言:

Java,C,C++,C#,Ruby,Perl,Python,PHP.

(2)应用协议:

OpenWire、Stomp REST,WS Notification,XMPP,AMQP

(3)完全支持JMS1.1和J2EE1.4规范(持久化,XA消息,事务)

(4)虚拟主题、组合目的、镜像队列

2、RabbitMQ

RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

RabbitMQ特性

(1)支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript等

(2)AMQP的完整实现(vhost、Exchange、Binding、Routing Key 等)

(3)事务支持/发布确认

(4)消息持久化

3、Kafka

Kafka是一种高吞吐量的分布式发布订阅消息系统,是一个分布式的、分区的、可靠的分布式日志存储服务。它通过一种独一无二的设计提供了一个消息系统的功能。(不是个严格的中间件,主要是用于日志转存的)

Kafka特性:

(1)通过O(1)  的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。

(2)高吞吐量:即使是非常普通的硬件Kafka也可以支持每秒数百万的消息。

(3)Partition、Consumer Group

java 中间件介绍_java消息中间件的使用与简介相关推荐

  1. java英语介绍_java,英文介绍项目.doc

    java,英文介绍项目 java,英文介绍项目 篇一:Java开发常见英文 Java基础常见英语词汇(共70个) Author:ZW OO: object-oriented ,面向对象OOP: obj ...

  2. java英语介绍_java自我介绍英语口语

    <java自我介绍英语口语>由会员分享,可在线阅读,更多相关<java自我介绍英语口语(6页珍藏版)>请在人人文库网上搜索. 1.java自我介绍英语口语 java技术的同学们 ...

  3. java自我介绍_JAVA面试技巧之自我介绍

    [如何进行自我介绍] 自我介绍这个问题,不用多说了,面试必定会问!如果想要在自我介绍的时候就能够打动面试官,吸引面试官对我们的兴趣,那么像我们这种接受过Java培训的程序员的自我介绍当然不能和应届生或 ...

  4. java英文介绍_java面试英文自我介绍

    java面试英文自我介绍 2017/11/24 14:23:00 手机版 大家在面试java工程师时,企业都会要求有一定的英语水平!那么面试时,面试官要求大家用英语自我介绍我们应该怎么表述呢?以下是面 ...

  5. java技术介绍_Java技术汇总

    这篇文章总结了多年来使用Java的一些心得体会,主要是和一些Java基础知识点相关的,也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行业的准新手们,希望可以给大家一些经验,能让大家更好 ...

  6. java 集合 介绍_java集合类基本简介

    java集合类基本简介 序号 类描述 1 AbstractCollection 实现了大部分的集合接口. 2 AbstractList 继承于AbstractCollection 并且实现了大部分Li ...

  7. java简单介绍_java 简单介绍

    byte 1个字节(主要是节省内存控件,在进行i/o传输的时候可以使用) short 2个字节(不常用) int 4个字节(常用于控制循环语句) long 8个字节(计算非常大的数是,int不足以满足 ...

  8. java组件介绍_Java组件介绍 - osc_wws45aot的个人空间 - OSCHINA - 中文开源技术交流社区...

    1.String string对象的不变性.被final关键字修饰. 使用charat方法替代startwith/endwith方法(提高性能) 使用buffer(方法同步,性能较差)和builder ...

  9. java resources介绍_Java之Resource接口

    接口简介 JDK中提供了java.net.URL这个类来用于获取不同种类的资源(根据不同前缀的url可以获取不同种类的资源).但是URL这个类没有获取classpath和ServletContext下 ...

最新文章

  1. python笔记基础-python基础学习笔记(一)
  2. sscanf用法详解-hdu2072
  3. 互联网晚报 | 9月22日 星期三 | 中国电信控股股东拟40亿元增持;碧桂园服务100亿收购富良环球;搜狗浏览器论坛即将下线...
  4. 建站利器 | 阿里巴巴上线静态开源站点搭建工具 Docsite
  5. java 判断字符串是否为数字
  6. spring的jdbcTemplate的多数据源的配置,springboot的jdbcTemplate的多数据源的配置
  7. centos 7 php目录权限设置密码,Linux系统中(CentOS 7)的用户和权限管理
  8. Echarts数据可视化event图表事件的相关操作,开发全解+完美注释
  9. 学python之路前的一些话
  10. 太阳跟踪装置系统设计与制作
  11. 根据IP获取对应国家
  12. 工业机器人电柜布线_工业机器人示教器及其连线图
  13. qmh_confluence源码研究
  14. 基于CANdelaStudio制作CDD流程概述
  15. delphi控件属性和事件
  16. 支付平台--网联详解
  17. 金和IUapp制作“手机之家”
  18. css直角线_css斜切角 斜边 倒角
  19. 【Transformers】第 7 章 :问答
  20. 【转载】关于 .Net 逆向的那些工具:反编译篇

热门文章

  1. 输入法文字字体格式出问题
  2. 大数据之jstorm,storm,hbase,hadoop and so on
  3. win10系统启动AppScan时提示管理员已阻止运行该应用
  4. 新一代苹果Apple Watch有什么新功能?
  5. 联想计算机如何会会出厂设置方法,联想自带win10系统恢复出厂设置的方法
  6. SonicWall:速修复这个严重的SQL 漏洞
  7. Redis 数据持久化方案
  8. 绑定内联样式 :style
  9. html css img标签鼠标事件,HTML+CSS入门 img标签学习
  10. Windows解决npm命令没有反应