美文网首页
五分钟搞懂spring-cloud-square

五分钟搞懂spring-cloud-square

作者: 程序员欣宸 | 来源:发表于2021-10-29 08:24 被阅读0次

    欢迎访问我的GitHub

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos

    初识spring-cloud-square

    • 2021年4月13日,spring在官方博客上宣布,一个名为<font color="blue">Spring Cloud Square</font>的项目正式发布首个公开可用的里程碑版本:
    在这里插入图片描述
    • 热门视频网站于2021年7月7日发布一段介绍<font color="blue">Spring Cloud Square</font>的视频,如下图,大佬Josh Long给我们演示了如何用Spring Cloud Square将SpringBoot应用的HTTP客户端做得更智能,B站搜索<font color="blue">spring-cloud-square</font>即可
    在这里插入图片描述
    • 在介绍spring-cloud-square之前,咱们先去了解一下square,会对咱们后面的理解有很大帮助,网站是:https://square.github.io,如下图,这是个开源网站,向社区贡献了很多库,到底有哪些库呢?点击下图红框中的Java试试:
    在这里插入图片描述
    • 如下图,Java库还真不少呢,红框中的两位:okhttp和retrofit,都是大名鼎鼎:
    在这里插入图片描述
    • 至此,聪明的您应该猜到了:spring-cloud-square和上面提到的square有关,具体的说应该是和square的java库有关,例如将okhttp和retrofit与SpringBoot的自动装配结合,玩出点花样来

    • 另外关键字还有<font color="red">spring-cloud</font>,再加上okhttp和retrofit都和网络访问有关,spring-cloud-square的身份就更具体了:借助square的库,方便Spring Cloud环境中的服务调用!

    提前小结

    • 为避免因废话太多而被聪明的您抛弃,现在就小结什么是spring-cloud-square:
    1. spring-cloud-square的重点是<font color="red">集成</font>
    2. Spring Cloud LoadBalance提供了根据服务名获取对应IP和端口的能力
    3. OkHttpClient和Retrofit是远程访问的框架
    4. Spring Cloud LoadBalance和OkHttpClient组合的话,在用OkHttpClient远程访问的时候可以用服务名做地址了,具体的IP和端口由Spring Cloud LoadBalance负责获取
    5. Spring Cloud LoadBalance和Retrofit组合,也是同样的道理
    6. 于是,Spring官方就推出了上述组合,用AutoConfig再加少量代码(例如OkHttpClient添加Interceptor,功能是将服务名替换成IP和端口),将上述关键技术做组合,再包装成jar,例如spring-cloud-square-okhttp.jar就是 Spring Cloud LoadBalancer与OkHttpClient的组合
    7. 咱们开发SpringBoot应用时,直接依赖spring-cloud-square-okhttp.jar,再添加少量代码(如Builder实例化),就能方便的远程调用了;
    8. 这种组合型jar包,Spring一口气做了三个,然后起个名字叫做<font color="red">spring-cloud-square</font>,然后,您爱用哪个就用哪个
    9. 咱们开发SpringBoot应用时,直接依赖spring-cloud-square-okhttp.jar,再添加少量代码(如Builder实例化),就能方便的远程调用了;
    • 看到这里,聪明的您应该明白了,spring-cloud-square原来这么简单,只是将注册中心和和网络工具集成,为应用开发提供了一些辅助而已,实际上看过spring-cloud-square源码之后也确实如此,不过spring-cloud-square目前还只是孵化项目,由于Spring技术栈在不断演进,相信它会越来越符合官方的描述:Smart,做更智能的HTTP客户端

    • 接下来再看看spring-cloud-square提供的具体的能力有哪些

    spring-cloud-square的具体能力

    • 如下图所示,spring-cloud-square一共有三种能力,下图每一个红色背景的节点代表一种具体的能力,稍后会详细说明:
    在这里插入图片描述
    • okhttp类型容易理解,只有一个jar文件:spring-cloud-square-retrofit.jar,用在最简单的请求响应场景

    • retrofit的好处很多(简洁易用,解耦,扩展性强,可搭配多种Json解析框架(例如Gson),支持RxJava),就不在本文展开了,博览群书的您应该记得,retrofit无法独立完成网络操作,其底层还要依赖更加基础的库,这个特点在spring-cloud-square中也体现出来了:和okhttp搭配是常见的经典组合(安卓开发的同学一定很熟悉),或者和webflux搭配,用在响应式异步非阻塞场景;

    • 看到这里,聪明的您应该得出一个结论:<font color="red">欣宸废话太多...</font>

    • 您说的没错,下一篇咱们进入实战环节,写代码体验spring-cloud-square,欣宸原创,必不会辜负您的期待

    你不孤单,欣宸原创一路相伴

    1. Java系列
    2. Spring系列
    3. Docker系列
    4. kubernetes系列
    5. 数据库+中间件系列
    6. DevOps系列

    欢迎关注公众号:程序员欣宸

    微信搜索「程序员欣宸」,我是欣宸,期待与您一同畅游Java世界...
    https://github.com/zq2599/blog_demos

    相关文章

      网友评论

          本文标题:五分钟搞懂spring-cloud-square

          本文链接:https://www.haomeiwen.com/subject/kzxialtx.html