1.问题的由来?
  在项目越来越大时(单机架构 All in one),如果项目出现了宕机,那整个项目都会无法使用,  在此基础上,出现了"微服务"!!!

2.微服务的概述:

一. 将一个大项目分成多个小项目(微服务)

二.微服务的优势:
        >单一职责:微服务的粒度更小,每个微服务的对应唯一的功能,做到单一职责        
        >自治:团队独立,技术独立,数据独立,独立部署和交付
        >面向服务: 每个微项目提供统一的接口,与语言和技术无关
        >隔离性强: 微服务强调做好隔离,容错,降级,避免出现级联问题(雪崩,指一个项目错误导致整                                     条 链路出现问题,乃至整个项目崩溃.而做好各级隔离后,就算一个环节出错,不至于                              导致雪崩)

#####  2.微服务的组件:

> ###### netflix : eureka (注册中心)

> netflix : eureka (注册中心)
 Eureka 组件 解决了各个微项目之间的连接问题,有解耦,方便管理的优点,可以管理各微项目的地址
 
>架构: server (服务端);client (客户端)
>如何使用: 1.创建服务端项目,并导入Eureka的依赖,(需要注意springcloud的版本要                                                     和springboot的对应,否则无法使用)
                     2.在App类中添加服务端的注解,否则默认为客户端(因为Eureka雌雄同体)
                     3.在服务端的配置文件中设置  端口号,项目名称,和Eureka的IP地 址,"register-with-                                   eureka:false","fetch-registry:false"  后面这两项是说自己为注册中心,不用注册自己和                          不拉取服务本eureka服务中的服务信息.
                      4.在需要用到Eureka注册的项目(客户端)中导入客户端的依赖,并在配置文件中标明自                            己的名字(_不能用)
                    5.在需要远程调用的客户端中restTamplate Bean方法 上加@LoadBalanced注解

                    6.登录Eureka的网站,查看已经管理的微项目
          
>Eureka 在管理集群项目时,常用的有负载均衡模式和随机调用可用的两种模式

服务端的配置文件:

组件化和微服务的关系 微服务组件的作用_微服务

客户端其一的配置文件:

 

组件化和微服务的关系 微服务组件的作用_eureka_02

 父pom 中的依赖:

组件化和微服务的关系 微服务组件的作用_组件化和微服务的关系_03

 

组件化和微服务的关系 微服务组件的作用_客户端_04

 Eureka(注册中心)中的依赖:

组件化和微服务的关系 微服务组件的作用_微服务_05

 

组件化和微服务的关系 微服务组件的作用_客户端_06

需在APP类上加@EnableEurekaServer的注解,以表明此项目 为服务端,而不是客户端

客户端的pom文件:

组件化和微服务的关系 微服务组件的作用_客户端_07

需要远程调用的客户端启动类上加@LoadBalanced注解

组件化和微服务的关系 微服务组件的作用_eureka_08

 

 整体效果:

组件化和微服务的关系 微服务组件的作用_云原生_09

 流程图:

组件化和微服务的关系 微服务组件的作用_组件化和微服务的关系_10