首页 > 其他分享 >企业集成模式-第十章

企业集成模式-第十章

时间:2023-11-26 19:44:48浏览次数:30  
标签:集成 网关 调用 消费者 映射器 第十章 模式 消息 消息传递

十、消息传递端点

10.1 引言

1)发送和接收模式

某些端点模式即适用于发送者,也适用于接收者。它们通常涉及如何把应用与消息传递系统联系起来。

封装消息传递代码:大多数应用的代码在编写时没有考虑消息传递问题。当应用需要与其他程序集成时,应该由一个很瘦的代码层实现应用的集成功能。当采用消息传送实现集成时,该代码瘦层就是消息传递网关,它把应用与消息传递系统连接起来。

数据转换

外部控制的事务

2)消息消费者模式

同步或异步的消费者:开发人员可选择使用轮询消费者或事件驱动的消费者

消息分配与消息抓取

接受所有的消息或过滤消息

断开连接时仍能订购

幂等性

3)消息端点主题(略)

10.2 消息传递网关

如何把对消息传递系统的访问封装起来,使之独立于应用的其他部分?

大多数定制应用都通过开发商提供的 API来访问消息传递基础设施。尽管不同开发商提供的 API风格不同,但是这些库有类似的功能,如“打开通道”、“创建消息”和“发送消息”。
image
使用消息传递网关类把特定于消息传递的方法调用包装起来,向应用提供领域相关的方法。

1)链接网关

创建多层消息传递网关很有好处。“较低层次”的消息传递网关只能抽出消息传递系统的语法,而保持一般的消息传递语义不变,如 SendMessage。
image

2)处理消息传递异常

3)生成网关

在很多情况下,可以根据外部资源提供的元数据生成消息传递网关代码。Web 服务就经常使用这种方法。几乎每个开发商或开放源代码的平台都提供了类似 wsdi2java 的工具,它能连接由外部 Web 服务提供的 Web 服务描述语言 (Web Service Description Language,WSDL)。这个工具会生成 Java(或 C#,或你需要的某种语言)类,把所有与 SOAP 相关的处理封装起来,提供一个简单的函数调用接口。

4)使用网关用于测试

stub 桩

10.3 消息传递映射器

如何实现领域对象与消息传递基础设施之间的数据传递,同时保持它们之间的相互独立?
image
创建一个单独的消息传递映射器,其中包含消息传递基础设施与领域对象之间的映射逻辑。对象和基础设施都不需要知道消息传递映射器的存在。

消息传递映射器能访问一个或多个领域对象,并把它们转换为消息通道所要求的消息。它还实现了相反的功能,能根据到来的消息创建或更新领域对象。由于消息传递映射器实现为一个单独的类,这个类同时引用了领域对象和消息传递层,因此领域对象与消息传递层都不了解对方,甚至不知道消息传递映射器的存在。

10.4 事务性客户端

ACID

10.5 轮询消费者

image

10.6 事件驱动的消费者

轮询消费者的缺点是:通道为空时,消费者将阻塞线程,而且/或者当消费者轮询尚未到达的消息时,将消耗处理时间。基于轮询,客户端能控制消费的速度,但是没有可消费的消息时,就会造成资源的浪费。

应用应当使用事件驱动的消费者,当消息传输到通道中时,事件驱动消费者能自动处理消息。

10.7 竞争消费者

10.8 消息分派器

10.9 选择性消费者

10.10 持久订购者

10.11 幂等接收者

10.12 服务激励器

应用应该如何设计这个服务,从而既能通过各种消息传递技术调用,也能通过非消息传递技术调用?

服务激励器既可以是单向的(只有请求),也可以是双向的(请求/应答)。服务可能非常简单,只是一个方法调用(同步而且非远程),可能是服务层的一部分[EAA]。激励器既可以硬编码,从而始终调用同一个服务,也可以使用反射调用由消息指定的服务。激励器处理所有的消息传递细节,并像其他客户端一样调用服务,因此服务甚至不知道对它的调用是通过消息传递进行的。

标签:集成,网关,调用,消费者,映射器,第十章,模式,消息,消息传递
From: https://www.cnblogs.com/lhxBlogs/p/17857778.html

相关文章

  • springboot+vue持续集成
    Jenkins持续集成项目部署参考资料:见参考资料详情项目实战成长:见百度网盘jenkins视频资料地址参考:https://www.bilibili.com/video/BV1kJ411p7mV?spm_id_from=333.999.0.0整体流程:先下载tomcat,到http://tomcat.apache.org/index.html解压tomcat,并重命名Linux环境安......
  • SQL Server使用Windows身份验证模式安装后,重新设置SA密码
    首次安装SQLServer使用Windows身份验证模式安装后,要重新设置自带用户SA的密码(1)右键数据库--》属性(2)安全性-->勾选“SQLserver和Windows身份认证模式(S)”(3)数据库下“安全性”-->“登录名”-->“sa”-->"属性"(4)直接输入需要设置的密码(5)给sa用户设置权限,在“服务器角色”设置为public......
  • 实验10:组合模式
    实验10:组合模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解组合模式的动机,掌握该模式的结构;2、能够利用组合模式解决实际问题。 [实验任务一]:组合模式用透明组合模式实现教材中的“文件夹浏览”这个例子。实验要求:1. 类图如下  2. 源代码以及......
  • 实验9:桥接模式
    实验9:桥接模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解桥接模式的动机,掌握该模式的结构;2、能够利用桥接模式解决实际问题。 [实验任务一]:两个维度的桥接模式用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。实验要求......
  • Centos7 系统 /etc/fstab配置文件中文件系统类型错误导致进入紧急模式如何解决
    在格式化分区是我选择的ext4文件格式对分区sdc2进行了格式化,但是在写入配置文件是选择的文件格式是xfs,这导致了我的虚拟机进入系统时直接进入了紧急模式输入root密码进行维护,可以发现出现了命令窗,由于知道错误原因,所以可以直接从根源入手打开配置文件vim/etc/fstab我对设备......
  • 实验6:原型模式
    实验6:原型模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解原型模式的动机,掌握该模式的结构;2、能够利用原型模式解决实际问题。 [实验任务一]:向量的原型用C++完成数学中向量的封装,其中,用指针和动态申请支持向量长度的改变,使用浅克隆和深克隆复制向量类,比......
  • 实验7:单例模式
    实验7:单例模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解单例模式的动机,掌握该模式的结构;2、能够利用单列模式解决实际问题。 [实验任务一]:学号的单一仿照课堂的身份证的例子,实现每个同学仅有一个学号这一问题。实验要求:1. 画出对应的类图;  ......
  • 实验8:适配器模式
    实验8:适配器模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解适配器模式的动机,掌握该模式的结构;2、能够利用适配器模式解决实际问题。 [实验任务一]:双向适配器实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。实验要求:1. 对应的类图如下;  ......
  • 设计模式相关复习短篇
    1--设计模式基本概念设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码,让代码更容易被他人理解、提高代码的可靠性。2--设计模式基本要素模式名称,问题,解决方案,效果模式别名,模式的分类,模式的适用性,模式角色,模式实例,模......
  • springBoot + 工厂模式 实现 快递鸟、顺丰和快递100的物流查询
    前言:在SpringBoot中实现快递鸟、顺丰和快递100的物流查询功能通常需要与它们提供的API进行交互。当然使用他们的API我们是需要申请和注册,从而去拿到key来进行调用。所以为注册的必须先进行注册,以下是他们的官网地址,可以快捷到达。快递鸟官网:快递鸟-快递查询接口_免费快递......