wso2 ——(2)esb 基本组件介绍

2024-03-07 10:18
文章标签 组件 介绍 基本 esb wso2

本文主要是介绍wso2 ——(2)esb 基本组件介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 WSO2 ESB简介

WSO2 ESB是一个快速、轻量级、100%开源的ESB基于Apache Synapse和Apache Axis2项目构建。支持协议转换、消息路由、服务编排、服务注册、容错、负载均衡、集群配置等功能。

WSO2 ESB是基于WSO2Carbon平台的(OSGi框架),包含许多功能和组件,可通过简单的添加删除来定制化ESB

1.1 架构

1.1.1 消息架构

从消息处理角度介绍ESB架构,pipe组件的顺序不是固定的。

 

(1)一个应用发送消息到ESB

(2)消息被transport接收。

(3)Transport通过消息管道发送消息,消息管道进行一些服务质量的处理,如安全、可靠消息传输等。两种实现方式:(1Mediating Messages(一个单独的 pipe)。(2Proxy Services(把pipes分到不同的代理服务)。

(4)消息转换和路由都可以被认为是一个独立的单元。WSO2 ESB称这个为中介框架。有些转换发生在路由之前,有些发生在路由之后。这部分由Synapse实现。

(5)然后消息根据目的地注入到相应的管道,再次进行服务质量的确定。

(6)Transport层负责ESB所需的传输协议的转换。

这个图显示了一个请求如何通过ESB传输到实际的端点,响应处理是相反的过程。有其他的一些模块像 tasksevents没有显示在图中,所有这些组件通过WSO2 ESB 控制台进行管理和监控。

1.1.2 组件架构

从构件组成角度介绍ESB架构。

 

 

1.2 概念

1.2.1 Transports

WSO2 ESB 支持所有广泛使用的传输协议,如HTTP, HTTPS, POP, IMAP, SMTP, JMS, AMQP, FIX, TCP, UDP, FTP, FTPS, SFTP, CIFS, MLLP, SMS. Transport负责传输指定格式的消息。一个新的传输协议使用Axis2传输框架可以轻松地被添加和插入到ESB中。

Transport包含两个组件:

(1)Message builders:根据内容类型识别消息并转化为XML格式。每一种内容类型都有相应的Message buildersWSO2 ESB包含基于文本的Message builders和基于二进制的Message buildersA->XMLB->XML……)。

2Message formatters:与Message builders相反。XML格式的消息转化为传到Transport前消息的格式(XML->AXML->B……)

可以使用axis2框架实现新的Message buildersMessage formatters

参阅协议转换(Working with Transports

1.2.2 Endpoints

Endpoints代表一个后台服务,我们需要为ESB调用的每一个后台服务定义一个endpointEndpoint可以被指定为address endpointWSDL endpointload balancing endpointEndpoint是独立于传输协议的。同一个endpoint可以使用多种协议。当你配置sequence或者proxy service处理incoming消息时,需要指定所用的transport和消息送达的endpoint

参阅端点(Working with Endpoints

<endpoint>

      <address uri="http://localhost:9000/services/SimpleStockQuoteService"

                  format="soap11"/>

</endpoint>

注:format - endpointmessage format ,可用的值有:

[format="soap11|soap12|pox|get"]

· Leave As-Is - 消息不转换.

· SOAP 1.1 - 转换消息为SOAP 1.1.

· SOAP 1.2 - 转换消息为SOAP 1.2.

· Plain Old XML (POX) - 转换消息为plain old XML format

· Representational State Transfer (REST) - Transforming to HTTP Get Request

· GET

1.2.3 Proxy Services

代理服务是ESB上的虚拟服务,可以实现多个实际服务的无缝集成。收到消息在被送达给定endpoint前可有选择的进行处理,不改变现有的服务而对服务进行必要的转换或增加其他额外的功能。代理服务接收和发送消息可以使用任何传输协议。

顾名思义,代理服务充当了WSO2 ESB服务的代理,通常是一个已经存在的服务端点,代理服务可以使用不同的传输方式。 默认情况下,代理服务使用HTTPHTTPS传输。在ESB的启动过程中,它会启动所有代理服务,并需要获取代理服务关联的WSDL。如果ESB可以在statup这些找不到的WSDL,它会忽略这样的服务,并继续启动。 

代理服务是一个虚拟的服务,实际功能由外部的已存在的服务提供。 跟真实的服务一样,代理服务也需要用一个wsdl文件来描述自己的服务内容;这个wsdl文件可以是针对当前代理服务专门编写的,也可以将外部的一个真实服务的wsdl文件作为自己wsdl

1)Proxy Service中的消息流

· 一个代理服务有两个主要的消息流:InSequence 和OutSequence。

· InSequence:代表的是消息进入ESB发送到endpoint前对流程进行编排的阶段。当客户端发送消息到Proxy Service,消息首先进入InSequence,所以在InSequence可以处理接收的消息并通过“send”mediator发送到后台服务(endpoint)。

· OutSequence:endpoint响应了消息,发回到ESB,ESB返回给客户端,这段流程编排默认通过outSequence实现。

· 如果出现错误,false sequence将被调用。


2)Receiving Sequence

· 上述部分我们理解了代理服务的基本消息流程,WSO2 ESB 4.x 版本以后引入了“receiving Sequence”的概念,用户可以指定一个外部请求从ESB进行处理得到响应的序列,也就是说用户可以指定接收请求的队列,而不是去默认的队列outsequence处理。通过“send”mediator指定receiving sequence

 

1.2.4 Mediators

WSO2 ESB中进行消息处理的基本组件,ESB中所有的消息流都是由一系列mediatos组成的。一个mediator包含一个输入消息、一个输出消息还有其他一些配置。根据配置进行输入消息的转换、替换等操作形成输出消息。

WSO2 ESB包含一系列的mediators提供不同的能力处理消息,提供一套完整的mediator库实现不同功能。自己也可以使用JavascriptingSpring等各种技术实现额外的功能。

参阅mediator

1.2.5 Sequences

Sequence由一系列mediators组成。分配到sequence的消息按顺序流经每一个mediator并进行相应的改变。参阅Sequences


1.2.6 QoS 

Qos组件提供可靠消息传递及安全性。

1.2.7 Registry

WSO2 ESB提供了一个内置的Registry存储各种配置和组件,像sequenceendpointserviceswsdls、配置文件等都可以存储在registry中,通过一个key引用(类似UNIX文件的路径)

两种方式可以访问registry,多数情况下直接从Carbon组件调用registry API,特殊情况下允许Apache Synapse配置访问。因此,ESB配置包含如下registry定义:

<registry provider="org.wso2.carbon.mediation.registry.WSO2Registry">

   <parameter name="cachableDuration">15000</parameter>

</registry>

当消息通过ESB,如果消息有对registry 资源的引用,ESBregistry获取信息并缓存为后续调用。缓存改善了消息处理的性能,但registry资源发生变化,缓存数据使用时不会得到反映。cachableDuration参数控制缓存数据的生命周期,过期后ESB将重新将数据放入registrycachableDuration增大可以改善消息处理的速度,减少可以确保registry的资源及时更新。

基于CarbonWSO2产品都有如下选项配置注册表空间:

(1)使用产品默认的空间;

(2)使用远程注册表示例,多个wso2产品共享注册表。配置参考Sharing Registry Space Among Multiple Products.

Carbon每个产品提供的注册表空间包含三个主要部分:

1Local repository:存储本地配置和运行时数据,不允许多个服务器共享。可以在/_system/local 目录下浏览。

2Configuration repository:存储指定产品配置和数据。允许相同产品的多个实例共享,如一个ESB集群共享ESB配置。可以在 /_system/config 目录下浏览。

3Governance repository:存储整个平台可共享的配置和数据。.包括serviceservice descriptionendpointdatasources等,可以再 /_system/governance目录下浏览。

 

注意:集成WSO2 ESB和一个新的注册表,必须实现org.apache.synapse.registry.Registry接口。

注册表具体使用参见Managing the Registry. 和Storing Various WSO2 Enterprise Service Bus Configurations.

这篇关于wso2 ——(2)esb 基本组件介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/783183

相关文章

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

Olingo分析和实践之OData框架核心组件初始化(关键步骤)

《Olingo分析和实践之OData框架核心组件初始化(关键步骤)》ODataSpringBootService通过初始化OData实例和服务元数据,构建框架核心能力与数据模型结构,实现序列化、URI... 目录概述第一步:OData实例创建1.1 OData.newInstance() 详细分析1.1.1

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

zookeeper端口说明及介绍

《zookeeper端口说明及介绍》:本文主要介绍zookeeper端口说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、zookeeper有三个端口(可以修改)aVNMqvZ二、3个端口的作用三、部署时注意总China编程结一、zookeeper有三个端口(可以

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

ModelMapper基本使用和常见场景示例详解

《ModelMapper基本使用和常见场景示例详解》ModelMapper是Java对象映射库,支持自动映射、自定义规则、集合转换及高级配置(如匹配策略、转换器),可集成SpringBoot,减少样板... 目录1. 添加依赖2. 基本用法示例:简单对象映射3. 自定义映射规则4. 集合映射5. 高级配置匹

c++中的set容器介绍及操作大全

《c++中的set容器介绍及操作大全》:本文主要介绍c++中的set容器介绍及操作大全,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录​​一、核心特性​​️ ​​二、基本操作​​​​1. 初始化与赋值​​​​2. 增删查操作​​​​3. 遍历方