版本选择
springcloud用最新的ga版本 文档里说明了对应的springboot版本
版本选择 https://start.spring.io/actuator/info
docker run --name some-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.39
eureka
#eureka服务在收到最后一次心跳后等待时间上限,单位为秒(默认90),超时剔除 lease-expiration-duration-in-seconds: 2 #eureka客户端向服务端发送心跳的时间间隔,单位为秒 默认30 lease-renewal-interval-in-seconds: 1
用zk做为注册中心服务是临时节点,服务出问题zk一会就会删除
ribbon IRule负载策略
ribbon轮循原理
feign
1、降级:当调用出现异常或超时等无法返回正常数据时,返回一个合理的结果或实现fallback方法,针对客户端而言。
Gateway
config配置中心
远程仓库配置修改后配置中心会立即变更,依赖该配置中心微服务不会变更
加入actuator包,yml暴露端点,controller加@RefreshScope注解 变更后请求url
http://ip:port/actuator/refresh
bus+mq 消息总线刷新配置通过广播形式
完成配置后对注册中心刷新,全部微服务配置都会更新
http://localhost:3344/actuator/bus-refresh
如果只想刷新部分微服务的配置,则将请求改为
http://localhost:3344/actuator/bus-refresh/{destination}
其中格式destination=spring.application.name:server.port
springcloud alibaba新版本需要引入spring.config.import的问题
新版本pom引入,配置用application.yml就可以
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2021.0.4.0</version>
</dependency>
spring:
config:
import:
- optional:nacos:config-server-dev.yaml # 监听 DEFAULT_GROUP:test.yml
或者用原来的配置方式bootstrap.yml 要引入bootstrap包 新版本移除了bootstrap
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>3.1.1</version>
</dependency>