这里是修真院后端小课堂,每篇分享文从
八个方面深度解析后端知识/技能,本篇分享的是:
【什么是spring cloud?】
1.背景介绍
什么是spring cloud?
spring cloud是一个基于spring boot实现的微服务架构开发工具。
它为微服务架构中涉及的配置管理、服务治理、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、
分布式会话和集群状态管理等操作提供了一种简单的开发方式。
2.知识剖析
在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于http restful的。
Spring cloud有两种服务调用方式,一种是ribbon+restTemplate,另一种是feign。这里讲解下基于ribbon+restTemplate。
3.常见问题
配置文件 .properties如何配置
4.解决方案
网上教程都是.yml配置,它是以:进行文件分割和赋值,并且赋值的时候要多加一个空格。
而properties是以.分割,等号赋值
5.编码实战
注册中心
新建spring boot项目
注解
注解标明自己是EurekaServer
application配置文件,修改端口号(默认端口号8080,内嵌tomcat)
新建client,和上面过程一样
数据库数据和端口
ribbon负载均衡,SERVICE-HI等于两个web的ip和端口
ribbon轮询方式
6.扩展思考
dubbo和springcloud的区别
从项目的背景来看,Dubbo 国内用的公司挺多,国内影响力大,Spring Cloud 自然在国外影响力较大,所以这个来看不分伯仲了,毕竟都有大公司在使用。
从社区的活跃度来看,可以看下各自的Github托管项目来区分,Dubbo · GitHub与Spring Cloud · GitHub,从更新频率与更新时间来看 Spring Cloud 优于Dubbo,Dubbo基本不维护了。
从框架的完整度来看,Dubbo只是实现了服务治理(注册 发现等),而Spring Cloud下面有很多个子项目覆盖了微服务架构下的方方面面,服务治理只是其中的一个方面,一定程度来说,Dubbo只是Spring Cloud Netflix中的一个子集。如果选择Spring Cloud,基本上每个环节都已经有了对应的组件支持,可能有些也不一定能满足你所有的需求,但是其活跃的社区与快速的迭代更新也会让你没有后顾之忧。