springboot加载多个配置中心的配置文件
spring:
application:
name: service1
nacos:
config :
enabled:false #关闭配置
server-addr: 127.0.0.1:8848 #配置中心地址
file-ertension: yaml #dataid的名称就是application的name加file-extension service1.yamlnamespace: c67e4a97-a698-4d6d-9bb1-cfac5f5b51c4#开发环境指定具体的namespace
group: TEST_GROUP #测试组
ext-config[0]: #通过自定义扩展配置文件可以一次性引入多个配置文件
data-id: ext-config-common01. properties # 不设置group默认用默认group:即DEFAULT_GROUP
ext-config[1]:
data-id: ext-config-common02.properties
group: CLOBALE_GROUP
refresh: true #动态刷新配置中的属性
或者
spring:
application:
name: service1
nacos:
config:
server-addr: 127.0.0.1:8848 #配置中心地址 可以配置多个ip,即集群模式, 一般可以把一个域名绑定3个ip直接配置域名即可
file-ertension: yaml #dataid的名称就是application的name加file-extension service1.yamlnamespace: c67e4a97-a698-4d6d-9bb1-cfac5f5b51c4#开发环境指定具体的namespace
group: TEST_GROUP #测试组
shared-dataids: ext-config-common01.properties, ext-config-common02.properties #共享dataid,但只支持DEFAULT_GROUP组,即不是DEFAULT_GROUP分组的配置文件属性无法加载
refreshable-dataids: ext-config-common01.properties #支持动态刷新配置文件的属性
三种加载配置文件方式
- application:name 拼接 file-ertension 上面配置拼接引入配置文件即:service1.yaml
- ext-config[] 自定义扩展dataid引入配置文件
- shared-dataids与refreshable-dataids 共享dataid引入配置文件
配置加载优先级
- 拼接引入配置文件>扩展dataid配置文件>共享dataid配置文件
- 扩展dataid配置文件有多个时:按照下标越大的优先级越高(即相当于变量重赋值,取最后一次赋值)
配置中心一般会配置集群,不然一个配置中心挂了,项目就完了
主流服务发现中心
- nacos
- eureka
- consul
- zookeeper
什么是服务发现(个人认为)
当两个服务需要通信时,需要知道对方的ip和端口,但是如果服务部署在云上,ip是动态的,此时如果把ip地址直接写死的方式配置在另外的服务上,就会有问题了,所有需要服务发现中心来管理服务。
从服务发现中心拿取注册表就可以拿到需要通信服务的ip地址了。
springcloud服务协作
负载均衡 ribbon
负载均衡策略
- 轮询
- 加权
- 随机
服务端负载均衡:服务器自己有服务注册表,在自己内部就可以实现负载均衡,来确定自己需要请求的服务实例 ribbon就是服务端负载均衡。
负载均衡器:请求经过负载均衡器实现负载均衡
远程调用 feign
可以直接通过注解@FeignClient(value="服务名称") 来调用服务
feign生成代理对象,代理对象内部从服务中心通过服务名称拿取服务地址来发起远程调用
记
使用父工程可以用父工程来配置相关依赖。