教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 高中教育 >

分布式应用学习笔记(4)

来源:网络收集 时间:2026-08-21
导读: 6. 怎么将流还原为传输格式的? 根据SOAP协议进行还原。 7. 处理完毕后怎么回应? 返回结果写入XML中,由框架返回至调用端。 2.3.6 ActiveMQ ActiveMQ是JMS的实现,基于JMS这类消息机制实现远程通讯是一种不错的选

6. 怎么将流还原为传输格式的?

根据SOAP协议进行还原。

7. 处理完毕后怎么回应?

返回结果写入XML中,由框架返回至调用端。

2.3.6 ActiveMQ

ActiveMQ是JMS的实现,基于JMS这类消息机制实现远程通讯是一种不错的选

择,毕竟消息机制本身的功能使得基于它可以很容易的去实现同步/异步/单向调用等,

而且消息机制从容错角度上来说也是个不错的选择,这是Erlang能够做到容错的重要

基础。

1. 是基于什么协议实现的?

基于JMS协议。

MOM JMS 分布式 架构

2. 怎么发起请求?

遵循JMS API发起请求。

3. 怎么将请求转化为符合协议的格式的?

不太清楚,猜想应该是二进制流。

4. 使用什么传输协议传输?

支持多种传输协议,例如socket、http等等。

5. 响应端基于什么机制来接收请求?

监听符合协议的端口。

6. 怎么将流还原为传输格式的?

同问题3。

7. 处理完毕后怎么回应?

遵循JMS API生成消息,并写入JMS Queue中。

基于JMS此类机制实现远程通讯的例子有Spring-Intergration、Mule、Lingo等等。

2.3.7 Mina

Mina 是Apache提供的通讯框架,在之前一直没有提到网络IO这块,之前提及的

框架或library基本都是基于BIO的,而Mina是采用NIO的, NIO在并发量增长时对

比BIO而言会有明显的性能提升,而java性能的提升,与其NIO这块与OS的紧密结

合是有不小的关系的。

1. 是基于什么协议实现的?

基于纯粹的Socket+NIO。

2. 怎么发起请求?

通过Mina提供的Client API。

3. 怎么将请求转化为符合协议的格式的?

Mina遵循java串行化机制对请求对象进行序列化。

4. 使用什么传输协议传输?

支持多种传输协议,例如socket、http等等。

5. 响应端基于什么机制来接收请求?

以NIO的方式监听协议端口。

6. 怎么将流还原为传输格式的?

遵循java串行化机制对请求对象进行反序列化。

MOM JMS 分布式 架构

7. 处理完毕后怎么回应?

遵循Mina API进行返回。

MINA是NIO方式的,因此支持异步调用是毫无悬念的。

2.3.8 EJB

EJB最突出的在于其分布式,EJB采用的是ORMI协议,和RMI协议是差不多的,

但EJB在分布式通讯的安全控制、transport pool、smart proxy等方面的突出使得其在分

布式领域是不可忽视的力量。

1. 是基于什么协议实现的?

基于ORMI协议。

2. 怎么发起请求?

EJB调用。

3. 怎么将请求转化为符合协议的格式的?

遵循java串行化机制对请求对象进行序列化。

4. 使用什么传输协议传输?

Socket。

5. 响应端基于什么机制来接收请求?

监听协议端口。

6. 怎么将流还原为传输格式的?

遵循java串行化机制对请求对象进行反序列化。

7. 处理完毕后怎么回应?

直接返回处理对象即可。

在之前的分布式服务框架系列的文章中对于jndi有误导的嫌疑,在这篇blog中也

顺带的提下jndi的机制,由于JNDI取决于具体的实现,在这里只能是讲解下jboss的

jndi的实现了。

在将对象实例绑定到jboss jnp server后,当远程端采用context.lookup()方式获取远

程对象实例并开始调用时,jboss jndi的实现方法是从jnp server上获取对象实例,将其

序列化回本地,然后在本地进行反序列化,之后在本地进行类调用。

通过这个机制,就可以知道了,本地其实是必须有绑定到jboss上的对象实例的

class的,否则反序列化的时候肯定就失败了,而远程通讯需要做到的是在远程执行某

动作,并获取到相应的结果,可见纯粹基于JNDI是无法实现远程通讯的。

MOM JMS 分布式 架构

但JNDI也是实现分布式服务框架一个很关键的技术点,因为可以通过它来实现透

明化的远端和本地调用,就像ejb,另外它也是个很好的隐藏实际部署机制(就像

datasource)等的方案。

MOM JMS 分布式 架构

3 Messaging

3.1 MOM

Message Oriented Middleware (MOM) is available from several vendors.

The MOM facilitates a loose coupling between producers and consumers and ensures

that message delivery is reliable (some include support for ACID properties, transactions,

etc.)

Messaging products implement a combination of the Mediator and Observer patterns.

The MOM acts as a Mediator between Colleagues, which in this case are the Subject(s)

and Observer(s) .

Messaging is asynchronous in nature but can also operate synchronously.

Producers always operate asynchronously - i.e. complete after message production.

Consumers can operate either:

synchronously (pull): Wait for message OR wait with timeout OR get next message if

available. N.B. the MOM client talks to the MOM server component via a network

connection. Polling the MOM server frequently could result in excessive network traffic

and/or MOM server load.

asynchronously (push): Register a message listener with the MOM, MOM pushes

messages as they arrive leaving the application free to do other things. N.B. not all clients

can support push, e.g. applet behind firewall.

The MOM can be used to implement a request/response mechanism (either

synchronously or asynchronously) but with the added benefits of scalability, reliability,

maintainability, etc.

3.2 Benefits of synchronous and asynchronous messaging

Synchronous messaging(client pull):

1. faster message acquisition - asynchronous may buffer messages.

2. client control - messages processed when client wants.

3. works with all MOM clients - some clients don t support push.

Asynchronous messaging(MOM push):

1. efficiency. MOM server pushes messages to client rather than the timed-poll of

synchronous. Timed-poll doesn t scale as it can lead to increased network traffic

and/or MOM server utilisation.

2. management. MOM automatically invokes register handler so the client is free to do

MOM JMS 分布式 架构

other things.

MOM JMS 分布式 架构

4 JMS基础概念

4.1 JMS规范

JAVA 消息服务(JMS)定义了Java 中访问消息中间件的接口。

JMS 只是接口,并没有给予实现,实现JMS 接口的消息中间件称为JMS Provider,

例如ActiveMQ。

4.2 术语

JMS Provider:实现JMS 接口的消息中间件;

PTP:Point to Point,即点对点的消息模型;

Pub/Sub:Publish/Subscribe,即发布/订阅的消息模型;

Queue:队列目标;

…… 此处隐藏:3507字,全部文档内容请下载后查看。喜欢就下载吧 ……

分布式应用学习笔记(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/130199.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)