简介
nacos组件的介绍以及作为注册中心的使用,和一些相关的代码例子。
nacos的作用
- 服务发现
- 服务配置
- 服务管理平台
服务发现就是注册中心,和之前版本的eureka作用一样
服务配置就是统一配置,和之前版本的config作用一样
服务管理平台就是有一个管理界面,可以管理服务和统一配置的数据
nacos作为注册中心
解决微服务之间复杂的调用关系,以及维护微服务的问题。
nacos作为注册中心的作用:
- 服务注册
- 服务心跳
- 服务同步
- 服务发现
- 服务健康监测
nacos有一个服务端和一个客户端,服务端是独立的,客户端配置在服务(比如订单服务,库存服务)上。
nacos的客户端会每隔5秒给nacos服务端发送一个心跳,来向nacos服务端表明这个服务还是可用的。如果超过15秒没有收到nacos客户端发送的心跳,会改服务(例如订单服务)的状态为false,将不被其他nacos客户端发现此服务(不在服务列表上),如果超过30秒,此服务会被踢出,得重新注册服务到注册中心。
服务消费者调用服务提供者服务的时候,会从nacos的服务端获取服务列表,缓存到nacos的客户端上,并且nacos客户端会定时的去nacos服务端拉取最新的服务列表,以保证服务的可用性。
下载配置nacos并配置单机模式
这个nacos和springboot是有版本对应的,如果使用的是我的pom.xml文件的话,那需要下载nacos1.4.1版本(网上搜一下就有了)。
下载然后解压,进入到bin目录下,配置startup.cmd,因为默认是集群的方式,我先写单机的模式来启动。这个启动的是服务端。
右键点击编辑,文本中ctrl+f搜索
set MODE="cluster"
修改成
set MODE="standalone"
双击启动nacos或使用cmd的方式运行表明开始启动了,是以单机模式启动的。
访问 http://localhost:8848/nacos/index.html#/login
用户名和密码都是:nacos
服务注册
pom文件
加上服务注册与发现的依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
配置文件:
server:
port: 8020
# 应用名称 (nacos会将该名称当做服务名称)
spring:
application:
name: order
cloud:
nacos:
server-addr: local:8848
discovery:
username: nacos
password: nacos
namespace: public
运行启动类,点开nacos网址,就可以看到如下图服务注册到nacos上了。
idea对一个项目启动多个不同端口的实例
勾选这个allow parallel run
然后点apply应用,点OK
然后在application.yml配置文件中修改端口号
点运行,就可以启动多个实例了
命名空间和分组
命名空间和分组都可以对服务进行分组管理
命名空间是更粗粒度的管理,比如按照项目的不同来管理服务
分组是更细粒度的管理,比如一个项目的开发,测试,生产环境分组