CSB用于实现专有云和混合云场景下的跨系统、跨协议的服务互通。主要针对需要对系统间服务访问和对外开放进行管理和控制,包括安全授权、流量限制。 API 消费者,即代表 API 消费方应用在 CSB 上订购服务和管理订购的用户。 API 消费凭证,API 消费方应用需要使用 API 消费凭证(简称凭证)来调用 CSB 上开放的服务 API。API 消费者使用凭证来订购服务 API。凭证具体表现为一对 Access Key ID 和 Access Key Secret。在 API 调用时用来做签名信息计算,CSB 接收到 API 调用请求时对签名信息做验证。API 消费者可以创建多个 API 消费凭证,每个凭证可被一个或一组 API 消费方应用使用,通常可以把凭证作为 API 消费方应用的分组。 CSB 实例 每一组 CSB 服务总线节点(Broker)集群被视为一个独立的 CSB 实例,通常负责一个业务域内能力的对外开放,也可以发布来自外部的服务 API 给内部使用。 每个用户最多创建 5 个 CSB 实例,如有特殊需求,请联系 CSB 技术支持人员。 如果需要公网地址请将 SLB 绑定弹性公网 IP。 CSB 群组,一个 CSB 群组就是多个 CSB 实例的集合,这些 CSB 实例通过同一个 CSB 管理中心管理,使用同一套用户账号系统。 一个 CSB 群组内的 CSB 实例,对另一个 CSB 群组来说,就是一个“外部”实例。群组间的互通,例如典型的场景,企业自有数据中心内的 CSB 和阿里云上的 CSB 互通,需要各自的 CSB 群组管理员认可对方的账号并进行访问授权。 用户、实例、群组 在 CSB 中,用户是对等的,没有从属概念,只有授权关系。 每个用户都可以拥有属于自己的一个或多个 CSB 实例,具有这些 CSB 实例的管理员权限。可以控制其它用户对这些 CSB 实例的访问使用权限,即在该实例上发布服务、订阅服务,甚至实例管理的权限。每个用户和他所拥有的所有 CSB 实例,即构成该用户的 CSB 租户域。 用户在取得某个 CSB 实例的访问使用权限后,即可以在该实例上发布或者订阅服务。服务的发布者就是该服务的拥有者,可以审批授权其它用户对该服务的订阅申请。 云服务总线 CSB 有群组的概念,对应于相对隔离的管理环境。例如企业的内部数据中心和阿里云公共云的某个地域(region)即是不同的群组。相应地,也有 CSB 群组管理员 的角色,与 CSB 实例管理员不同,只有群组管理员可以应用户请求创建 CSB 实例。例如在阿里云公共云环境中,CSB 产品支持团队即是该群组的管理员。 级联式服务发布 级联发布,针对复杂多环境多归属打通场景,云服务总线提供级联发布管理机制,即跨 CSB 实例的服务发布,也就是在一个 CSB 实例上接入已有服务,而在另外一个 CSB 实例上开放出来,供订阅者消费。级联链路可以跨 2 个或更多 CSB 实例,这些 CSB 实例可以归属不同的用户,甚至位于不同的 CSB 群组内。级联发布的链路需要群组管理员定义,指明连通链路中各个 CSB 实例的先后链接关系。例如 CSB 实例 A 上接入的服务通过实例 B 作为中转,最终在 CSB 实例 C 上开放,就构成了一条经由实例 A 到 B 到 C 的 级联链路。
实例发布与访问授权.png
实例发布与访问授权,已开通 CSB 服务的阿里云用户,可以申请创建归属用户的 CSB 独占实例。CSB 用户可以申请使用他人的实例,需要拥有者审批授权。被申请的实例只有处于公开模式时,才可以被搜索和申请,否则就只能由实例的拥有者主动授权给其它用户使用该实例。
服务发布与访问授权.png
用户在取得某个 CSB 实例的访问使用权限后,才可以在该实例上发布服务,服务发布有时也需要控制管理,CSB 实例的拥有者可以指定该实例上的服务发布审核人,可以是实例拥有者自己,也可以是已授权可访问该实例的普通用户。指定服务发布审核人后,所有在该实例上的服务发布都要经过该审核人的批准后才会生效。用户在取得某个 CSB 实例的访问使用权限后,可以在该实例上订阅服务。如果被订阅的服务不是缺省自动授权的模式,该订阅需要服务发布者审核批准后才会生效。 CSB 支持常用协议服务的接入和开放(HTTP/HSF/Dubbo/Web Service),可扩展支持定制化的协议转换。 服务接入,在 CSB 上注册某个服务并且提供足够的信息让 CSB 可以访问这个已有的服务。 服务开放,把一个已接入的服务在某个 CSB 上提供对应的不同协议的 API 调用入口。 缺省支持的服务接入、开放协议如下表所示:
支持的接入协议类型 | 对应支持的协议开放类型 |
---|---|
HTTP | Restful API、HTTP Open API、Web Service |
HSF | HTTP Open API、Web Service、HSF 级联 |
Dubbo | HTTP Open API、Web Service |
Web Service | HTTP Open API、Web Service 级联 |
CSB 支持数组、列表、集合类型的服务参数,也可以定义复杂的多级参数结构。 在协议转换外,CSB 还支持接入接口和开放接口的参数映射、是否可选、缺省值以及在开放接口上是否可见的设置。还将支持定制开发的参数映射机制(Groovy 脚本)。 服务控制,支持具体用户消费凭证到具体服务的访问限流设置,支持实例级(即服务器级)的总体访问流量保护,支持实例级(即服务器级)和服务级的基于IP的黑白名单设置(如果黑白名单同时存在,优先黑名单,并且可以同时缺省设置)。 对于级联服务的要求,必须由管理员预先定义正确的级联发布规则,才可以在发布服务时候看到多个”服务发布目标实例”。需要在要发布的目标实例上预先创建一个服务组,该服务组名称必须与当前发布的服务(源服务)所选择的服务组相同。这么做的目的是可以在目标实例上根据这个服务组(及这个组的所属用户)找到这个级联服务。