`
zc985552943
  • 浏览: 287360 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Babe4ca6-5e6f-33aa-9078-762ee3ccfb7e
云计算--hadoop
浏览量:11490
5e98c2c1-2a82-3388-bc80-7fca0170bb12
redis解说
浏览量:26649
088014c7-4d3f-39ce-b72e-4ebe7046a134
MongoDB读书笔记
浏览量:15634
D2b74847-c860-3e26-96fe-3fa4498d6348
Maven读书笔记
浏览量:26690
688db20f-402d-3a1d-8188-d6153d6c7465
Java通信
浏览量:13399
社区版块
存档分类
最新评论

04_Java通信_JMS概念

阅读更多

前面三章描述了Java通信中的JNDI通过两个小例子说明怎样远程调用对象。这篇文件介绍一下JMS的概念

快速链接:
01_Java通信_JNDI_概念

02_Java通信_JNDI_demo1

03_Java通信_JNDI_demo2远程调用weblogic的数据源

 

正式进入JMS

message queue:消息队列
MQ一般都做为企业级IT应用的中间件存在,有很多企业是作为标准IT基础结构存在的。在市面上常见的MQ中间件有IBM websphere message queue service,Oracle Advanced Queuing,Microsoft Message Queue(MSMQ),Apache ActiveMQ等,其中apache ActiveMQ是基于apache协议的,和tomcat一样,你可以在项目中免费使用,MSMQ是Windows的组件,默认是不被安装的,可以在“添加/删除组件”中安装MSMQ(不同版本的Windows对应的MSMQ版本是不同的,XP/2003是3.0,Vista是4.0)。
在Java中,使用主要使用JMS(Java Message Service)来实现MQ,可以选择的厂商Apache ActiveMQ。
后面将会介绍两个简单的小demo。在demo中使用的就是Apache ActiveMQ。

JMS:(Java Message Service,Java消息服务)可以理解为在两个应用程序中进行的消息来往。例如:一个大公司中可能两个项目用了不同的技术:A应用程序是用Java写的,B应用程序可能用C++写的。如果A和B需要数据交换,这是就可以使用JMS——异构集成。

应用程序到应用程序(application to application)类型的信息传递系统,在用于业务系统中,称为企业消息传递系统,或者称为面向消息的中间件(message oriented Middleware MOM)。
JMS和JDBC类似,Java提供接口,厂商提供实现

JMS优点:

异构集成

缓解系统瓶颈

提高可伸缩性

提高最终用户生产率

体系结构灵活性和敏捷性

PS:以上是摘自《Java消息服务》

企业消息传递:



客户端:消息传递系统由消息传送客户端和几种消息传送中间件服务器所组成。客户端向消息传送服务器发送消息,该服务器随后再将那些消息分发给其他客户端。客户端是使用消息传送API的一个业务应用程序或者构件,在这里可以指JMS

JMS消息模型

点对点(1:1)



发布者(生产者)发布一条消息,这条消息进入Topic,所有订阅这个Topic的订阅者(消费者)都会收到消息的副本

基于发布/订阅(1:N)


发布者(生产者)发送一条消息,消息进入队列,只会有一个接收者接收这个消息

 

JMS API

公共API 点对点API 发布/订阅API

ConnectionFactory

QueueConnectionFactory TopicConnectionFactory
Destination Queue Topic
Connection QueueConnection TopicConnection
Session QueueSession TopicSession
Message Message Message
MessageProducer QueueSender TopicPublisher
MessageConsumer QueueReceiver TopicSubscriber

 

下一节实现一个发布/订阅消息模型的demo这样理解起来会更加简单

  • 大小: 42.8 KB
  • 大小: 24.2 KB
  • 大小: 27.3 KB
0
1
分享到:
评论

相关推荐

    WSAD环境下JMS异步通信全攻略

    一、JMS基本概念  1.1 P2P通信  1.2 Pub/Sub通信 二、JMS消息 三、JMS P2P编程  3.1 使用JMS QueueConnection对象  3.2 处理回退事件  3.3 关闭JMS对象  3.4 接收消息  3.5 消息驱动的Bean...

    收入了164个完整的、来自实战的Java编程实例,每个例子都有详尽的注释,全新的第二版涵盖了Java v1.3,实现了20个不同的Java API,其中包括Servelt、JSP、XML、Swing和Java2D

    java 网络高级编程(PDF) 介绍了网络进程通信的主要技术,Java有关的Web技术,异步消息服务技术JMS和Java Mail技术,Java安全体系结构、密钥、消息摘要、数字签名等技术 Java 极限编程(PDG) 简短介绍极限编程文法及...

    Java相关技术(详细资料)

     7、JMS(Java Message Service)提供企业消息服务,如可靠的消息队列、发布和订阅通信、以及有关推拉(Push/Pull)技术的各个方面。  8、JTS(Java transaction Service)提供存取事务处理资源的开放标准,这些事务...

    Java数据编程指南

    J2EE通信 通信概述 JMS的详细情况 消息驱动EJB 小结 第24章 Java数据对象(JDO) 概述 JDO对象模型 JDO API JDO实例的生命周期 JDO和EJB 开发可持久类 范例应用程序 配置FFJ...

    java 面试题 总结

    面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性: 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多...

    java面试宝典

    75、socket通信(tcp/udp区别及JAVA的实现方式) 18 76、什么是java序列化,如何实现java序列化? 18 77、简述synchronized和java.util.concurrent.locks.Lock的异同 ? 18 78、abstract class Name { private ...

    EJB 编程及 J2EE 系统架构和设计.pdf

    Servlets 和JSP、EJB 技术、数据库访问、分布式通信技术(Java RMI、Java IDL、 JNDI、JMS)、安全等;本文试图给出J2EE 平台技术概念理解上的一个较为清晰 的完整的思路,帮助大家掌握各技术间的相互关系和重要的...

    EJB编程及J2EE系统框架设计.pdf

    Servlets 和JSP、EJB 技术、数据库访问、分布式通信技术(Java RMI、Java IDL、 JNDI、JMS)、安全等;本文试图给出J2EE 平台技术概念理解上的一个较为清晰 的完整的思路,帮助大家掌握各技术间的相互关系和重要的...

    超级有影响力霸气的Java面试题大全文档

    面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性:  多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化...

    EJB编程及J2EE系统架构和设计

    这些技术涵盖了组件技术、 Servlets 和JSP、EJB 技术、数据库访问、分布式通信技术(Java RMI、Java IDL、 JNDI、JMS)、安全等;本文试图给出J2EE 平台技术概念理解上的一个较为清晰 的完整的思路,帮助...

    轻松使用rabbitmq.rar

    RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展...

    EJB 编程及 J2EE 系统架构和设计

    API,这些技术涵盖了组件技术、 Servlets和JSP、EJB技术、数据库访问、分布式通信技术(Java RMI、Java IDL、 JNDI、JMS)、安全等;本文试图给出 J2EE 平台技术概念理解上的一个较为清晰的完整的思路,帮助...

    外部交换平台操作手册.zip

    加密类注册 56 第七章 扩展 57 第八章 JMS及大文件传输模式 59 1信息交换平台异步通信解决方案 59 1.1信息交换平台现状及存在的问题 59 1.2需求分析 59 1.3 JMS简介 60 1.3 JMS Client消息交互图 62 1.5解决方案 62...

    千方百计笔试题大全

    75、socket通信(tcp/udp区别及JAVA的实现方式) 18 76、什么是java序列化,如何实现java序列化? 18 77、简述synchronized和java.util.concurrent.locks.Lock的异同 ? 18 78、abstract class Name { private ...

    springCloud

    RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展...

    希赛软考学院系统分析师考试辅导与培训_新技术应用资料

    4.2 系统间接口通信机制的多样性问题.......................................38 4.3 流程的自动化问题.....................................................39 5 结论.............................................

    精通websphere MQ

    第 1 章 概念与原理........................................................................................................ 16 1.1 简介...................................................................

Global site tag (gtag.js) - Google Analytics