Nacos入门一
Posted JudyGirl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nacos入门一相关的知识,希望对你有一定的参考价值。
节日快乐啊~各位亲
Nacos是什么?
nacos是阿里开源产品, 它主要功能是微服务的动态配置服务和服务发现管理,动态DNS服务。
动态配置服务让您能够以中心化、外部化和动态化的方式管理所有环境的配置。动态配置消除了配置变更时重新部署应用和服务的需要。配置中心化管理让实现无状态服务更简单,也让按需弹性扩展服务更容易。
动态服务发现对以服务为中心的(例如微服务和云原生)应用架构方式非常关键。Nacos支持DNS-Based和RPC-Based(Dubbo、gRPC)模式的服务发现。Nacos也提供实时健康检查,以防止将请求发往不健康的主机或服务实例。借助Nacos,您可以更容易地为您的服务实现断路器
动态DNS服务通过支持权重路由,动态DNS服务能让您轻松实现中间层负载均衡、更灵活的路由策略、流量控制以及简单数据中心内网的简单DNS解析服务。动态DNS服务还能让您更容易地实现以DNS协议为基础的服务发现,以消除耦合到厂商私有服务发现API上的风险
Nacos同类技术?
springcloud Config,Apollo,Nacos。
同类技术比较?
这是借鉴别人博客的图
nacos架构
nacos数据模型和领域模型?
通过nacos的数据模型和领域模型我就可以大概了解nacos有哪些作用功能,其实个人感觉跟spring config大同小异, 下一篇文章可以着重讲解他们之间的差别
数据模型:
1 namespace命名空间:主要是区分是dve,test ,生产
2 group分组:应用于不同的项目,把配置进行分组
3 DataId:配置集,他包含系统的各种信息,我们想获取数据必须要先知道DataId,然后再根据不用环境不同项目获取具体配置信息
服务领域模型
nacos手动连接?
1 首先下载nacos包,安装启动。不做介绍了,可以在网站找一下资料
2 在nacos中配置dataid,namespace,group。
3 代码手动连接
4 从代码中可以看出,其实初步连接非常简单。创建 NacosFactory.createConfigService 就可以。其次就是指明我们要获取那个数据集数据,命名空间是什么,分组是什么。ok。
1 配置dataid,namespace,group ,这一步简化了,因为电脑ip换了,无法访问,嘻嘻
2 pom文件
<dependencies>
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>1.1.3</version>
</dependency>
</dependencies>
3 服务端代码
public static void main(String[] args) throws NacosException, InterruptedException {
//总结,1发布配置2根据api获取配置信息
//链接nacos地址
String serverAddr = "127.0.0.1:8848";
//dataId
String dataId="server2.yaml";
//group
String group = "DEV_GROUP";
//namespace
String namespace="01196f3f-f9a5-4ceb-9f32-b21e9e845527";
Properties properties = new Properties();
//链接属性
properties.setProperty("serverAddr", serverAddr);
properties.setProperty("namespace", namespace);
//创建链接
ConfigService configService = NacosFactory.createConfigService(properties);
//获取配置信息
String config = configService.getConfig(dataId, group, 6000);
System.out.println(config);
}
nacos动态获取配置信息
看到这一步你有没有想到如何可以动态的获取连接呢?其实相当这一点的时候让我想起了spring cloud config和rabbitmq 获取的方式,其实都大同小异,学习知识不断要横向比价也要纵向比较。
configService.addListener(dataId, group, new Listener() {
public Executor getExecutor() {
return null;
}
//当配置有变化时候获取通知
public void receiveConfigInfo(String configInfo) {
System.out.println(configInfo);
}
});
while (true){
Thread.sleep(2000);
}
单机版获取配置信息
1 pom文件
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
2 配置dataid,namespace,group
3 配置文件
:
port: 56010 #启动端口 命令行注入
spring:
application:
name: server1 ---->dataid
cloud:
nacos:
config:
127.0.0.1:8848 # 配置中心地址 :
yaml -->后缀名 :
namespace: 01196f3f-f9a5-4ceb-9f32-b21e9e845527 # 开发环境
DEV_GROUP # 项目组 :
获取
/**
@创建人 wxf
@创建时间 2019/12/24
@描述
*/
@SpringBootApplication
@RestController
public class Server1Bootstrap {
@Autowired
private ConfigurableApplicationContext applicationContext;
"/getConfig1Context") =
public String getConfig1Context(){
return applicationContext.getEnvironment().getProperty("common.name");
}
public static void main(String[] args) {
args);
}
@Value("${common.name}")
private String config1;
"/getConfig1") =
public String getConfig1(){
return config1;
}
}
共勉
坚持自律,一直保持对技术的热爱。nacos会写三篇文章介绍。
以上是关于Nacos入门一的主要内容,如果未能解决你的问题,请参考以下文章
SpringCloud Nacos 注册中心 -- Nacos快速入门Nacos服务分级存储模型(集群)集群负载均衡策略 NacosRule