# 微服务 **Repository Path**: zz20160215/microservice ## Basic Information - **Project Name**: 微服务 - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-03-31 - **Last Updated**: 2021-05-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 微服务 ### 服务治理 #### eureka(AP) eureka在丢失过多的客户端时,会进入90秒自我保护模式,以确定不是网络错误引起的错误下线. ##### eureka 去除自我保护机制并减少下线时长 ###### eureka server server: enable-self-preservation: false #自我保护为false eviction-interval-timer-in-ms: 5000 #驱逐节点时间间隔 ###### eureka client instance: lease-renewal-interval-in-seconds: 3 #租约续约时间间隔 lease-expiration-duration-in-seconds: 5 #租约期满时间持续时长 #### zookeeper/consul(CP) ### CAP C:Consistency A:Availability P:Partition Tolerance ### 负载均衡 #### ribbon ribbon使用的是客户端(本地)侧的负责均衡,通过获取注册中心服务列表后缓存到本地JVM,从而在本地实现RPC远程服务调用. 而传统的nginx则是集中式的负载均衡. #### 手写轮询负载均衡 1.维护程序访问次数计数器 2.通过 计数器%服务数量 进行实现 ### rest client #### open feign open feign是一款声明式的http client.即只撰写接口,没有具体实现. #### open feign日志加强 配置日志级别类 ```java @Configuration public class FeignConfig { @Bean Logger.Level feignLogLevel(){ return Logger.Level.FULL; } } ``` 指定接口 ```yaml logging: level: cn.darksoul3.springcloud.core.api.TickSvc: debug ``` ### 服务熔断 #### Hystrix ##### Hystrix作用 1. 服务降级(fallback) - 程序异常 - 超时 - break 触发 fallback - 线程池/信号量打满 2. 服务熔断(break) - break在熔断之后,会尝试恢复调用链路 3. 服务限流(flow limit) 4. 服务事实监控(monitor) ##### Hystrix 属性参数 HystrixCommandProperties.class ### 服务网关 #### gateway 1. route 2. predicate 3. filter #### gateway支持的predicate类型 [After] [Before] [Between] [Cookie] [Header] [Host] [Method] [Path] [Query] [ReadBodyPredicateFactory] [RemoteAddr] [Weight] [CloudFoundryRouteService] ### 配置中心 #### 配置格式 application-profile.yml config-dev.yml #### 动态刷新后,需要手动执行refresh curl -X http://localhost:8001/actuator/refresh ### 链路跟踪 #### zipkin下载地址 http://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/2.12.9/ ### Alibaba Nacos(AP/CP) bin/startup.sh -m standalone 运行单机模式 #### 配置中心文件格式 namespace+group+data-id applicationName-activeProfile.yaml nacos-tok-dev.yaml #### Nacos集群配置(待补充) Ngin+3*Nacos+MySql ### Alibaba Sentinel #### 启动方式 ```bash java -Dserver.port=9191 -Dcsp.sentinel.dashboard.server=192.168.1.50:9191 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.7.2.jar &>sentinel.log & ```