SpringCloud学习第三节

SpringCloud学习

初始化工程:

使用IDEA工具创建一个springBoot初始工程,如图:
SpringCloud学习第三节
然后选择Spring Initializr 初始化工程,这个操作会从springBoot官网拉一个例子下来:
SpringCloud学习第三节
然后根据自己的目录结构定义:
SpringCloud学习第三节
定义完以后可以选择需要导入的工具,我建议是直接导入需要的工具包,eureka discovery client等:
SpringCloud学习第三节
SpringCloud学习第三节
解释一下选中这三个的原因,eureka 就不必多说 服务注册,如果自己复制maven的话 很可能遇到版本冲突的问题,如果遇到可以找到我的文章,里面有从官网直接找的图,上面对应版本和boot版本。
选择openFeign的原因是因为它集成了ribbon和Hystrix,可以直接应用负载均衡和熔断器。
可能有些小伙伴对于负载均衡和熔断器不是特别了解,这里我稍微解释一下。
负载均衡:主要是面对大批量请求,大多数公司会部署多机器,多服务,这时候就需要使用负载均衡对外来请求进行分发,可以按照权重或者轮询等规律把请求分发给不同的机器去处理,减少单机器的请求量。
熔断器:大家都知道用电过度会使得电路熔断,防止电线过热失火。其实熔断器的思路也是这样,对于某个热门接口,比如说电商秒杀,抢票等等,有时候在一瞬间会面对几千万的请求量冲击,光靠缓存已经不足以面对如此大的请求冲击,这样大的冲击直接冲击到服务器可能直接把服务器打挂,因为使用熔断机制,请求处理不过来的可以配置服务降级。比如会提示 ‘’请求人数过多,请稍后再试,其实就是把请求分到另外的方法上去,等请求减少以后再恢复服务处理。

现在已经创建工程完毕,加入三个注解在application这个主类上:
SpringCloud学习第三节
然后对restTemplate开启负载均衡,看了很多教程都不解释restTemplate的作用,我这里也解释一下,其实可以看做是http调用。
SpringCloud学习第三节
然后自己创建一个包,再创建一个接口:
SpringCloud学习第三节
我在代码中直接写了注释,应该简单明了,那个fallback就是服务降级会去找的类。

然后写接口:
SpringCloud学习第三节

这样就完成了feign的使用。