zoukankan      html  css  js  c++  java
  • 消息传送机制基础

    近年来,系统的复杂性和先进性不断增长,对系统灵活性,可靠性,可伸缩性的要求更高,消息传送机制可以作为解决这种复杂问题的一种方式。

    jms发展:1999年推出,2002年推出jms1.1

    1.消息传送的优点:

    1. 异构集成:可以在完全不同的平台上实现应用程序和系统的服务调用,历史上的解决方案:FTP,人力拷贝,通过数据库共享数据,RPC,WebService(可靠性欠缺)
    2. 缓解系统瓶颈:只要某个进程跟不上对它访问请求的速度,就会产生瓶颈问题,例子:向漏斗中注水。使用消息传送机制时消息会先发送到一个消息传送系统,该系统将请求分发给多个消息侦听器组件
    3. 提高可伸缩性:引入多个消息接收者,以便并发处理更多的请求,但是要注意,能将中间件层扩展到什么程度,始终受到数据库这种实质性的限制
    4. 提高最终用户生产率:用户提起一个请求,并立即得到响应表示请求已被接收,用户此时可以做其他工作,当请求处理完毕,处理结果再回传给用户(用户图形界面,支付系统的异步调用),不过,它增加了系统的复杂性,好的架构师会始终寻找机会,在系统的不同方面采用异步形式(用户界面和系统之间,系统内部各组件之间)
    5. 体系结构灵活性和敏捷性:抽象和去耦合使得业务变化情况下,能快速和容易地替换组件和子系统

    2.企业消息传送

    SOA(Service-Oriented Architecture)面向服务架构的推出,促生了企业服务总线(Enterprise Service Bus)的新型消息传送产品

    集中式体系结构:

    消息服务器可以使一个分布式集群

    分散式IP组播结构:

    混合体系结构

    3.消息传送模型

    消息传送客户端称为jms客户端,消息传送系统称为jms提供者

    1. 点对点模型(p2p):允许jms客户端通过队列同步/异步发送/接收消息,基于拉取或基于轮询,消息生产者称为发送者(sender),消息消费者(receiver)称为接收者,它允许多个接收者侦听同一队列,但只有一个接收者接收消息
    2. 发布/订阅模型(Pub/Sub):消息会被发送到主题(topic)中,生产者称为发布者(publisher),消费者称为订阅者(subscriber),基于推送模型,消息自动向消费者广播

    4.jms API

    分为三部分,公共api,点对点api,发布/订阅api

    1. 公共api
    2. 点对点

      3.发布/订阅

     

    5.RPC和JMS

      1.远程过程调用(Remote Procedure Call)最成功的领域是构建3层或n层的应用程序,表示层和业务逻辑层通信,访问数据持久层

       特点:同步,紧密耦合

       所带来的缺点:同步降低了调用的效率,紧密耦合使得增加一个部件变得困难,子系统中出现的故障会导致整个系统的失效

      2.Jms特点:异步,松散耦合

       所带来的优点:异步方式无须等待响应;通过p2p和pub/sub模型以供集成灵活性;子系统故障不会影响整体可用性;“保存并转发(store-and-forward)”的机制:当消费者不可用时,消息服务器会将消息存入持久存储器中,当消费者恢复可用时,再把这些错过的消息传给它们,它保证了即使发生局部故障,预定消费者最终也会接收到这条消息。

  • 相关阅读:
    Asp.net导出Excel文件
    Ext.Net 使用总结之GridPanel中的选中行
    Ext.Net 使用总结之查询条件中的起始日期
    使用python crontab设置linux定时任务
    JSON Serialization/Deserialization in C#
    redis 基本数据类型-列表(List)
    redis 基本数据类型-字符串(String)
    使同一个server上不同port的django应用可在同一个浏览器上打开
    django server之间通过remote user 相互调用
    使用python实现短信PDU编码
  • 原文地址:https://www.cnblogs.com/qilong853/p/6550766.html
Copyright © 2011-2022 走看看