所有的微服务应该将自己注册到注册中心,然后相互之间通过远程调用。使用注册中心统一管理微服务的访问地址,也便于其他服务,例如网关服务,无须记录每个微服务地址。
注意本地配置信息优先级最低,包括-Dserver.port
搭建Nacos
本项目使用阿里巴巴推出的Nacos作为注册中心和配置中心
使用Docker安装Nacos
|
创建容器
|
MODE=standalone 单机版
–restart=always 开机启动
-p 8848:8848 映射端口
-d 创建一个守护式容器在后台运行
访问地址:http://ip:8848/nacos
创建命名空间
进入到Nacos控制后台界面,分别创建下面两个命名空间:
|
|
创建配置信息
进入到Nacos控制后台界面,在右侧找到配置管理,点击配置列表,选择开发环境。
创建公共配置:logging-dev.yaml
ID:logging-dev.yaml
Group:learning-online-common
描述:日志配置
配置内容:
logging-dev.yaml # 日志文件位置
logging:
config: classpath:log4j2-dev.xml
创建公共配置:logging-dev.yaml
ID:feign-dev.yaml
Group:learning-online-common
描述:远程调用Feign配置
配置内容:
feign-dev.yaml feign:
httpclient:
enabled: true
hystrix:
enabled: true
circuitbreaker:
enabled: true
hystrix:
command:
default:
execution:
isolation:
#strategy: SEMAPHORE
thread:
timeoutInMilliseconds: 1000
ribbon:
ConnectTimeout: 60000 # 连接超时时间
ReadTimeout: 60000
MaxAutoRetries: 0
MaxAutoRetriesNextServer: 1
创建消息队列配置:rabbitmq-dev.yaml
ID:rabbitmq-dev.yaml
Group:learning-online-common
配置内容:
rabbitmq-dev.yaml spring:
rabbitmq:
host: 124.221.23.47
port: 5672
username: swcode
password: 123321
virtual-host: /
publisher-confirm-type: correlated #correlated 异步回调,定义ConfirmCallback,MQ返回结果时会回调这个ConfirmCallback
publisher-returns: true #开启publish-return功能,同样是基于callback机制,需要定义ReturnCallback
template:
mandatory: true #定义消息路由失败时的策略。true,则调用ReturnCallback;false:则直接丢弃消息
listener:
simple:
prefetch: 1 #每次只能获取一条消息,处理完成才能获取下一个消息
acknowledge-mode: auto #auto:出现异常时返回unack,消息回滚到mq;没有异常,返回ack ,manual:手动控制,none:丢弃消息,不回滚到mq
retry:
enabled: false #开启消费者失败重试
initial-interval: 5000ms #初识的失败等待时长为1秒
multiplier: 1 #失败的等待时长倍数,下次等待时长 = multiplier * last-interval
max-attempts: 3 #最大重试次数
stateless: true #true无状态;false有状态。如果业务中包含事务,这里改为false
修改微服务工程
找到learning-online-parent
父工程,添加版本信息:
|
重新启动微服务
重新启动后即可以在Nacos中看到服务列表: