Nacos注册中心

简介: 本文介绍了Nacos的安装部署、服务注册与发现、分级模型、负载均衡策略、权重控制、环境隔离及临时/持久化实例等核心功能,涵盖从本地启动到生产级配置的完整实践流程。通过实际操作演示了如何整合Spring Cloud Alibaba实现服务治理,并深入解析其架构设计与应用场景。

1.Nacos安装部署

1.1 下载安装
nacos官网提供了安装部署教程,其下载链接指向github官网,选择合适版本即可。如访问受阻可直接使用以下最新稳定版压缩包:

nacos-server-2.1.0.zip(112 MB),后续我们也可能会更改为其他版本做更多测试。
公司一般会采用最新版落后几个版本的稳定版当做生产版本,避免一些新特性引发的未知问题。
1.2 启动
window请直接进入路径:cd nacos/bin后双击startup.sh启动,或按照下述指令启动
linux或mac进入路径:nacos/bin/,cmd控制台执行
注意:如存在端口冲突,可至路径:nacos/conf/application.properties 中修改后启动

CONFIGURATIONS

SPRING BOOT RELATED

水水水水水水水水水水水水水水*#

#水水水水水水水水水水水水水水水水

### DEFAULT WEB CONTEXT PATH:

SERVER,SERVLET.CONTEXTPATH /NACOS

INCLUDE MESSAGE FIELD

###

SERVER.ERROR.INCLUDE-MESSAGE ALWAYS

E DEFAULT WEB SERVER PORT:

### DE

SERVER,PORT-8848


注意:nacos存储路径不可有中文。如遇启动异常,
mac可至路径:nacos/logs/start.out 查看具体错误信息
windows可至路径:nacos/logs/nacos.log 查看具体错误信息,正常启动日志如下

2022-12-24 11:25:59,033 INFO TOMCAT INITIALIZED WITH PORT(S): 8848 (HTTP)

INFO ROOT WEBAPPLICATIONCONTEXT: INITIALIZATION COMPLETED IN 5758 MS

2022-12-24 11:25:59,586

31 INFO INITIALIZING EXECUTORSERVICE '

CE 'APPLICATIONTASKEXECUTOR'

2022-12-24 11:26:06,831 I

[STATIC/INDEX.HTML]

2022-12-24 11:26:07,053 INFO ADDING \

ING WELCOME PAGE: CLASS PATH RESOURCE

2022-12-24 11:26:08,179 INFO CREATING FILT

CING FILTER CHAIN: ANT [PATTERN-'/**'], []

2022-12-24 11:26:08,273 INFO CREATING FILTER CHAIN: ANY REQUEST, [

ORG-SPRINGTRAMEWORK.SECURITY.WEBRATIONTEXT,REQUEST-ASYNCRWEBASYNCHANGHANAGERINTEGRATILTERE7678EDSA

ORG.SPRINGFRAMEWORK.SECURITY.WEB.CONTEXT.SECURITYCONTEXTPERSISTENCEFILTERE4016CCL

ORG.SPRINGFRAMEWORK.SECURITY.WEB.HEADER.HEADERWRITERFILTERESEC46CDD.

ORG.SPRINGFRAMEWORK.SECURITY.WEB.CSRF.CSRFFILTER073A19967,

ORG.SPRINGFRAMEWORK.SECURITY.WEB.AUTHENTICATION.LOGOUT.LOQOUTFILTER045188262.

ORG:SPRINGFRAMEWORK.SECURITY.WEB.SAVEDREQUEST.REQUESTCACHEAWAREFILTERE3FFB3598.

ORG-SPRINGFRAMEWORK,SECURITY,WEB.SERVLETAPL,SECURITYCONTEXTHOLDERAWAREWAREQUESTFILTEREZ13BD3DD3D5

ORG-SPRINGFRAMEWORK.SECURITY.VEB.AUTHENTICATION.ANON.ANONYMOUSAUTHENTIONFILTERE6FCA5907.

ORG.SPRINGFRAMEWORK.SECURITY.WEB.SESSION.SESSIONMANAGEMENTFILTERE112D1C8E.

ORG.SPRINGFRAMEWORK.SECURITY.WEB.ACCESS.EXCEPTIONTRANSLATIONFILTERE6ELB9411

2022-12-24 11:26:08,554

EXECUTORSERVICE 'TASKSCHEDULER'

INFO INITIALIZING EX

2022-12-24 11:26:08,611 INFO EXPOSING 2 ENDPOINT(S) BENEATH BASE PATH '/ACTUATOR'

2022-12-24 11:26:08,861 INFO TOMCAT STARTED ON PORT(S): 8848 (HTTP) WITH (

CONTEXT

/NACOS

PATH

2022-12-24 11:26:08,868

INFO NACOS

D SUCCESSFULLY IN STAND ALONE MODE. US

E. USE EMBEDDED STORAGE

STARTED S

2022-12-24 11:26:15,662

INFO INITIALIZING SERVLET 'DISPATCHERSERVLET'

2022-12-24 11:26:15,686 I

SINFO

NFO COMPLETED INITIALIZATION IN 23 MS


1.3 访问
成功启动后访问如下地址:http://localhost:8848/nacos/#/login,默认用户名/密码:nacos/nacos

NACOS.

文档

首页

博客

NACOS企业版

配置管理

NACOS 2.2.0

PUBLIC

配置管理

默认模糊匹配

已开启默认模糊查询

已开启默认模糊查询

高级查询

导入配置

查询

创建配置

DATA ID

配置列表

查询到0条满足要求的配置.

历史版本

操作

归属应用

GROUP

监听查询

没有数据

服务管理

权限控制

命名空间

集群管理


2.整合Nacos注册中心
2.1 依赖导入
父工程新增spring-cloud-alibaba依赖
因为Spring-cloud-alibaba自身也是集成了多个组件,所以这里只需引入alibaba大管家即可

M POM.XML(CLOUD-DEMO)

SPRING-CLOUD-ALIBABA-DEPENDENCIES-2.2.6.RELEASE.POM

CC W

12/14

NACOS

<DEPENDENCY>

187

188

<GROUPID>COM.ALIBABA.CLOUD</GROUPID>

<ARTIFACTID>SPRING-CLOUD-CIRCUITBREAKER-SENTINEL</ARTIFACTID>

189

190

<VERSION>2.2.6.RELEASE</VERSION>

191

</DEPENDENCY>

192

<DEPENDENCY>

<GROUPID>COM.ALIBABA.CLOUD</GROUPID>

193

<ARTIFACTID>SPRING-CLOUD-STARTER-ALIBABA-SEATA</ARTIFACTID>

194

<VERSION>2.2.6.RELEASE</VERSION>

195

</DEPENDENCY>

196

<DEPENDENCY>

197

<GROUPID>COM.ALIBABA.CLOUD</GROUPID>

198

199

<ARTIFACTID>SPRING-CLOUD-STARTER-ALIBABA-HACOS-DISCOVERY</ARTIFACTID>

<VERSION>2.2.6.RELEASE</VERSION>

200

</DEPENDENCY>

201

<DEPENDENCY>

202

<GROUPID>COM.ALIBABA.CLOUD</GROUPID>

203

<ARTIFACTID>SPRING-CLOUD-STARTER-ALIBABA-NACOS-CONFIG</ARTIFACTID>

204

<VERSION>2.2.6.RELEASE</VERSION>

205

</DEPENDENCY>

206

207

<DEPENDENCY>

<GROUPID>COM.ALIBABA.CLOUD</GROUPID>

208

<ARTIFACTID>SPRING-CLOUD-STARTER-ALIBABA-NACOS-CONFIG-SERVER</ARTIFACTID>

209

<VERSION>2.2.6.RELEASE</VERSION>

210

</DEPENDENCY>

211


子工程去除eureka依赖
注意order-service、user-service均需删除
子工程新增spring-cloud-alibaba-nacos依赖
注意:不同于父工程,是nacos-discovery,order-service、user-service均需添加
至此,三个工程pom如下(eureka相关工程无需操作):
父pom:

pom.xml(3 KB)
user-service pom:

pom.xml(2 KB)
order-service pom:

pom.xml(2 KB)
2.2 配置文件修改注册中心
子工程均去除eureka注册配置,均新增nacos配置
至此,两个业务工程application.yml如下(eureka相关工程无需操作):
order-service:

application.yml(1 KB)
user-service:

application.yml(1 KB)
2.3 启动工程并验证
启动应用后访问Nacos会发现服务已完成注册

NACOS.

文档

首页

社区

博客

NACOS企业版

服务列表

NACOS 2.1.0

PUBLIC

配置管理

创建服务

隐藏空服务

请输入分组名称

分组名称

请输入服务名称

服务名称

查询

服务管理

触发保护阈值

操作

实例数

服务名

集群数目

分组名称

健康实例数

服务列表

2

2

DEFAULT_GROUP

详情示例代码订阅者|删除

FALSE

ORDERSERVICE

订阅者列表

1

1

详情示例代码|订阅者|删除

DEFAULT_GROUP

FALSE

USERSERVICE

权限控制

每页显示:

10

下一页

命名空间

集群管理


如启动遇到工程仍存在Eureka依赖,可尝试重新编译整个工程,或手动删除target文件夹后再启动

SERVICES

INITIAL REGISTRY FETCH FRON BACKUP SERVERS FAILED

西三云王王用七

12-24 11:35:23:315

INF0 42669

MAIN]COM.NETFLIX.DISCOVERY.DISCOVERYCLIENT

STARTING HEARTBEAT EXECUTOR: RENEW INTERVAL IS: 30

12-24 11:35:23:317

INF0 42669

MAIN] COR

COM.NETFLIX.DISCOVERY.DISCOVERYCLIENT

)APPLICATION

C.N.DISCOVERY.INSTANCEINFOREPLICATOR

12-24 11:35:23:320

INSTANCEINFOREPLICATOR ONBENAND UPDATE ALLOWED RATE PER MIN IS4

MAIN]

INF0 42669

12-24 11:35:23:324

COM.NETFLIX.DISCOVERY.DISCOVERYCLIENT

MAINL

:DISCOVERY CLIENT INITLALIZED AT TIMESTANP 1671852923323 WITH INITIAL INSTANCES COUNT:

USERAPPLICATION

12-24 11:35:23:327

REGISTERING APPLICATION USERSERVICE WITH EUREKA WITH STATUS UP

MAIN]

INF0 42669

O.S.C.N.E.S.EUREKASERVICEREGISTRY

ORDERAPPLICATION

12-24 11:35:23:328

INF0 4

: SAW LOCAL STATUS CHANGE EVENT STATUSCHANGEEVENT [TINESTAMP:1671852925328, CURRENTSUP]

MAIN]

COM.NETFLIX.DISCOVERY.DISCOVERYCLIENT

EUREKAAPPLICATION

PREVIOUSSTARTING

USERAPPLICATION 2

12-24 11:35:23:330

INF0 42669

:DISCOVERYCLIENT.USERSERVICE/192.168.125.121:USERSERVICE:8081: REGISTERING SERVICE....

COM.NETFLIX.DISCOVERY.DISCOVERYCLIENT

[NFOREPLICATOR-0]

INF042669

12-24 11:35:23:342  1

[NFOREPTICATOR-0] C.N.D.S.T.D.REDIRECTINGEUREKAHTTPCLIENT :

ENT:: REQUEST EXECUTION ERROR. ENDPOINTEDEFAULTENDPOINT( SERVICEURLE HTTO://LAGALHOST;S781/EURBKAL

TION REFUSED(

EXCEPTION-JAVA.NET.CONNECTEXCEPTION:CONNECTION

(REFUSED)

AT COM,SUN.JERSEY,SLLENT,APACHEA,APACHANTTPCLIENTANTANDLER,NANDLECANDLECANASHENTHENTHANGLER,LAYA;187

AT COM.SUN-JERSOY-APL.CLLENT,FILTER,9ZIPCONTENTENCODINGFALTER,NANDLEGGZIPEONTENTENTENGDINAFILTER,173D

AT COM,NETFLIX.DISCOVERY.EUREKALDENTITYHEADERFILTER.NANDLE(EUREKAIDENTITVHEADEREILTER,LAVA;Z7)

AT COM.SUN.JERSEY.API.CLIENT.CLIENT.HANDLE(CLIENT.IAVA:652)

AT COM.SUN.JERSEY.API.CLLENT.WEBRESOURCE.HANDLE(LIEBRESQURSE.1AYA:632)

AT CON.SUN.JERSEY.API.CLIENT.MEBRESOURCE.ACCE.ACCESS$20B(ILEBRESQURSE.1AYA:72)

AT COM.SUN.JERSEY.API.CLIENT.WEBRESOURCE$BUILDER.POST(LLEBRESQUESQUESE.LAYAI57G)

AT 6ON-NNTRJIX,DFSCOVAREAREA,TRONSPORRTDEEAHERAHEAHERAHETORETORETOR-F2REATSCUTSCUTSCUREATEEC333333333

AT 00N,NE3FJX,DISCOVERY 3NAREA TRANSPOFF,REC, RNASSARSATOR 3NATOR-RESOR-RESTOR 3ESTARRATARSORSATAR,S6

AR CON,NETRIX,ARCOVER,  SHAREA,TRANSPORT,ARCORATOR -RESTORTARTARTORSTORSTORSTOR-RESTARTANTBESORATOC-3

AT CON,NEFFLX,ATSCOVERY,SNARED,TRONTECURTARATER,FURRASS

AT CON,NETRIX,AT ATSOOVERY, SNAREA,TRANSPORT,AECOR,FANT,BXEJRYOBLAURSHAREAREARTECSTECSARRAITTBRLANT-J

AT GOM-NNERTEX,A1SCOVERY,SNURED,TRONSPORT,DESORATAR,FURRANTERATORATORATORATORATORSISTARRATARATAR,JANA


3.Nacos服务分级模型

例如:提供用户功能的USER-SERVICE

服务

以机房划分集群

例如:杭州集群,上海集群

集群

集群

例如:端口为8081

实例

的USER-SERVICE

实例

集群

实例

例如:端口为

北京

实例

8082的USER-

SERVICE

杭州

例如:端口为

实例

实例

8083的USER-

上海

SERVICE


不同于Zookeeper没有针对服务发现设计数据模型,它的数据是以一种更抽象的树形K-V组织的,因此理论上可以存储任何语义的数据。而Eureka或Consule都做到了实例级别的数据扩展,这能满足大多数场景但无法满足大规模和多环境的服务数据存储。Nacos经过多年经验后提炼出上述模型,其特点在于:服务-集群-实例三层模型,可以满足所有场景下的数据存数和管理。
通过设置不同的集群所在参数,可以保证相同集群间优先调用,减少网络开销。当本地集群服务无法拉取时,再去跨集群调用。对于此工程我们只需要设置提付提供者集群参数:
此时访问Nacos会发现其增加了集群属性发生变化,原为:Default

服务详情

返回

编辑服务

服务名

USERSERVICE

分组

DEFAULT_GROUP

保护阈值

0

元数据

服务路由类型

集群HZ

集群配置

元数据过滤

VALUE

KEY

添加过滤

临时实例

端口

元数据

IP

权重

操作

健康状态

编辑

PRESERVED.REGISTER.SOURCESPRING.CLOUD

192.168.125.121

8081

TRUE

TRUE

下线

编辑

PRESERVED.REGISTER.SOURCESPRING_CLOUD

192.168.125.121

8082

TRUE

TRUE

下线


为模拟多集群场景,此时我们复制一个新的userApplicatio3启动类,具体操作步骤如下:
复制一个新的userApplicatio3启动类,设置其启动端口:-Dserver.port=8083
更改配置文件集群属性为GZ(注意不要停userApplication、userApplication2,否则原注册信息会失效)
启动userApplication3并访问nacos

EDIT CONFIGURATION

STORE AS PROJECT FILE

USERAPPLICATION 3

NAME:

BUILD AND RUN

飞M

MODIFY OPTIONS

JAVA 8 SDK OF 'USER-SERVICE' MODULE

CP USER-SERVICE

DSERVER.PORT-8083

CN.ITCAST.USER.USERAPPLICATION

PROGRAM ARGUMENTS

PRESS 飞 FOR FIELD HINTS

WORKING DIRECTORY:

/USERS/HEBO/DESKTOP/CODE/OTHER/CLOUD

ENVIRONMENT VARIABLES:

SEPARATE VARIABLES WITH SEMICOLON:VAR:VALUE;VAR1-VALUE1

OPEN RUN/DEBUG TOOL WINDOW WHEN STARTED

X P X

CANCEL

OK

APPLY


USERAP

APPLICATION.YML

R三

M POM.XML(USER-SERVICE

USERAPPLICA

PROJECT

M POM.XML(CLOUD-DEMO

DISCOVERYCLIENT.CLAST

SPRING-CLOUD-ALIBABA-DEPENDENCIES-2.2.6.RELEASE.POM

USER-SERVICE/../APPLICATION.YM

USE

PROJECT

/DESKTOP/CODE/OTHI

CLOUD [CLOUD-D

DEMO]

ORDER-SERVICE/../APPLICATION.

POM.XML(ORDER-SERVICE )

IDEA

EUREKA-SERVER

2

PORT:8081

LC-HELPER

ORDERSERVICE

3

SPRING:

I SRC

DATASOURCE:

MAIN

URL:JDBC:MYSQL://LOCALHOST:3306/CLOUD_USER?USESSL-FALSE

JAVA

USERNAME:ROOT

DL CN.ITCAST.ORDER

7

>  MAPPER

PASSWORD:ROOT123456

BLL POJO

8

DRIVER-CLASS-NAME: COM.MYSQL.JDBC.DRIVER

中中中国

DL SERVICE

APPLICATION

ORDERSERVICE

NAME:USERSERVICE

10

DWEB

11

CLOUD:

ORDERAPPLICATION

12

NACOS:

RESOURCES

NACOS服务地址

SERVER-ADDR: LOCALHOST:8848

13

APPLICATIONYML

DISCOVERY:

声明集群名称杭州

CLUSTER-NANE:GZ

TARGET

MYBATIS:

N POM.XML

TYPE-ALIASES-PAC

PACKAGE:CN.ITCAST.USER.POJO

USER-SERVICE

CONFIGURATION:

MAIN

MAP-UNDERSCORE-CAMEL-CASE:TRUE

LOGGING:

CN.ITCAST.USER

LEVET:

中自中心

MAPPER

CN.ITCAST:DEBUG

DL POJO

PATTERN:

SERVICE

WEB

DOCUMENT 1/1

SERVICES

三云王王国士

MAIN]ORG.APACHE.CATALINA.CORE.STANDARDENGINE

STARTING SERVLET ENGINE:[APACHE TOMCAT/9.0.43]

12-24 20:14:24:684  INF0 5

0 56083

APPLICATION

MAIN]O.A.C.C.C.C.[TOMCAT].[LOCALHOST].[/]

12-24 20:14:24:817 INF0 56083

INITIALIZING SPRING EMBEDDED WEBAPPLICATIONCONTEXT

RUNNING

MAIN) W.S.C,SERVLETWEBSERVERAPPLICATIONCONTEXT: ROOT WEBAPPAPPLICATIONCONTEXT: INLTIALIZATION COMPLET

12-24 20:14:24:817 INF0 56083

ORDERAPPLICATION

:NO URLS WILL BE POLLED AS DYNAMIC CONFIGURATION SOUN

12-24 20:14:25:118 WARN 56083

MAIN]C.N.C.SOURCES.URLCONFIGURATIONSOURCE

USERAPPLICATION

TO ENABLE URLS AS DYNAMIC CONFIGURATION SOURCES, DEF

12-24 20:14:25:118 INF0 56083

MAIN] C.N.C.SOURCES.URLCONFIGURATIONSOURCE

USERAPPLICATION 2

.ADDITIONALURLS OR MAKE CONFIG.PROPERTIES AVAILABLE ON CLASSPATH.

USERAPPLICATION 3

12-24 20.14.25.125 WADM 54007 -----L         MADM E  MADM E        MADO7 --------I           M . 20 2


此时查看Nacos服务信息会发现,已经有了两个集群信息。

1集群HZ

集群配置

元数据过滤

添加过滤

IP

端口

元数据

权重

临时实例

操作

健康状态

编辑

192.168.125.121

PRESERVED.REGISTER.SOURCE-SPRING_CLOUD

8081

TRUE

TRUE

下线

编辑

PRESERVED.REGISTER.SOURCESPRING_CLOUD

8082

192.168.125.121

TRUE

TRUE

下线

集群GZ

集群配置

元数据过滤

添加过滤

VALUE

IP

临时实例

元数据

权重

操作

健康状态

端口

编辑

PRESERVED.REGISTER.SOURCESPRING_CLOUD

192.168.125.121

8083

TRUE

TRUE

下线


此时我们就完成Nacos分级模型的验证,在实际的工作、生产环境中,一般来说服务都是同集群部署,不需要开发人员声明式感知服务所在集群信息。
4.NacosRule负载均衡策略
修改oder-service集群属性、负载均衡策略,调整为如下:
注意:此时需要将OrderApplication中的代码声明式负载均衡策略注释或删除(约定大于配置),否则失效
此时重启应用后会发现orderservice集群属性存在变化:

服务详情

编辑服务

返回

服务名

分组

DEFAULT GROUP

0

保护阈值

元数据

服务路由类型

NONE

集群 HZ

集群配置

元数据过滤

添加过滤

IP

元数据

操作

健康状态

权重

端口

临时实例

编辑

1

PRESERVED.REGLSTER.SOURCESSPRING_CLOUD

8080

192.168.125.1

TRUE

下线


访问oder-service服务会发现其优先匹配HZ集群的userApplication、userApplication2。
上面我们提到优先调用本集群的服务,当本集群服务实例不存在时会考虑跨集群调用,故我们停掉userApplication、userApplication2,再做一次访问会发现访问正常,同时请求日志打到userApplication3。

SERVICES

[NIO-8083-EXEC-3] C.I.USER.MAPPER.USERMAPPER.FINDBYID

12-24 20:41:18:565 DEBUG 57282

PREPARING:SELECT*FROM TB_USER WHERE ID-?

三云乳工田七

入金

[NIO-8083-EXEC-3] C.I.USER.MAPPER.USERMAPPER.FINDBYID

三>PARAMETERS: 2(LONG)

12-24 20:41:18:566 DEBUG 57282

APPLICATION

[NIO-8083-EXEC-3] C.I.USER.MAPPER.USERMAPPER.FINDBYID

TOTAL: 1

12-24 20:41:18:567 DEBUG 57282

RUNNING

ORDERAPPLICATION

USERAPPLICATION 3

FINISHED

USERAPPLICATION

USERAPPLICATION 2

O

NOTSTARTED

EUREKAAPPLICATION


5.Nacos权重控制
基于上一章节的负载均衡算法,我们可以了解到:存在部分机器性能更优,此时该机器理应得到更多的流量分配,nacos通过设置服务权重解决这一问题,权重越大访问评率越高,配置页面如下:

集群HZ

集群配置

添加过滤

元数据过滤

VALUE

KEY

权重

元数据

临时实例

端口

健康状态

IP

操作

编辑

PRESERVED.REGISTER.SOURCESSPRING_CLOUD

192.168125.121

8081

TRUE

下线

编辑

PRESERVED.REGLSTER.SOURCESSPRING_CLOUD

8082

192.168.125.121

TRUE

TRUE

下线


编辑后再次访问服务,会发现流量产生明细变化。如权重设置为0对于服务调用方等同于服务下线。
6.Nacos环境隔离
日常开发过程中,我们一般会有dev、test、poc、prod等多个环境,同一个服务不同环境之间因存在代码不一致问题肯定需要做隔离调度,Nacos通过namespace解决此问题,配置页面如下,我们新增一个dev:

NACOS.

博窖

文档

首页

NACOS企业版

社区

命名空间

NACOS 2.1.0

配置管理

刚新

新建命名空间

配置数

命名空间名称

命名空间ID

操作

描述

服务管理

0

详情    编辑

PUBLIC(保留空间)

服务列表

订阅者列表

权限控制

命名空间

朱群管理


新建命名空间

命名空间ID(不填

则自动生成)

命名空间名

DEV

描述

开发环境

取消

确定


增加完成后列表发生变化如下:

命名空间

新建命名空间

耐新

命名空间名称

操作

描述

配置数

命名空间ID

详情删除编辑

0

PUBLIC(保留空间)

O

详情制除编辑

DEY

06E5F1A5-9ECB-438A-AAE0-B434073BB973


我们尝试在order-service中增加namespace,并重启服务再次访问,注意:namespace后字符串为上图ID
此时会因不在同一命名空间导致无法访问(因userservice暴露服务时未声明namespace,默认public)

JAVA.LANG.ILLEGALSTATAEXCEPTION CREATE BREAKPOINT : NO INSTANCES AVAILABLE FOR USERSERVICE

[SPRING-CLOUD-NETFLIX-RIBBON-2.2.7.RELEASE.JAR:2.2.7.RELEASE]

AT ORD.SPRINAFRANENORK.CLOUD.NETRLIX.NIBBON.RIBBONLOADBALANCERCLIENT,EXECRIBHONLOADBALANCERCLIENT, --

AT CN.ITCAST.ORDER.SERVICE-ORDERSERVICE.QUERYUSERYUSERINFOBYID(ORDERSERYICE,JAVA:55)-(CLASSES/:NA)

AT CN.ITCAST.ORDER.SERVICE.ORDERSERVICE.FINDBYID(ORDERSERVICE.JAVA;39)-(CLASSES/INAL

AT ON,ITCAST-ORDER WED,ORDERCONTROILER FINDBYID(ORDERCONTRONTROLLER,JAYA:JI) -(CLASSES/:NTERNAL LLINE

RELEASE]


我们修改user-service的配置文件,增加namespace,并重启服务再次访问会发现服务恢复正常

"USERAPPLICATION

CLOUD

APPLICATION.YML

JREBEL

RESOURCES

MAIN

ML POM.XML(CLOUD-DEMO

DISCOVERYCLIENT.CLAS

USERAPPLICATION.JAVI

PROJECT V

ORDERAPPLICATION.JAVE

USER-SERVICE/-JAPPLICATION.YM

M POM.XML [USER-SERVICE

EUREKAAPPLICATION JAV

ALL EUREKA-SERVER/-JAPPLICATION.YM ARDER

ML POM.XML [ORDERVICE

LANIANTANTANTALLY

URT:JDBC:MYSQT://LOCATHOST:3306/CTOUD_USE

USER7USESSLFALSE

MPOM.XML

USERNANE:ROOT

PASSWORD:POOT123456

DRIVER-CLASS-NANE:COM.NYSQL.JDBC.DRIVER

MAIN

APPLICATION:

V JAVA

11

CLOUD:

DL MAPPER

> DI POJO

12

DL SERVICE

13

NACOS服务地址

SERVER-ADDR:LOCALHOST:8848

DI WEB

14

DISCOVERY:

USERAPPLICATION

15

CLUSTER-N8NE:HZ产声明集群名称杭州

ROSOURCOS

NANESPACE:06E5F1A5-9ECB-438A-AAEO-B434073BB973 # 命名空间

16

白MYBATIS:

TYPE-ALIASES-PACKAGE:CN.ITCAST.USER.PO30

TARGET

M POM.XML

AP-UNDORSCORE-TO-CAMEL-CASE:TRUE

MPOM.XML

TH EXTEMAL LIBRARIES

LOGGING:

DOCUMENT 1/1

SCRATCHES AND CONSOLES

SERVICES

[NIO-8081-EXEC-1]O.A.C.C.C.[TONCAT].[LOCALHOST].[/]

三云王风大

INITLALIZING SPRING DISPATCHERSERVLET DISPATCHERSERVLET'

2-24  20:55:15:229

INITIALIZING SERVLET'DISPATCHERSERVLET'

INF0 60367

[NIO-8081-EXEC-1] O.S.WEB.SERVLET.DISPATCHERSERVLET

APPLICATION

INF0 68367

[NIO-8081-EXEC-1] O.S.WEB.SERYLET.DISPATCHERSERVLET

RUNNING

[N1O-B081-EXEC-1]CON.ZAXXER.HIKARI.HIKARIDATASOURCE

12-24 20:55:15:291  INF0 60367

ORDERAPPLICATION

HIKAR1POOL-1 - STARTING..

[NIO-8081-EXEC-1] CON.ZAXXER.HIKAR1.HIKARIDATASOURCE

12-24 20:55:15:547 INF0 60367

HIKARIPOOL-1-START COMPLETED.

12-24 20:55:15:555 0EBUG 60367

[NIO-8081-EXEC-1]C.I.USER.MAPPER.USERMAPPER.FINDBYID

SA>PREPARING:SELECT*FROM TB.USER WHERE ID ?

[NIO-8081-EXEC-1] C.I.USER.MAPPER.USERHAPPER.FINDBYID

12-24 20:55:15:578 DEBUG  60367

12-24 20:55:15:597 DEBUG 60367

[NIO-8081-EXEC-1] C.I.USER.MAPPER.USERMAPPER.FINDBYID

TOTAL:

NOT STARTED

EUREKAPPLICATION


7.Nacos临时实例与持久化实例
Nacos在定义上区分临时实例和持久化实例,其主要区分关键是健康检查的方式。
临时实例:客户端上报模型,能够自动摘除不健康实例,无需持久化实例存储
持久实例:服务端反省探测模式,客户端因不上报心跳故不会自动摘除下线实例

INSTANCE STAYS WHEN UNHEALTHY

INSTANCE CAN BE EXPIRED

CLIENT SENDS BEAT TO KEEP ITSELF

SERVER SIDE HEALTH CHECK OF INSTANCE

NETFLIX

ALIVE

EUREKA

CONSUL

EPHEMERALTRUE

EPHEMERALFALSE

COREDNS

NACOS.

NACOS.

INSTANCE OF SERVICE


在大中型公司,两种类型一般都会使用,基础的组件如数据库、缓存等往往不能上报心跳,这种类型的服务在注册时就需要作为持计划实例注册。而上层的业务服务,如微服务或Dubbo服务,服务的Provider端支持添加心跳,此时就可以使用临时实例的注册方式。
其配置文件配置如下:
8.Nacos更多总结分析

Nacos.mm(32 KB),如无法访问可链接至:https://kdocs.cn/l/ccGuOOfpPjFv,图片展示如下:


9.总结
本节从Nacos安装、运行到具体规则配置,带领读者们深度参与了Nacos日常使用场景,Nacos作为注册中心可以优雅替换Eureka也离不开SpringCloud Alibaba的开源贡献。作为国内主流的配置、注册中心,Nacos在国内多数微服务公司都有使用,感兴趣的可以阅读一下本节推荐资料,笔者整理归纳在本文第8章节。
Nacos除了能够实现服务注册发现(AP),此外还有个重要特性:配置管理(CP),我们将在下一章节展开学习。
思考问题
Nacos是什么?解决了什么问题?
Nacos是如何优雅替换Eureka的?
Nacos实现的是客户端,还是服务端负载均衡?
Nacos如何实现注册中心?
10.推荐阅读资料
Nacos白皮书:

Nacos白皮书.pdf(12.8 MB)

相关文章
|
1天前
|
云安全 人工智能 算法
以“AI对抗AI”,阿里云验证码进入2.0时代
三层立体防护,用大模型打赢人机攻防战
1288 1
|
9天前
|
编解码 人工智能 自然语言处理
⚽阿里云百炼通义万相 2.6 视频生成玩法手册
通义万相Wan 2.6是全球首个支持角色扮演的AI视频生成模型,可基于参考视频形象与音色生成多角色合拍、多镜头叙事的15秒长视频,实现声画同步、智能分镜,适用于影视创作、营销展示等场景。
696 4
|
2天前
|
机器学习/深度学习 安全 API
MAI-UI 开源:通用 GUI 智能体基座登顶 SOTA!
MAI-UI是通义实验室推出的全尺寸GUI智能体基座模型,原生集成用户交互、MCP工具调用与端云协同能力。支持跨App操作、模糊语义理解与主动提问澄清,通过大规模在线强化学习实现复杂任务自动化,在出行、办公等高频场景中表现卓越,已登顶ScreenSpot-Pro、MobileWorld等多项SOTA评测。
527 2
|
3天前
|
人工智能 Rust 运维
这个神器让你白嫖ClaudeOpus 4.5,Gemini 3!还能接Claude Code等任意平台
加我进AI讨论学习群,公众号右下角“联系方式”文末有老金的 开源知识库地址·全免费
|
2天前
|
存储 弹性计算 安全
阿里云服务器4核8G收费标准和活动价格参考:u2a实例898.20元起,计算型c9a3459.05元起
现在租用阿里云服务器4核8G价格是多少?具体价格及配置详情如下:云服务器ECS通用算力型u2a实例,配备4核8G配置、1M带宽及40G ESSD云盘(作为系统盘),其活动价格为898.20元/1年起;此外,ECS计算型c9a实例4核8G配置搭配20G ESSD云盘,活动价格为3459.05元/1年起。在阿里云的当前活动中,4核8G云服务器提供了多种实例规格供用户选择,不同实例规格及带宽的组合将带来不同的优惠价格。本文为大家解析阿里云服务器4核8G配置的实例规格收费标准与最新活动价格情况,以供参考。
229 150
|
9天前
|
机器学习/深度学习 人工智能 前端开发
构建AI智能体:七十、小树成林,聚沙成塔:随机森林与大模型的协同进化
随机森林是一种基于决策树的集成学习算法,通过构建多棵决策树并结合它们的预测结果来提高准确性和稳定性。其核心思想包括两个随机性:Bootstrap采样(每棵树使用不同的训练子集)和特征随机选择(每棵树分裂时只考虑部分特征)。这种方法能有效处理大规模高维数据,避免过拟合,并评估特征重要性。随机森林的超参数如树的数量、最大深度等可通过网格搜索优化。该算法兼具强大预测能力和工程化优势,是机器学习中的常用基础模型。
353 164