spring-cloud-alibaba.2.2.x 服务注册与发现nacos简介以及环境搭建

spring-cloud-alibaba.2.2.x 服务注册与发现nacos简介以及环境搭建

1、Nacos简介

​ 详细的见nacos的官网https://nacos.io/zh-cn/docs/what-is-nacos.html

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

Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

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

Kubernetes Service

gRPC & Dubbo RPC Service

Spring Cloud RESTful Service

Nacos 的关键特性包括:

​ 服务发现和服务健康监测

​ 动态配置服务

​ 动态 DNS 服务

​ 服务及其元数据管理

Nacos的生态图

如 Nacos 全景图所示,Nacos 无缝支持一些主流的开源生态,例如

  1. Spring Cloud

  2. Apache Dubbo and Dubbo Mesh TODO

  3. Kubernetes and CNCF TODO。

  4. ……

    使用 Nacos 简化服务发现、配置管理、服务治理及管理的解决方案,让微服务的发现、管理、共享、组合更加容易。

2、Nacos的架构

从图中,大概分配三大部分

Nacos Server:主体部分,也是为上层的微服务提供OpenApi的核心,包括了Config Server(配置中心)、Naming Server(名字服务)

Nacos Console:控制台

外层的调用:服务的提供者—>注册到Nacos(通过服务名称)–>服务消费端调用服务列表

3、Nacos的功能列表

3.1、服务发现

服务注册与发现、健康检查(服务端探测、客户端心跳)、路由策略(权重、保护阈值、就近访问)

3.2、配置管理

配置管理(发布、修改、查询、监听配置)、灰度配置

3.3、元数据管理

对接第三方CMDB(beta、还不稳定);

3.4、地址服务器

支持Nacos寻址(beta、还不稳定);

3.5、……

4、搭建Nacos的服务

4.1、环境准备

Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用:

64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。
64 bit JDK 1.8+;
Maven 3.2.x+;

通过github的地址下载对应的系统的包https://github.com/alibaba/nacos/releases

4.2、启动服务器

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

sh startup.sh -m standalone

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

bash startup.sh -m standalone

Windows启动命令,或者双击startup.cmd运行文件。

cmd startup.cmd

通过地址http://localhost:8848/nacos 可以看到正常单页面,就是成功了;

默认的登录号/密码:nacos/naocs

4.3、nacos配置数据持久化

​ 在springcloud config中,gitLab或者gitHub,是作为配置文件持久化存放的地方;

nacos作为配置中心,那么线上的配置,也需要持久化,单节点的nacos,有本地数据库,可以支持持久化,如果是集群配置,就需要一个公用的mysql库,作为持久化的;

1、初始化mysql数据库

​ 在nacos的解压目录nacos/的conf目录下,nacos-mysql.sql文件,执行

2、修改对应的配置,启动nacos就可以了

​ 在nacos的解压目录nacos/的conf目录下,application.properties文件,找到对应的数据库配置,修改就可以了;

4.4、服务注册&发现和配置管理

官网demo演示

服务注册

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"
4.4、集群环境搭建

因此开源的时候推荐用户把所有服务列表放到一个vip下面,然后挂到一个域名下面

http://ip1:port/openAPI 直连ip模式,机器挂则需要修改ip才可以使用。

http://VIP:port/openAPI 挂载VIP模式,直连vip即可,下面挂server真实ip,可读性不好。

http://nacos.com:port/openAPI 域名 + VIP模式,可读性好,而且换ip方便,推荐模式

上面的内容,是官网的说明~中间的那个VIP有点不太好理解;3个节点的Nacos,挂载在一个VIP下;这个VIP指的是什么?

整体看完,以及参考了朋友公司使用的情况,这个VIP更像是一个负载均衡组件(例如:nginx、F5);把三个节点挂在一个nginx下,提供一个对外的入口Ip。

开始搭建

1、在nacos的解压目录nacos/的conf目录下,有配置文件cluster.conf,请每行配置成ip:port。(请配置3个或3个以上节点)

# ip:port
127.0.0.1:8848
127.0.0.1:8847
127.0.0.1:8846

2、配置 MySQL 数据库,初始化数据库;

生产使用建议至少主备模式,或者采用高可用数据库。

3、启动对应的节点

#启动命令(在没有参数模式,是集群模式):
sh startup.sh

4、搭建一个nginx,把三个节点配置进去,启动nginx(不演示)

​ 详细的见nacos的官网https://nacos.io/zh-cn/docs/what-is-nacos.html

原创文章 83 获赞 155 访问量 36万+

猜你喜欢

转载自blog.csdn.net/qq_28410283/article/details/105881237