之前一直在对kafka做分析,越深入发现对JMS的理解要求越高,上周出差的时候去海淀买了本书慢慢补一些基础,顺道做些笔记和解释分享上来,这本书网上都有下载,java message service。最近也用过了一段时间的ActiveMQ,之后的一些内容会加入这些个MQ之间的使用体会。
1、 用在哪里?
Heterogeneous integration is one primary area where messaging plays a key role.
2、 能干什么?
Messaging also offers the ability to process requests asynchronous, providing architects and developers with solutions for reducing or eliminating system bottlenecks, and increasing end user productivity and overall system scalability.
3、 JMS和MOM的关系
Message-Oriented Middleware. JMS是规范,当然也提供基本实现,MOM是具体的实现,各个厂家可根据不同的网络协议、消息格式完成基本的功能。
4、 在企业级应用上,MOM需要达到怎样的基本要求?
Enterprise middleware products ensure that messages are properly distributed among applications. In addition, these products provide fault tolerance, load balancing, scalability, and transactional support for enterprises that need to reliably exchange large quantities of messages.
5、 RPC和JMS的区别?
While each of these solutions (JMS&RPC) has their advantages and disadvantages, only messaging provides a truly decoupled solution allowing both data and functionality to be shared across applications or sub-systems.
6、 Enterprise Messaging
A key concept of enterprise messaging is that messages are delivered asynchronously from one system to others over a network. Also, the introduction of SOA has given rise a new type of messaging product as ESB.
7、 JMS中的client
Messaging systems are composed of messaging clients and some kinds of messaging middleware server. The clients send messages to the messaging server, which then distributes those messages to other clients.
8、 Centralized Architectures & Decentralized Architectures
A message serer, also called a message router or broker.
All Decentralized Architectures currently use IP multicast at the network level. This system has no centralized server. Some of the server functionality (persistence, transactions, security) is embedded as a local part of client.
9、 Messaging Models
JMS supports two types of messaging models: P2P and pub/sub. 这里会涉及到消息的push或者pull等方式的不同,这个会根据不同的设计有不同的实现。
The P2P messaging model allows JMS clients to send and receive messages both synchronously and asynchronously via virtual channels known as queue. This model has traditionally been a pill-based or polling-based model.
The pub/sub model, messages are published to a virtual channel called a topic.
10、 JMS API
JMS is not a messaging system itself; it’s an abstraction of the interface and classes needed by messaging clients when communication with messaging systems.
JMS API is created by Sun Microsystems through JSR-914.