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群组内。
当服务要发布的目标实例不是当前实例时,可以使用级联发布。级联发布会将该服务通过级联的方式发布到所选的目标实例中。这种场景下,服务的接入端和服务的发布开放端分布在不同的实例上,称之为源实例和目标实例。根据预先定义的级联发布规则,在源实例和目标实例之间还可能存在中间实例,形成一条级联链路。
单实例发布与级联发布
- 如图中①所示,服务x发布在实例A上,被应用α(在实例A上订阅后)调用消费。
- 如图中②所示,服务y发布在实例B上,被应用β(在实例B上订阅后)调用消费。
- 如图中③所示,服务y在实例B接入,通过级联链路在实例A上发布,被应用α(在实例A上订阅后)通过实例A、B级联调用消费。需要预先定义实例B到A的级联链路,包括实例B对实例A的访问授信。