从零开始学习SpringCloud
从0开始学习springcloud全家桶,记录了自己在学习过程中的一些坑点,并提供了源码支持,为接下来的进一步学习和深入研究提供基础,也给学习springcloud微服务的同学提供一个学习的思路。
·
从零开始学习SpringCloud
前段时间把SpringBoot刷了一遍,感觉是时候深入研究一下微服务架构了,在网上看到了方志鹏的书,觉得不错便关注了他的博客,由于前期一直关注微笑并且跟着微笑的达人课完成了SpringBoot的入门,因此在此感谢两位大佬,令附上两位大佬的博客地址。springboot的入门
我将springcloud处理微服务架构分为下面的模块进行慢慢的蚕食:
未完待续中。。。
附上我的github地址,从零开始学习springcloud
以下是我自己对上述模块的认识和分析:
- 在服务的注册和发现和调用之间有三个模块:
- 注册中心
- 服务提供者
- 服务消费者
- 对服务的调用:
- ribbon + resttmplate 是客户端的一种负载均衡的方式
- feign :原理也是基于ribbon实现的。只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。
- 断路器:为了保证服务的高可用,引入了断路器的概念,当访问一个服务的不可用得到了一定的阈值时,断路器将会被打开两种实现:
- restTemplate 和 ribbon 方式,需要在调用的服务上增加熔断的方法即可
- feign,需要在接口的FeignClient注解中增加callback方法即可,指向该接口的实现类,该实现类中重写的方法即出现断路时调用的方法。
- 路由网关(zuul):主要做的是路由的转发和过滤,zuul默认和Ribbon结合实现了负载均衡的功能。
- 路由的转发,类似于nigix反向代理,将对应的路径代理到对应的服务器上去
- 路由的过滤,通过自定义过滤器,然后继承zuulfilter来自定义过滤的类型和优先级和逻辑等 ;
- 分布式配置中心(Configure):在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件
- 分为两个角色:分别是配置的服务器和配置的客户端
- 延伸到微服务可以将配置中心做成一个微服务,并且将其集群
- 消息总线(Bus):消息总线将分布式的节点用轻量的消息代理连接起来,它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控主要是rabbitmq的用法
- 服务链路追踪(Sleuth):在分布式系统中提供追踪解决方案
对于微服务架构,启动的时候会启动一个Trace,一系列spans组成的一个树状结构
在访问的时候会跟随目前访问的位置和所用的时间,可以快速的反应和查找问题
ZipkinServer ==》用来收集调用信息
- docker部署springcloud项目
- 服务注册(consul):它是一个提供服务发现和配置的工具,consul具有分布式、高可用、高扩展性。
更多推荐
已为社区贡献3条内容
所有评论(0)