CSB支持发布后端已有服务和导入Swagger API两种服务发布方式。当您发布后端已有服务时,可能会有不同的需求和场景,CSB提供了普通发布、路由发布和级联发布3种方式以满足您不同需求和场景。

普通发布

普通发布

后端只有一个服务接入时,可以使用普通发布在CSB上同时以相同或不同类型的接口协议开放。例如一个后端的HSF服务可以在CSB上同时开放成RESTful、WebService和EDAS HSF(透传)三个不同类型的服务入口。

目前,CSB后端接入RESTful、HSF、WebService、DUBBO类型的服务都可以开放成RESTful或者WebService,接入的SpringCloud、JDBC类型的服务只可以开放成RESTful。此外还支持Dubbo和EDAS HSF类型服务的透传开放。

路由发布

路由发布

当后端有多个相同或不同类似服务接入时,可以使用路由发布。这些服务以同一个RESTful或WebService类型接口开放,被访问时,CSB会根据路由规则将请求转发到后端接入的不同服务。

级联发布

级联发布

针对复杂的多环境、多归属互通场景,云服务总线提供级联发布管理机制,即跨CSB实例的服务发布,也就是在一个CSB实例上接入已有服务,而在另一个CSB实例上发布出来,供订阅者消费。

级联链路可以跨2个或更多CSB实例,这些CSB实例可以归属不同的用户,甚至位于不同的CSB群组内。

当服务要发布的目标实例不是当前实例时,可以使用级联发布。级联发布会将该服务通过级联的方式发布到所选的目标实例中。这种场景下,服务的接入端和服务的发布开放端分布在不同的实例上,称之为源实例和目标实例。根据预先定义的级联发布规则,在源实例和目标实例之间还可能存在中间实例,形成一条级联链路。

说明 级联发布的链路并不是随意的,需要群组管理员定义有方向的连通链路,指明链路中各个CSB实例的先后连接关系。例如CSB实例A上接入的服务通过实例B作为中转,最终在CSB实例C上开放,就构成了一条经由实例A到B到C的级联链路。级联服务经过的CSB实例在级联链路方向上需要进行实例间授信。级联链路的定义和管理,包括实例间授信操作,都由群组管理员,即CSB技术支持人员完成。

单实例发布与级联发布

单实例发布与级联发布示意
  • 如图中所示,服务x发布在实例A上,被应用α(在实例A上订阅后)调用消费。
  • 如图中所示,服务y发布在实例B上,被应用β(在实例B上订阅后)调用消费。
  • 如图中所示,服务y在实例B接入,通过级联链路在实例A上发布,被应用α(在实例A上订阅后)通过实例A、B级联调用消费。需要预先定义实例B到A的级联链路,包括实例B对实例A的访问授信。