服务注册与发现和配置中心-Nacos

介绍
官方概览
阿里巴巴开源产品,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

Nacos提供了一组简单易用的特性集,帮助快速实现动态服务发现、服务配置、服务元数据及流量管理。

动态服务发现:服务器注册了,不重启服务,能够自动发现服务。

动态配置:不重启服务,能够自动识别配置修改。

服务元数据及流量管理:流量怎么分配,根据元数据设置,进行管理。

Nacos是什么
服务(service) 是Nacos世界的一等公民。Nacos支持几乎所有主流类型的“服务”的发现、配置和管理。

Nacos的关键特性包括:服务发现和服务健康监测、动态配置服务、动态DNS服务、服务及其元数据管理。

服务发现和服务健康监测
Nacos 支持基于 DNS 和基于 RPC 的服务发现。服务提供者使用 原生SDK、OpenAPI、或一个独立的Agent TODO注册 Service 后,服务消费者可以使用DNS TODO 或HTTP&API查找和发现服务。

Nacos 提供对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。Nacos 支持传输层 (PING 或 TCP)和应用层 (如 HTTP、MySQL、用户自定义)的健康检查。 对于复杂的云环境和网络拓扑环境中(如 VPC、边缘网络等)服务的健康检查,Nacos 提供了 agent 上报模式和服务端主动检测2种健康检查模式。Nacos 还提供了统一的健康检查仪表盘,帮助您根据健康状态管理服务的可用性及流量。

动态配置服务
动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。

动态配置消除了配置变更时重新部署应用和服务的需要,让配置管理变得更加高效和敏捷。

配置中心化管理让实现无状态服务变得更简单,让服务按需弹性扩展变得更容易。

Nacos 提供了一个简洁易用的UI 帮助您管理所有的服务和应用的配置。Nacos 还提供包括配置版本跟踪、金丝雀发布、一键回滚配置以及客户端配置更新状态跟踪在内的一系列开箱即用的配置管理特性,帮助您更安全地在生产环境中管理配置变更和降低配置变更带来的风险。

动态DNS服务
动态 DNS 服务支持权重路由,让您更容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单DNS解析服务。动态DNS服务还能让您更容易地实现以 DNS 协议为基础的服务发现,以帮助您消除耦合到厂商私有服务发现 API 上的风险。

服务机器元数据管理
Nacos 能让您从微服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略、服务的 SLA 以及最首要的 metrics 统计数据。

Nacos地图
这里展示官方的一张图
在这里插入图片描述

特性大图:要从功能特性,非功能特性,全面介绍我们要解的问题域的特性诉求
架构大图:通过清晰架构,让您快速进入 Nacos 世界
业务大图:利用当前特性可以支持的业务场景,及其最佳实践
生态大图:系统梳理 Nacos 和主流技术生态的关系
优势大图:展示 Nacos 核心竞争力
战略大图:要从战略到战术层面讲 Nacos 的宏观优势
Nacos 生态图
在这里插入图片描述

如Nacos 生态图所示,Nacos无缝支持一些主流的开源生态。例如:Spring Cloud、Apache Dubbo and Dubbo Mesh、Kubernetes and CNCF。

和Eureka比较
Nacos与Eureka均提供注册中心和服务治理功能,以下为两者差异和选型方案。

两者差异

功能模块NacosEureka说明
注册中心支持支持服务治理基本功能,服务服务中心化注册
配置中心支持Eureka需要配合Config实现配置中心,且不提供管理界面
动态刷新支持Eureka需要配合MQ实现配置动态刷新,Nacos采用Netty保持TCP长连接实时推送
可用区AZ支持支持对服务集群划分不同区域,实现区域隔离,并提供容灾自动切换
分组支持Nacos可根据业务和环境进行分组管理
元数据支持支持提供服务标签数据
权重支持Nacos默认提供权重设置功能,调整承载流量压力
健康检查支持支持Nacos支持由客户端或服务端发起的健康检查,Eureka是由客户端发起心跳
负载均衡支持支持均提供负载均衡策略,Eureka采用Ribion
管理界面支持支持Nacos支持对服务在线管理,Eureka只是预览服务状态
CAP原则CP/APAPNacos通知遵循CP原则(一致性+分区容错性) 和AP原则(可用性+分区容错性)
版本迭代支持Eureka目前已经不进行升级
应用内/外Nacos属于外部应用,侵入性小。Eureka直接集成到应用中,依赖于应用自身完成服务的注册与发现
集成支持Dubbo、Spring Cloud、K8SSpring Cloud

选型方案
采用Eureka方案的考虑

想用Spring Cloud全家桶
想用本地文件和Git作为配置管理的,将配置与服务分开管理
采用Nacos方案的考虑

考虑引入Spring Cloud Alibaba生态
想在线对服务进行上下线和流量管理
不想采用MQ实现配置中心动态刷新
不想新增配置中心生产集群
与Apollo比较
Nacos与Apollo都为目前比较流行且维护活跃的2个配置中心,以下为两者差异。

功能点NacosApollo
开源时间2018.62016.5
配置实时推送支持(HTTP长轮询1S内)支持(HTTP长轮询1S内)
版本管理自动管理自动管理
配置回滚支持支持
灰度发布支持支持
权限管理待支持支持
多集群支持支持
多环境支持支持
监听查询支持支持
多语言Python、Go、Java、Node.js、C#、OpenAPIGo、C++、Java、Python、.net、OpenAPI
单机部署Nacos单节点Apollo quikstart+MySQL
分布式高可用最小集群数量Nocas*3+MySQLConfig3+Admin3+Protal1+MySQL3
配置格式校验支持支持
通信协议HTTPHTTP
数据一致性HTTP异步通知数据库模拟消息队列,Apollo定时读消息
单机读150009000
单机写18001100
3节点读4500027000
3节点写56003300
文档待完善(目前只有Java开发相关文档)详细

对比Apollo
Nacos部署简化,Nacos整合了注册中心、配置中心功能,且部署相比apollo简单,方便管理和监控。
apollo容器化较困难,Nacos有官网的镜像可以直接部署,总体来说,Nacos比apollo更符合KISS原则
性能方面,Nacos读写tps比apollo稍强一些
快速开始
环境准备
Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用:

64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。
64 bit JDK 1.8+。
Maven 3.2.x+。
下载源码或者安装包
从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 v e r s i o n t o y o u r a c t u a l p a t h c d d i s t r i b u t i o n / t a r g e t / n a c o s − s e r v e r − version to your actual path cd distribution/target/nacos-server- versiontoyouractualpathcddistribution/target/nacosserverversion/nacos/bin

下载编译后压缩包方式

可以从 最新稳定版本 下载 nacos-server-$version.zip 包

unzip nacos-server- v e r s i o n . z i p 或 者 t a r − x v f n a c o s − s e r v e r − version.zip 或者 tar -xvf nacos-server- version.ziptarxvfnacosserverversion.tar.gz
cd nacos/bin

启动服务器
Linux/Unix/Mac

启动命令(standalone代表着单机模式运行,非集群模式):

sh startup.sh -m standalone

如果您使用的是ubuntu系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行:

bash startup.sh -m standalone

Windows

启动命令(standalone代表着单机模式运行,非集群模式):

startup.cmd -m standalone

访问
访问地址: localhost:8848/nacos
默认账号密码: nacos/nacos
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值