今天来学学Nacos
Posted 故里学Java
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了今天来学学Nacos相关的知识,希望对你有一定的参考价值。
一、Nacos介绍
Nacos是阿里zhuc中间件团队开源的一款服务发现、配置和管理微服务的中间件,关键的特性包括:
服务发现和服务健康监测
Nacos是基于DNS和基于RPC的服务发现、服务提供者使用原生SDK、OpenAPI、或一个独立的Agent TODO注册service后,服务消费者可以使用DNS TODO或HTTP&API查找和发现服务。提供对服务的实时健康检查,阻止向不健康的主机或服务实例发送请求
动态配置服务
动态配置服务可以以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置,还消除了配置变更时重启服务的需要,让配置管理更加的高效和敏捷。同时配置中心化管理让实现无状态服务变得更简单,让服务按需弹性扩展变得更容易。
动态DNS服务
动态DNS服务支持权重路由,可以更容易的实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单DNS解析服务。动态DNS服务还可以更容易的实现以DNS协议为基础的服务发现,以帮助消除耦合到私有服务发现API上的风险。
服务及其元数据管理
Nacos可以从微服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略、服务的SLA以及最重要的metrics统计数据。
二、Nacos架构
基础架构及概念
Service (服务)
服务是指一个或一组软件的功能,其目的是不同的客户端可以为不同的目的重用。Nacos支持主流的服务生态,如Kubernetes Service、gRPC|Dubbo RPC Service 或者 Spring Cloud RESTful Service。
Service Registry(服务注册中心)
服务注册中心,它是服务,其实例及元数据的数据库,服务实例在启动时注册到服务注册表,并在关闭时注销。服务和路由的客户端查询服务注册表以查找服务的可用实例。服务注册中心可能会调用服务实例的健康检查API来验证它是否能够处理请求。
Service Metadata (服务元数据)
服务元数据是指包括服务端点、服务标签、服务版本号、服务实例权重、路由规则、安全策略等描述服务的数据。
Service Provider (服务提供者)
是指提供可复用和可调用服务的应用方
Service Consumer (服务消费者)
是指会发起对某个服务调用的应用方
Configuration (配置)
在系统开发过程中通常会将一些需要变更的参数、变量等从代码中分离出来独立管理,以独立的配置文件的形式存在。目的是让静态的系统工件或者交付物(如 WAR,JAR 包等)更好地和实际的物理运行环境进行适配。配置管理一般包含在系统部署的过程中,由系统管理员或者运维人员完成这个步骤。配置变更是调整系统运行时的行为的有效手段之一。
Configuration Management (配置管理)
在数据中心中,系统中所有配置的编辑、存储、分发、变更管理、历史版本管理、变更审计等所有与配置相关的活动统称为配置管理。
逻辑架构:
组件的介绍可以在官网查看,有详细的介绍。
三、安装Nacos
环境准备
Nacos对环境的要求:
64bit OS,支持Linux、Unix、Mac、Windows,不推荐Windows
64bit JDK 1.8+;
Maven 3.2x+;
下载源码或者安装包
//从Github下载源码
git clone https://github.com/alibaba/nacos.git
cd nacos/
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
ls -al distribution/target/
// change the $version to your actual path
cd distribution/target/nacos-server-$version/nacos/bin
//下载压缩包的方式
unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz
cd nacos/bin
3. 启动服务器
Linux/Unix/Mac:
sh startip.sh -m standalone
Windows:
cmd startup.cmd 或双击startup.cmd运行文件
服务注册&发现与配置管理
服务注册:
curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'
服务发现:
curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName'
发布配置:
curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=HelloWorld"
获取配置:
curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"
关闭服务器
Linux/Unix/Mac:
sh shutdown.sh
Windows;
cmd shutdown.cmd 或双击shutdown.cmd
项目中集成Nacos后续会写一个demo来讲解,这次的分享先了解一下Nacos。
以上是关于今天来学学Nacos的主要内容,如果未能解决你的问题,请参考以下文章