-
1.一般添加某个功能的基础步骤:1.导入依赖 2.编写配置 3.开启功能
2.实体类需要实现序列化接口(Serializable),目的是为了对于远程调用,能方便对对象进行编码和解码,就像实现对象直接传输
3.一个服务通过Rest的方式访问另一个服务需要配置一个RestTemplate类(javaConfig的方式配置即可),然后调用其中的方法即可例如:restTemplate.postForObject(另一个服务的url地址,
参数实体,返回类型.class);4.父项目中的:dependencyManagement依赖管理只是起到声明的作用,并不引入下载,而是做一个指定版本号的作用,如果子项目需要在还需再声明下载,只不过可以省略版本号,版本号从父项目中去拿,为的是控制项目中这个依赖是一致的。
5.在父pom当中:spring-boot-dependencies是springboot模块启动器和依赖的版本控制中心,引入后其中存在的启动器starter和依赖无需写版本号
6.在整个体系当中无论是消费者(consumer)还是服务提供者(provider)都属于与EurekaServer交互的客户端(Client)
7.本机域名映射通过修改配配置文件hosts,文件地址:C:\Windows\System32\drivers\etc\hosts 修改方式:127.0.0.1 eureka7001.com(自己命名的域名,方便单机测试集群)
8.@EnableEurekaClient只适用于Eureka作为注册中心,@EnableDiscoveryClient 可以是其他注册中心。共同点就是:都是能够让注册中心能够发现,扫描到改服务。不过从SpringCloud的E版本开始他们两个开始只写一个就可以被注册中心发现,然后注册到注册中心9.停掉注册在Eureka中的某个服务,30s后Eureka会开启自我保护机制(也称心跳机制):好死不如赖活着,在一定时间内没有收到实例的心跳,便会把该实例从注册表中删除(默认是90秒)等,这种机制可以关闭但是并不推荐关闭
10.DiscoveryClient类与上第8条中的@EnableDiscoveryClient注解相关联 可以用来获取一些配置的信息,得到具体的微服务!(1)可以获取微服务列表的清单(2)得到一个具体的微服务信息,通过具体的微服务id,applicationName;
11.集群:多个相互关联的注册中心,注册中心如何关联:将多个注册中心的地址以,号隔开全部写在注册中心的地址中
12.CAP原则:著名的CAP理论指出,一个分布式系统不可能同时满足C (一致性) 、A (可用性) 、P (容错性)这三个需求,由于分区容错性P再分布式系统中是必须要保证的,因此我们只能再A和C之间进行权衡。
13.Eureka与Zookeeper相比 Zookeeper 保证的是 CP —> 满足一致性,分区容错的系统,通常性能不是特别高 Eureka 保证的是 AP —> 满足可用性,分区容错的系统,通常可能对一致性要求低一些14.Ribbon和Nginx负载均衡的区别:Ribbon是在消费者端从服务注册中心获知有哪些地址可用,然后自己再从这些地址中选出一个合适的服务器,而Nginx则是全权交给该设施处理负责请求哪个服务
15.Ribbon开启负载均衡步骤:首先是在RestTemplate上加上@loadbalance注解表示请求服务的时候开启负载均衡,然后再在启动类上配置哪个服务和负载均衡的策略是什么
16.Feign开启负载均衡步骤:首先是将Ribbon通过为微服务名字请求封装到api的Service下面然后调用接口即可。在启动类上@EnableFeignClient(“base
package=”)扫描封装的feign接口17.Feign默认不是负载均衡,负载均衡是其集成的Ribbon做的,Feign只是使得程序更加的面向接口编程,如果使用Feign想要更改负载均衡策略需要在application.yaml中配置
18.Hystrix熔断(服务端崩了就熔断处理) 是服务崩了然后执行备用方案,不让其崩,返给用户可见信息
19.Hystrix降级(客户端去主动关闭服务器)是主动的关闭了服务器,当用户来调用的该服务的时候提醒用户当前服务已关闭20.需要被HystrixDashboard监控的服务需要在服务启动前在服务的主启动类添加一个@Bean,而且被监控的服务还需要开启熔断
21.开启HystrixDashboard的流程,编写一个Dashboard监控服务,在需要监控的服务的主启动中配置一个@Bean,并且开启熔断,然后开启注册中心然后开启监控服务,最后开启服务提供者,接下来测试一下服务是否注册到注册中心当中,然后是访问一下服务判断服务是否正常,然后直接在监控页面监控即可
22.如果有多个服务需要配置zuul的路由的话将服务名和映射地址以<k,v>键值对的方式配置即可,使用ignored-services: “*” 忽略所有的微服务名称访问路径访问,只能通过映射的名字来访问保证安全
23.zuul的使用步骤,创建一个服务zuul,老三步:之后也会被注册到注册中心可以监控到,然后通过zuul配置的哪个端口访问服务即可,目的是使得访问所有服务都是一个入口
24.SpringCloud-Config 配置思路:首先是将一个配置文件push到远程仓库,我们现在有了远程仓库的配置文件,接下来就是配置一个config-server本地的服务端与远程仓库交互,配置好判断是否可以从远程仓库当中读取配置信息,接下来就是对我们开始配置config-client(这里是将配置文件需要从远程获取的统称为config-client)以config-server为中间平台去获取远程仓库配置文件的配置信息;