Nacos 支持基于 DNS 和基于 RPC 的服务发现(可以作为springcloud的注册中心)、动态配置服务(可以做配置中心)、动态 DNS 服务。
Nacos是阿里的一个开源产品,它是针对微服务架构中的服务发现、配置管理、服务治理的综合型解决方案。
官方介绍是这样的:
Nacos 致力于帮助您发现、配置和管理微服务。Nacos
提供了一组简单易用的特性集,帮助您实现动态服务发现、服务配置管理、服务及流量管理。 Nacos
帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos
是构建以“服务”为中心的现代应用架构(例如微服务范式、云原生范式)的服务基础设施。
Nacos特性
- 服务发现与服务健康检查
Nacos是服务更容易注册,并通过DNS或HTTP接口发现其他服务,Nacos还提供服务的实时健康检查,以防止不健康的主机或服务实例发送请求。 - 动态配置管理
动态配置服务允许您在所有环境中以集中和动态的方式管理所有服务的配置,Nacos消除了在更新配置是重新部署应用程序,这使配置的更改更加高效和灵活。 - 动态DNS服务
Nacos提供基于DNS协议的服务发现能力,旨在支持异构语言的服务发现,支持将注册在Nacos上的服务以域名的方式暴露端点,让三方应用方便地查阅及发现。 - 服务和元数据管理
Nacos能让您从微服务平台建设的视角管理数据中的所有服务及元数据,包括管理服务的描述、生命周期、服务的静态依赖分析,服务的健康状态、服务的流量管理、路由及安全策略。
入门案例
建立一个项目,添加如下依赖
<dependencies>
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>1.1.2</version>
</dependency>
</dependencies>
获取外部化配置
新增Java的执行类,并在执行过程中获取配置信息:
public class SimpleDemoMain {
public static void main(String[] args) throws NacosException {
// nacos 地址
String serverAddr = "127.0.0.1:8848";
// Data Id
String dataId = "nacos-simple-demo.yaml";
// Group
String group = "DEFAULT_GROUP";
Properties properties = new Properties();
properies.put("serverAddr",serverAddr);
ConfigService configService = NacosFactory.createConfigService(properties);
// 获取配置
String content = configService.getConfig(dataId,group,5000);
System.out.println(content);
}
}