SpringCloud组件综合应用说明GateWay Eureka Config Bus Feign
假如我们开发了相应的微服务,如订单服务,用户服务,又对这些服务可以做集群部署,这些服务都会注册到Eureka注册中心,
服务之间相互调用可以通过FegIn进行调用,gateWay所有微服务的统一入口,一般是PC端或者终端请求,经过gateWay路由到不同的微服务,可以做一些权限鉴定,异常,日志等。在路由的时候,如果有集群,可以使用Ribbon负载均衡,根据服务名到我们的Eureka中,获取服务列表,根据负载均衡算法,从中选择一个调用。当服务出现异常的时候,可以通过Hystrix进行服务降级。各个微服务需要使用配置文件,为了方便管理及时更新,使用配置中心管理。如果在仓库配置文件又更新,在用post请求去刷新配置中心的地址,发一个消息给mq,这些微服务会监听到消息,即使更新到修改的配置项。
Spring Cloud Bus作用:将git仓库的配置文件更新,在不重启系统的情况下实现及时同步到各个微服务。
Feign和Ribbon的区别
Feign
Feign 是在 Ribbon 的基础上进行了一次改进,是一个使用起来更加方便的 HTTP 客户端。采用接口的方式, 只需要创建一个接口,然后在上面添加注解即可 ,将需要调用的其他服务的方法定义成抽象方法即可, 不需要自己构建 http 请求。然后就像是调用自身工程的方法调用,而感觉不到是调用远程方法,使得编写 客户端变得非常容易。
Ribbon
Ribbon 是一个基于 HTTP 和 TCP 客户端 的负载均衡的工具。它可以 在客户端 配置 RibbonServerList(服务端列表),使用 HttpClient 或 RestTemplate 模拟 http 请求,步骤相当繁琐。
-------------------------------------------------------------------------------
Feign主要作用:自动根据参数拼接http请求地址。
可以配置Feign内置ribbon配置项和Hystrix熔断的Fallback配置