一、微服务概述
https://blog.youkuaiyun.com/FullStackDeveloper0/article/details/90374236
微服务架构是一种架构模式或者说是一种架构风格。服务之间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)。
二、SpringCloud入门
https://blog.youkuaiyun.com/FullStackDeveloper0/article/details/90376727
SpringCloud是分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶
三、Maven分模块开发
学习微服务架构之前,要熟悉maven操作。因为服务划分的基础设计到maven的继承与聚合,即Maven的分模块开发。
1. maven简介
https://blog.youkuaiyun.com/FullStackDeveloper0/article/details/90382879
2. maven的安装与配置
https://blog.youkuaiyun.com/FullStackDeveloper0/article/details/90382984
3. maven工程
https://blog.youkuaiyun.com/FullStackDeveloper0/article/details/90383359
4. maven分模块开发
https://blog.youkuaiyun.com/FullStackDeveloper0/article/details/90414639
四、微服务构建案例
https://blog.youkuaiyun.com/FullStackDeveloper0/article/details/90473559
1. MicroServiceCloud父工程下带着3个子模块(Module)
(1)microservicecloud - api 封装的整体entity/接口/公共配置等
(2)microservicecloud - provider - dept - 8001 微服务落地的服务提供者
(3)microservicecloud - consumer - dept - 80 微服务调用的客户端使用
2. 依赖关系
(1)provider-dept-8001 依赖 api
(2)consumer-dept-80 依赖 api
3. 大致流程
以Dept部门模块做一个微服务通用案例:
Consumer消费者(Client)microservicecloud - consumer - dept - 80
通过RestTemplate (url, requestMap, ResponseBean.class)
调用Provider提供者microservicecloud - provider - dept - 8001提供的服务
五、Eureka 服务的注册与发现
1. 服务的注册与发现
https://blog.youkuaiyun.com/FullStackDeveloper0/article/details/90474248
Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务注册和发现。Eureka包含两个组件:Eureka Server 和 Eureka Client。
【提示】服务的发现不常用,了解就可以了 。
2. 集群
https://blog.youkuaiyun.com/FullStackDeveloper0/article/details/90474984
其实就是一个微服务应用下有多个微服务实例。
六、Ribbon负载均衡
1. 负载均衡
https://blog.youkuaiyun.com/FullStackDeveloper0/article/details/90487032
Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。默认的负载均衡机制是轮询。当然可以修改负载均衡的机制。
Ribbon在工作时分成两步:
第一步先选择 EurekaServer ,它优先选择在同一个区域内负载较少的server.
第二步再根据用户指定的策略,在从server取到的服务注册列表中选择一个地址。
2. 自定义负载均衡策略(了解)
https://blog.youkuaiyun.com/FullStackDeveloper0/article/details/90487732
七、Feign负载均衡
https://blog.youkuaiyun.com/FullStackDeveloper0/article/details/90487963
Feign通过接口的方法调用Rest服务(之前是Ribbon+RestTemplate),该请求发送给Eureka服务器 ,通过Feign直接找到服务接口,由于在进行服务调用的时候融合了Ribbon技术,所以也支持负载均衡作用。
【提示】Ribbon是restTemplate来调用微服务,而feign是接口调用微服务。
八、Hystrix断路器
多个微服务之间的相互调用,容易引起 “雪崩” 现象。
1. 服务端的服务熔断
https://blog.youkuaiyun.com/FullStackDeveloper0/article/details/90548318
@HystrixCommand一旦调用服务方法失败并抛出了错误信息后,会自动调用@HystrixCommand标注好的fallbackMethod调用类中的指定方法
2. 客户端的服务降级
https://blog.youkuaiyun.com/FullStackDeveloper0/article/details/90548739
整体资源快不够了,忍痛将某些服务先关掉,待渡过难关,再开启回来。
【提示】我们可以看到,服务降级把异常处理的所有方法,放到了一个类下,而不是像服务熔断那样,把异常处理的方法和正常的方法放在一个类下。
九、网关zuul
https://blog.youkuaiyun.com/FullStackDeveloper0/article/details/90549449
Zuul包含了对请求的路由和过滤两个最主要的功能。Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获得其他微服务的消息,也即以后的访问微服务都是通过Zuul跳转后获得。
十、Git
1. git简介
https://blog.youkuaiyun.com/FullStackDeveloper0/article/details/90664846
2. Git本地库
https://blog.youkuaiyun.com/FullStackDeveloper0/article/details/90665290
任意目录鼠标右键 --> Git Bash Here
在本机windows文件夹下的所有操作。
3. Github
https://blog.youkuaiyun.com/FullStackDeveloper0/article/details/90667472
4. Eclipse 中 使用 Git
https://blog.youkuaiyun.com/FullStackDeveloper0/article/details/90670428
5. CentOS7下搭建GitLab服务器
https://blog.youkuaiyun.com/FullStackDeveloper0/article/details/90673469
十一、SpringCloud Config
1. SpringCloud Config
https://blog.youkuaiyun.com/FullStackDeveloper0/article/details/90702735
SpringCloud Config为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环境提供了一个中心化的外部配置。
大致流程就是服务端管理git远程仓库的各个微服务的配置文件,客户端根据自身需要配置抓取不同的配置文件。
2. 实战
https://blog.youkuaiyun.com/FullStackDeveloper0/article/details/90703634