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)

相关文章
|
3月前
|
XML Java 数据库
SpringCloud工程部署启动
本文介绍SpringCloud微服务工程的搭建与部署,涵盖项目创建、模块配置、数据库导入及服务远程调用实现。通过RestTemplate完成服务间HTTP通信,解决跨服务数据获取问题,并引导读者理解微服务拆分与调用关系,为后续深入学习奠定基础。(239字)
 SpringCloud工程部署启动
|
10天前
|
人工智能 安全 前端开发
Team 版 OpenClaw:HiClaw 开源,5 分钟完成本地安装
HiClaw 基于 OpenClaw、Higress AI Gateway、Element IM 客户端+Tuwunel IM 服务器(均基于 Matrix 实时通信协议)、MinIO 共享文件系统打造。
7796 6
|
安全 Java 应用服务中间件
基于CAS实现SSO单点登录
基于CAS实现SSO单点登录
基于CAS实现SSO单点登录
|
3月前
|
SpringCloudAlibaba Java Nacos
SpringCloud概述
Spring Cloud是微服务领域的统一解决方案,具备约定大于配置、组件丰富、开箱即用等特点。其版本以地铁站命名,避免与子项目冲突。Spring Cloud Alibaba融合Nacos、Sentinel、Seata等阿里开源组件,提供更完善的微服务生态,成为当前主流技术选型。
 SpringCloud概述
|
3月前
|
JSON 安全 JavaScript
HTTPS 原理
HTTPS是HTTP与SSL/TLS的结合,通过数字证书验证身份,利用非对称加密安全交换会话密钥,再以对称加密高效传输数据。它确保了通信的机密性、完整性和服务器真实性,在互联网上构建安全加密通道。
|
3月前
|
存储 缓存 Java
自定义注解
本文介绍Spring中自定义注解的实现,结合AOP与元注解(@Target、@Retention、@Documented)完成日志、权限、登录验证等场景的应用,并通过代码示例展示注解定义、过滤器集成及实际使用流程。
 自定义注解
|
3月前
|
消息中间件 关系型数据库 MySQL
MySQL 微服务架构实践:从单库到多库的分布式适配
本文详解MySQL在微服务架构下的适配实践,涵盖服务拆分原则、数据同步方案与分布式事务解决方案。通过电商案例,解析如何实现数据隔离、最终一致性及高并发场景下的事务管理,助力开发者应对分布式数据挑战。
|
6月前
|
机器学习/深度学习 数据采集 算法
量子机器学习入门:三种数据编码方法对比与应用
在量子机器学习中,数据编码方式决定了量子模型如何理解和处理信息。本文详解角度编码、振幅编码与基础编码三种方法,分析其原理、实现及适用场景,帮助读者选择最适合的编码策略,提升量子模型性能。
480 8
|
开发框架 IDE Java
java制作游戏,如何使用libgdx,入门级别教学
本文是一篇入门级教程,介绍了如何使用libgdx游戏开发框架创建一个简单的游戏项目,包括访问libgdx官网、设置项目、下载项目生成工具,并在IDE中运行生成的项目。
822 1
java制作游戏,如何使用libgdx,入门级别教学
|
Kubernetes Nacos 开发者
Nacos 官网重大升级,提供官方发行版下载包,3.0 里程碑版本新特性预告
Nacos 官网重大升级,提供官方发行版下载包,3.0 里程碑版本新特性预告
2029 110

热门文章

最新文章