概述
在Spring cloud Netflix 阶段我们采用Eureka 来作为我们的服务注册与服务发现,现在利用Spring Cloud Aliaba提供的Nacos组件替代该方案。
Nacos 官网
什么是Nacos
nacos 致力于帮助您发现,配置,和管理微服务。Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现,服务配置,服务元数据以及流量管理。
Nacos帮助您更敏捷和容易的构建,交付和管理服务平台。Nacos 是 构建以服务为中心的现代应用框架(例如 微服务范式,云原生范式)的服务基础设施。
基础架构以及概念
服务(Service)
服务是指一个货一组软件功能(例如特定信息的检索或者一组操作的执行),其目的是不同的客户端可以为不同的目的重用(例如通过跨进程的网络调用)。Nacos
支持主流的服务生态,如Kusbernetes Service,gRpC
gRPC|Dubbo RPC Service 或者 Spring Cloud RESTful Service.
服务注册中心(Service Registry)
服务注册中心,他是服务,其实例以及元数据的数据库。服务实例在启动注册的时注册到服务注册表,并在关闭时候注销。服务和路由的客户端查询服务注册表以查询服务的可用实例。服务注册中心可能会调用服务实例的健康检查API来验证他是否能够处理请求。
服务元数据(Seervice Metadata)
服务元数据是指包括服务端点(endpoints),服务标签,服务版本号,服务实例权重,路由规则,安全策略等描述服务的数据。
服务提供方(service Provider)
是指会发起某个服务调用的应用方。
配置(Configuration)
在系统开发过程中通常会将一些需要变更的参数,变量等偶从代码中分离出来独立管理,以独立的配置文件的形式存在。目的是让静态的系统工作或者交付物(如
WAR,JAR 包等)更好的和实际的物理运行环境进行适配。配置管理一般包含在系统部署的过程中,有系统管理员或者运维人员完成这个步骤。配置变更是调整系统运行是的行为的有效手段之一。
配置管理(Configuration Management):
在数据中心中,系统中的所有配置的编辑,存储,分发,变更管理。历史版本管理
,变更审计等所有与配置相关的活动统统称为配置管理。
名字服务(Naming Service):
提供分布式系统中所有对象(Object),实体(Entity)d的名字 到关联的元数据之间的映射管理服务。例如ServiceName -> Endpoints Info,Distribute Lock Name ->Lock Owner/Status Info DNS Domain Name -> IpList,服务发现和DNS 就是名字服务的2大场景。
配置服务(Configuration Service)
在服务或者应用运行过程中,提供动态配置或者元数据以及配置管理的服务提供者。
下载安装
#准备环境
Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行 Nacos,还需要为此配置 Maven 环境,请确保是在以下版本环境中安装使用:
- 64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。
- 64 bit JDK 1.8+
- Maven 3.2.x+
#下载并安装
Nacos依赖于Java环境,所以必须安装Java环境。然后从官网下载Nacos的解压包,安装稳定版的,下载地址:https://github.com/alibaba/nacos/releases
# 下载源码
git clone https://github.com/alibaba/nacos.git
# 安装到本地仓库
cd nacos/
mvn -Prelease-nacos clean install -U
注:下载依赖时间较长,请耐心等待...
[#])启动服务
cd distribution/target/nacos-server-0.7.0/nacos/bin
# Linux
./startup.sh -m standalone
# Windows
startup.cmd
[#]访问服务
打开浏览器访问:http://localhost:8848/nacos
注:从 0.8.0 版本开始,需要登录才可访问,默认账号密码为 nacos/nacos