Nacos简介
Nacos(Namely, Config and Service)是一个易于构建服务发现与配置管理平台的中间件,它主要解决了企业在微服务架构中的以下痛点需求:
-
服务发现与注册:
- 自动发现和注册服务实例。
- 动态获取服务实例的位置信息。
-
服务配置管理:
- 集中化配置管理,统一管理不同环境下的配置。
- 支持配置的动态推送和变更。
-
服务健康监测:
- 实时监控服务的健康状况。
- 快速识别并隔离不健康的服务实例。
-
服务元数据管理:
- 管理服务相关的元数据,如版本、标签等。
-
流量管理:
- 支持基于路由规则的服务调用。
- 负载均衡策略的灵活配置。
-
平滑迁移与同步:
- 支持注册中心之间的双向同步和平滑迁移。
- 确保服务信息的一致性。
-
易用性和可扩展性:
- 提供友好的用户界面和API接口。
- 支持插件化和扩展性设计,便于集成和二次开发。
通过这些功能,Nacos帮助企业简化了微服务架构的复杂度,提高了服务治理的效率和灵活性,降低了运维成本,增强了系统的可靠性和可维护性。
Nacos下载和安装
- 官网:nacos.io/
- GitHub:github.com/alibaba/nac…
Nacos安装
docker run --env MODE=standalone \
-v /dockerdata/nacos/config/application.properties:/home/nacos/conf/application.properties \
--name nacos -d -p 8848:8848 nacos/nacos-server:2.4.0
Nacos使用手册(中文)
Spring cloud项目中的应用
总网关
mall-gateway
server:
port: 8201
spring:
mvc:
pathmatch:
matching-strategy: ant_path_matcher
cloud:
gateway:
discovery:
locator:
enabled: true
lower-case-service-id: true #使用小写service-id
routes: #配置路由路径
- id: mall-auth
uri: lb://mall-auth
predicates:
- Path=/mall-auth/**
filters:
- StripPrefix=1
各子微服务关键配置
经常根据业务需要会划分不同的微服务:例如鉴权服务、系统管理服务、手机服务、搜索服务、工作流服务、规则服务等。
bootstrap.yml
spring:
profiles:
active: dev
application:
name: mall-auth
bootstrap-dev.yml
spring:
cloud:
nacos:
server-addr: 192.168.0.100:8848 # Nacos 服务器地址
username: nacos # 开启了鉴权 Nacos 账号
password: nacos # 开启了鉴权 Nacos 密码
discovery:
server-addr: http://192.168.0.100:8848
config:
server-addr: http://192.168.0.100:8848
file-extension: yaml
Nacos管理端导入配置
例如:
- 将项目
config目录下的配置文件添加到Nacos中,只要添加包含dev的配置即可,配置文件的文件名称需要和Nacos中的Data Id一一对应; 例如:
mall-gateway-dev.yaml
spring:
redis:
host: 192.168.0.100 # Redis服务器地址
database: 0 # Redis数据库索引(默认为0)
port: 6379 # Redis服务器连接端口
password: # Redis服务器连接密码(默认为空)
timeout: 3000ms # 连接超时时间(毫秒)
security:
oauth2:
resourceserver:
jwt:
jwk-set-uri: 'http://localhost:8201/mall-auth/rsa/publicKey'
logging:
level:
root: info
com.macro.mall: debug
logstash:
host: localhost
启动后,自动出现在服务列表中