码迷,mamicode.com
首页 > 其他好文 > 详细

点对点消息传送模型

时间:2014-07-01 14:21:34      阅读:267      评论:0      收藏:0      [点我收藏+]

标签:java   使用   问题   for   服务器   时间   

点对点(p2p)消息传送模型

在p2p模型中,生产者成为发送者,而消费者成为接收者。点对点最重要的特性如下:

  • 消息通过成为队列的一个虚拟通道来进行交换。
  • 每条消息仅会传送给一个接收者。可能会有多个接收者在一个队列中侦听,但是每个队列中的消息只能被队列中的一个接收者所消费。
  • 消息存在先后顺序。一个队列会按照消息服务器将消息放入队列中的顺序,把它们传送给消费者。当消息已被消费时,就会从队列中将它们删除。(除非使用了消息优先级外)
  • 生产者和消费者之间没有耦合。接收者和发送者可以在运行时动态添加,这使得系统的复杂度随着时间而增长或降低。

供p2p队列使用的消息,既可以是持久性的,也可以使非持久性的。消息还可以有一个优先级和一个有效期。

点对点消息传送模型有两种类型:异步即发即弃(fire-and-forget)处理和异步请求/应答处理。

  • 异步即发即弃,消息生产者向某个队列发送一条消息,而且它并不会期望接收到一个相应(至少是不是立刻接收到相应)
  • 异步请求/应答处理,消息生产者向队列发送一条消息,然后阻塞等待应答队列,该应答队列正在等待来自接收者的相应。

使用点对点消息传送模型的场景:

  • 每条消息都很重要
  • 接受者对某个指定的消息进行一次而且仅仅一次处理。它所提供的QueueBrowser允许JMS客户端对队列进行快照(Snapshot),以查看正在等待被消费的消息。
  • 需要再组件之间进行同步消息,而那些组件确实不同的编程语言编写的,或者在不同的技术平台上实现的。
  • 使用基于消息的负载均衡,可以让服务器端的组件进行更大的吞吐量,特别是对于同构组件(也就是,Java到Java)更是如此。引入p2p模型,可以在体系结构中添加某种程度的并发处理,而不需要处理线程或者Java并发问题。

点对点消息传送模型,布布扣,bubuko.com

点对点消息传送模型

标签:java   使用   问题   for   服务器   时间   

原文地址:http://www.cnblogs.com/xuelu/p/3818101.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!