带你读《云原生应用开发 Operator原理与实践》第二章 Operator 原理2.2Client-go 原理(十五)-阿里云开发者社区

开发者社区> 人民邮电出版社> 正文

带你读《云原生应用开发 Operator原理与实践》第二章 Operator 原理2.2Client-go 原理(十五)

简介: 带你读《云原生应用开发 Operator原理与实践》第二章 Operator 原理2.2Client-go 原理
+关注继续查看

(3)       Transport的使用案例

Client-go源码 Rest包中通过 RESTClientFor返回一个 RESTClient对象,RESTClient对 KubernetesAPIServer的 RESTfulAPI 的访问进行了封装抽象。RESTClientFor的实现见代码清单 2-53。

funcRESTClientFor(config*Config)(*RESTClient,error){

...

 

transport,err:=TransportFor(config)

iferr!=nil{

returnnil,err

}

 

varhttpClient*http.Client

iftransport!=http.DefaultTransport{


httpClient=&http.Client{Transport:transport}

ifconfig.Timeout>0{httpClient.Timeout=config.Timeout

}

}

 

...

 

restClient,err:=NewRESTClient(baseURL,versionedAPIPath,clientContent,rateLimiter,httpClient)

iferr==nil&&config.WarningHandler!=nil{restClient.warningHandler=config.WarningHandler

}

returnrestClient,err

}

 

funcTransportFor(config*Config)(http.RoundTripper,error){cfg,err:=config.TransportConfig()

iferr!=nil{

returnnil,err

}

returntransport.New(cfg)

}

 

以上代码是通过函数 RESTClientFor传入客户端配置参数 Config来创建 RESTClient的,函数通过调用TransportFor函数创建了一个 Transport,在上述代码的最后一行,可以看出该函数是通过调用Transport包中的 New函数创建了 http.RoundTripper。TransportFor函数通过将客户端 Config配置转化为 Transport包中的 Config类型并调用New函数创建 http.Transport。通过 New函数实现了底层 HTTP不同请求的封装,实现 了 HTTP客户端的安全连接。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
NLP之TopicModel:朴素贝叶斯NB的先验概率之Dirichlet分布的应用
NLP之TopicModel:朴素贝叶斯NB的先验概率之Dirichlet分布的应用
11 0
阿里巴巴的云原生与开发者 | 10月15号栖夜读
今天的首篇文章,讲述了 : 利用云原生技术构建应用简便快捷,部署应用轻松自如,运行应用按需伸缩。如今,云原生已经成为下一代技术发展的趋势。在 2019 杭州云栖大会开发者峰会上,阿里巴巴资深技术专家李响就为大家分享了阿里巴巴的云原生技术与开发者的那些故事。
2883 0
数十万应用结点全息监控,ARMS新上线的应用监控神器到底有多牛?
就在不久前,2017年阿里双11刚刚创下电商史上的新销售奇迹,24小时交易金额达1682亿,每秒交易创建峰值325000,每秒支付峰值256000!在这个海量交易背后是数十万个结点规模的应用的高效运行。
6688 0
KubeMeet 杭州站报名:「云原生应用管理」开发者专场来啦!
4月17日杭州,云原生基金会CNCF和阿里巴巴联合主办的「KubeMeet 开发者沙龙·云原生应用管理专场」来啦!这里有Kubernetes 生态开发者都在关注的开源项目,以及阿里巴巴、携程、第四范式的一线云原生落地实践。赶紧报名吧!
782 0
extjs desktop 应用项目:教学资源库云平台
采用extjs desktop  界面截图网址: http://www.linbsoft.com/LinBSoft/zykpreview/ demo网址: http://demo.
950 0
【云开发小课】云原生体系下Serverless弹性探索与实践
篇内容分享了云开发小课的云原生体系下serverless弹性探索与实践。
111 0
472
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载