微服务框架ServiceComb源码解析之一——Consumer发起request请求
Consumer的rest client
consumer发送请求,主要是用Spring的RestTemplate,ServiceComb做了一层包装,兼容ServiceComb格式的uri,如cse://business/business/v1/channel/news/subscribe。包装类主要的类图如下,
文章图片
以servicecomb-java-chassis项目下的demo例子,
文章图片
【微服务框架ServiceComb源码解析之一——Consumer发起request请求】如下是把cse://格式的uri调用过程中关键方法,
class ConsumerMain:
new Consumer().invokeBusiness("cse://business/business/v1", new ChannelRequestBase());
...
class Consumer:
ResponseEntity response = template.postForEntity(url, entity, AppClientDataRsp.class);
...
class RestTemplateWrapper:
getRestTemplate(url).postForEntity(url, request, responseType, uriVariables);
...
class RestTemplate:
(ResponseEntity)nonNull(this.execute(url, HttpMethod.POST, requestCallback, responseExtractor, uriVariables));
this.getUriTemplateHandler().expand(url, uriVariables);
...
abstract class AbstractUriTemplateHandler:
public URI expand(String uriTemplate, Object... uriVariables) {
URI url = this.expandInternal(uriTemplate, uriVariables);
return this.insertBaseUrl(url);
}
...
class CseUriTemplateHandler:
createUri(uriTemplate, uriComponents);
推荐阅读
- android第三方框架(五)ButterKnife
- 基于微信小程序带后端ssm接口小区物业管理平台设计
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- CET4听力微技能一
- 微习惯复盘
- 社保代缴公司服务费包含哪些
- 员工的微信朋友圈是公司的宣传阵地吗()
- 私有化轻量级持续集成部署方案--03-部署web服务(下)
- FBI怎么和恐怖分子谈判
- 探索免费开源服务器tomcat的魅力