大家好,我是IT修真院上海分院第6期学员,一枚正直善良的JAVA程序员。
今天给大家分享一下,修真院官网JAVA任务拓展中的Spring Cloud的RestTemplate + ribbon。
一、背景介绍
Spring Cloud简介
Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。
另外说明spring cloud是基于springboot的,所以需要开发中对springboot有一定的了解。
微服务简介
什么是“微服务架构”呢?简单的说,微服务架构就是将一个完整的应用从数据存储开始垂直拆分成多个不同的服务,每个服务都能独立部署、独立维护、独立扩展,服务与服务间通过诸如RESTful API的方式互相调用。
今天我希望通过一个简单的案例带小伙伴们来了解下如何使用Spring Cloud来实现服务治理。
二、知识剖析
服务治理
Spring Cloud应用中可以支持多种不同的服务治理框架,比如:Netflix Eureka、Consul、Zookeeper。在Spring Cloud服务治理抽象层的作用下,我们可以无缝地切换服务治理实现,并且不影响任何其他的服务注册、服务发现、服务调用等逻辑。
Spring Cloud Eureka
Spring Cloud Eureka是Spring Cloud Netflix项目下的服务治理模块。
使用Eureka创建“服务注册中心”
创建“服务提供方”
下面我们创建提供服务的客户端,并向服务注册中心注册自己。
创建“服务消费者”
Spring cloud有两种服务调用(消费)方式,一种是ribbon+restTemplate,另一种是feign。
三、常见问题及解决方案
feign和ribbon + RestTemplate的区别
Feign是Spring Cloud Netflix库,用于在基于REST的服务调用上提供更高级别的抽象。
使用Feign时,我们在客户端编写声明式REST服务接口,并使用这些接口来编写客户端程序。开发人员不用担心这个接口的实现。这将在运行时由Spring动态配置。通过这种声明性的方法,开发人员不需要深入了解由HTTP提供的HTTP级别API的细节的RestTemplate。
也就是说FeignClient简化了请求的编写,且通过动态负载进行选择要使用哪个服务进行消费,而这一切都由Spring动态配置实现,我们不用关心这些,只管使用方法即可。
四、编码实战
五、拓展思考
dubbo和springcloud的区别?
dubbo由于是二进制的传输,占用带宽会更少springCloud是http协议传输,带宽会比较多,同时使用http协议一般会使用JSON报文,消耗会更大。
dubbo的开发难度较大,原因是dubbo的jar包依赖问题很多大型工程无法解决springcloud的接口协议约定比较自由且松散,需要有强有力的行政措施来限制接口无序升级。
dubbo的改进是通过dubbofilter,很多东西没有,需要自己继承,如监控,如日志,如限流,如追踪。springcloud自己带了很多监控、限流措施。
两者从开发、维护、改进等等方面还有很多区别,大家有兴趣可以自己搜索一下。
六、参考文献
https://blog.csdn.net/forezp/article/details/70148833
七、更多讨论
大家做任务八和九的时候可以试试使用Spring Cloud。
PTT连接:PTT
视频连接:视频
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~
技能树.IT修真院
“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。
这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~
直接点击此连接:http://www.jnshu.com/login/1/10985551