当您的SpringCloud服务注册到注册中心后,可以将该服务在CSB发布,供消费方调用。您也可以订购并调用在CSB中开放的其它SpringCloud服务。
前提条件
- 已创建注册中心。
- SpringCloud服务已注册到注册中心。
条件与约束
- 目前仅支持Nacos、Eureka和EDAS注册中心三种注册中心。
- 由于注册中心可能在VPC内部,csbConsole无法直接访问,故CSB控制台上无法直接展示注册中心内已有的SpringCloud服务列表。
- 目前仅支持将SpringCloud服务开放为RESTFul,不支持开放为WebService。
发布SpringCloud服务
订购SpringCloud服务
订购SpringCloud服务和订购其它类型的服务没有差异,请参见订购服务。
调用SpringCloud服务
服务消费方可以通过RESTful和CSB SDK两种方式调用SpringCloud服务。
- 使用标准RESTful方式调用
说明 使用标准RESTful方式调用的Spring Cloud服务必须打开公开访问开关。
可以使用Postman发起调用请求,示例如下。
实例参数说明:
http://xx.xxx.xxx.xxx:8086/1.0.0/http2sc1
:URL格式为http://<CSB 服务访问IP>:<端口>/<CSB服务版本号>/<CSB服务名>
。/postFoo
:SpringCloud服务要求的path路径。/abc
:SpringCloud服务要求的path参数。
- 使用CSB SDK方式调用
与普通RESTful服务调用方法基本一致,请参见调用服务。包含以下区别:
- CSB服务访问地址为
http://<csbBroker的负载均衡地址>:8086/<CSB服务版本号>/<CSB服务名> + <springCloud本身要求的path和query参数>
。 - 可以省略HttpParameters.Builder的api()和version()设置。
使用标准RESTful方式调用的实例如下。
public void testHttp2SpringCloud() { HttpParameters.Builder builder = new HttpParameters.Builder(); builder.requestURL("http://xx.xxx.xxx.xxx:8086/1.0.0/http2sc1/postFoo/abc") .api("http2sc1") // 实例名称。 .version("1.0.0") // 服务版本。 .method("post") // 设置调用方式, get或post。 .accessKey("AK值").secretKey("SK值"); // 设置AccessKey ID和AccessKey Secret。 // 设置HTTP FORM表单请求参数。 builder.putParamsMap("name", "name1").putParamsMap("value", "123"); try { String ret = HttpCaller.invoke(builder.build()); } catch (HttpCallerException e) { e.printStackTrace(); } }
- CSB服务访问地址为