springCloud学习总结

SpringCloud是基于springboot的一个服务拆分的思想,将各个模块拆分为一个个小的子模块,使子模块相对独立运行避免了系统出错导致一整个系统都不能运行,子模块之间利用pom导入的方式通信。

服务端主要写接口,供客户端调用,客户端调用,可以写一个config用定义一个RestTemplate的方法返回值返回一个RestTemplate,这样通过他的get方法就能找到服务端方法并且传参。

在搭建好Springcloud后需要学习Eureka,Eureka是和zookeeper差不多但又有点差别,将服务在Eureka的注册中心注册后能够更加清晰的看到各个服务的运行状态,在服务停止以后Eureka会有一定的提示,和一些保护接口信息的机制,负责监控预警方便运维。因为在服务才分的情况之下减轻了系统的压力,但同时也提升了运维成本。

在Eureka注册后客户端就可以通过在yml文件中配置Eureka注册中心的地址,这样在后台就可以直接通过http://+eureka的id+要找的接口  调用服务端。

再下来就是负载均衡我学过的有两种方式Ribbon和Feign两种方式

Ribbon方式主要是放在客户端,在调服务端接口时会几种机制随机、轮询等几种,只要通过pom导入ribbon后再config中自己写的RestTemplate上加一个@Loadbalanced,就可以使用,默认的方式随机访问,也可以根据自己的需求重写Irule中的setLoadBalancer方法实现自己的负载均衡方法。

Feign方式也是在客户端,是一个社区觉得负载均衡应该有一个更贴合java的方式去实现,所以就创造了Feign,Feign是通过一个接口类,写服务端的接口在每个接口上都加上对应的Mapping,同时在类上加上一个Feign的注解@FeignClient,注解需要一个参数value,value中是eureka的id(我粗浅的理解是ip+端口号,当然这个是在你没注册的eureka的端口号的情况下)再用Controller类调用这个接口类就完成了。

再下来就是Hystrix服务熔断,是在一整个服务开启时服务与服务之间的通信段一层后边的就连报错,服务溶断的意义就在这里,在一个服务报错时,Hystrix会其中一个自己的代替错误的方法的一个备用方法plan B的一个作用,保证了项目正常运行,集成Hystrix方法就三步就是引入jar包,在启动类中加一个@EnableCircuitBreaker注解,在Controller类中加一个备选方法后,在plan1上加一个@HystrixCommand注解,这就熔断了,还是挺简单的,和服务熔断作用相同的是Hystrix的服务降级,在服务down机时同时会响应出去信息,使这个服务不会报错从而导致后边的服务也报错,主要操作是写一个实现类要实现FallbackFactory,使用FallbackFactory的creat方法new一个我们在Feign中的接口类,在重写时写上自己对应的提示,同时接口类中FeignClient要再加个属性fallbackFactory它的值是实现类.class。

再来就是zuul路由了,主要作用将我们的真是地址封装一下,使客户端调用时访问我们封装出来的地址,真实地址隐藏起来。在路由功能实现的时候写一个zuul的服务,同时也要配置Eureka让zuul也注册进去,方便我们调用,服务类当然要配置一个yml和一个启动类,启动类加一个注解EnableZuulProxy,就是开启zuul的代理服务,在yml中写一下注册Eureka,端口号,还有就是zuul的一些配置了,主要有三种配置,一个是routes路由:是将我们Eureka中的服务端id拿到,这样就能通过zuul的端口访问了,ignored-services是将你的服务端方法都隐藏起来,要通过开放的zuul端口去访问,prifix就是给zuul的加一个前缀跟类上的RestMapping方法是一样的。

这样一套Springcloud的五大神兽就看完了,主要里边的东西并不是很多,大多是都是1、导包2、写配置3、开启服务就完成的简单操作,主要是理解

本文主要是自己学习的心得,很多可能描述、用词可能不是那么的准确,但是重在方法和对几个方法的理解,欢迎补充。

如果你觉得自己的理解加充分的话,请pass

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值