Nacos

  • Spring Cloud Alibaba
  • 简介
  • 组件
  • 项目地址
  • 版本关系
  • Nacos
  • 简介
  • 服务(Service)
  • 服务注册中心 (Service Registry)
  • 服务元数据 (Service Metadata)
  • 服务提供方 (Service Provider)
  • 服务消费方 (Service Consumer)
  • 配置 (Configuration)---配置文件中心
  • 配置管理 (Configuration Management)
  • 名字服务 (Naming Service)
  • 配置服务 (Configuration Service)
  • NacosServer 的安装和启动
  • NacosServer 的下载
  • 与eureka区别


Spring Cloud Alibaba

简介

Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式 应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发 分布式应用服务。

组件

spring cloud 可以用nacos 替代 eureka吗_数据库

项目地址

https://github.com/alibaba/spring-cloud-alibaba

版本关系

spring cloud 可以用nacos 替代 eureka吗_eureka_02

spring cloud 可以用nacos 替代 eureka吗_spring cloud_03

Nacos

简介

官网: https://nacos.io/zh-cn/
Nacos 致力于发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

服务(Service)

服务是指一个或一组软件功能(例如特定信息的检索或一组操作的执行),其目的是不同的客 户端可以为不同的目的重用(例如通过跨进程的网络调用)。Nacos 支持主流的服务生态, 如 Kubernetes Service 、 gRPC|Dubbo RPC Service 或 者 Spring Cloud RESTful Service.

服务注册中心 (Service Registry)

服务注册中心,它是服务实例及元数据的数据库。服务实例在启动时注册到服务注册表,并在 关闭时注销。服务和路由器的客户端查询服务注册表以查找服务的可用实例。服务注册中心可 能会调用服务实例的健康检查 API 来验证它是否能够处理请求。

服务元数据 (Service Metadata)

服务元数据是指包括服务端点(endpoints)、服务标签、服务版本号、服务实例权重、路由规 则、安全策略等描述服务的数据

服务提供方 (Service Provider)

是指提供可复用和可调用服务的应用方

服务消费方 (Service Consumer)

是指会发起对某个服务调用的应用方

配置 (Configuration)—配置文件中心

在系统开发过程中通常会将一些需要变更的参数、变量等从代码中分离出来独立管理,以独立 的配置文件的形式存在。目的是让静态的系统工件或者交付物(如 WAR,JAR 包等)更好地 和实际的物理运行环境进行适配。配置管理一般包含在系统部署的过程中,由系统管理员或者 运维人员完成这个步骤。配置变更是调整系统运行时的行为的有效手段之一。

配置管理 (Configuration Management)

在数据中心中,系统中所有配置的编辑、存储、分发、变更管理、历史版本管理、变更审计等 所有与配置相关的活动统称为配置管理

名字服务 (Naming Service)

提供分布式系统中所有对象(Object)、实体(Entity)的“名字”到关联的元数据之间的映射管 理服务,例如 ServiceName -> Endpoints Info, Distributed Lock Name -> Lock Owner/Status Info, DNS Domain Name -> IP List, 服务发现和 DNS 就是名字服务的 2 大场景。

配置服务 (Configuration Service)

在服务或者应用运行过程中,提供动态配置或者元数据以及配置管理的服务提供者

NacosServer 的安装和启动

NacosServer 的下载

NacosServer 相当于 EurekaServer,只不过 eurekaServer 使我们自己搭建的一个项目, 而 NacosServer 别人已经提供好了

地址:Nacos下载地址

spring cloud 可以用nacos 替代 eureka吗_微服务_04


spring cloud 可以用nacos 替代 eureka吗_数据库_05

spring cloud 可以用nacos 替代 eureka吗_数据库_06

新建一个数据库

spring cloud 可以用nacos 替代 eureka吗_微服务_07

将conf文件夹内的nacos-mysql.sql文件拖入新建的nacos数据库,Mysql版本最好用5.7

spring cloud 可以用nacos 替代 eureka吗_元数据_08


打开application.properties文件

spring cloud 可以用nacos 替代 eureka吗_数据库_09

将这几项注释去掉

spring cloud 可以用nacos 替代 eureka吗_数据库_10

更改连接MySQL数据库的用户名和密码

spring cloud 可以用nacos 替代 eureka吗_spring cloud_11


打开nacos

spring cloud 可以用nacos 替代 eureka吗_元数据_12


这里遇到问题,nacos闪退,解决办法为修改jdk的版本为1.8

spring cloud 可以用nacos 替代 eureka吗_元数据_13


因为默认是集群模式所以会报错,解决办法为在命令窗口输入startup.cmd -m standalone 启动单击版本

spring cloud 可以用nacos 替代 eureka吗_微服务_14

spring cloud 可以用nacos 替代 eureka吗_spring cloud_15

除此之外,可以用Edit Plus打开startup.cmd,将 set MODE=”cluster”修改为 standalone

spring cloud 可以用nacos 替代 eureka吗_数据库_16


spring cloud 可以用nacos 替代 eureka吗_spring cloud_17


在浏览器中访问nacos

spring cloud 可以用nacos 替代 eureka吗_spring cloud_18


用户名和密码在nacos数据库的user表中,这里的密码使用security框架加密的,默认是naocs

spring cloud 可以用nacos 替代 eureka吗_微服务_19


spring cloud 可以用nacos 替代 eureka吗_微服务_20

与eureka区别

1.nacos需要登录,更安全

2.

当使用eureka的时候,若两个项目中有服务名称相同,在eureka中注册时会成为一个集群,其中一个想要调用自己项目中的服务则有可能调用到另一个同名服务

spring cloud 可以用nacos 替代 eureka吗_eureka_21

解决方法就是更改名字,取消集群

spring cloud 可以用nacos 替代 eureka吗_元数据_22


而nacos有命名空间,可以将服务进一步划分,谁先做好谁就有成果

spring cloud 可以用nacos 替代 eureka吗_eureka_23

spring cloud 可以用nacos 替代 eureka吗_spring cloud_24

spring cloud 可以用nacos 替代 eureka吗_spring cloud_25