1、前言
通过上一篇文章:Spring Cloud系列教程 | 第二篇:Nacos下载及安装_once先森的博客-CSDN博客1、前言 基于Nacos的微服务需先行下载Nacos Server,在已经启动的Nacos Server基础上运行。所以点击这里下载Nacos(因GitHub下载很卡,推荐使用https://sourceforge.net/mirror/nacos/activity/)。zip包是Windows版本,tar.gz是Linux版本。当然也可以下载源码自行构建Nacos自定义服务。 本章节已Windows版本nacos-server-1.3.1为例说明。...https://blog.csdn.net/qq_34397273/article/details/120767296 简单了解了Nacos下载及安装方法,本文我们开始基于Nacos走出第一步: 使用Nacos做注册中心
通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-discovery 实现服务的注册与发现。
2、快速开始
1、基于JDK11创建Maven项目,命名为“01.Spring-Cloud-Nacos”
2、增加Nacos注册中心相关依赖包,其pom.xml如下
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.once</groupId>
<artifactId>01.Spring-Cloud-Nacos</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<!-- Spring Cloud -->
<spring.cloud.version>Hoxton.SR12</spring.cloud.version>
<alibaba.cloud.version>2.2.5.RELEASE</alibaba.cloud.version>
<spring.boot.version>2.3.12.RELEASE</spring.boot.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring.boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.5.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- nacos服务发现 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
</plugins>
<finalName>${project.artifactId}-${project.version}</finalName>
</build>
</project>
3、创建Application启动类
package com.once;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class NacosApplication {
public static void main(String[] args) {
SpringApplication.run(NacosApplication.class, args);
}
}
4、登录Nacos操作台,创建命名空间(非必须,默认public),将“命名空间ID”记下以便后续使用。
5、配置bootstrap.yml,如下:
server:
port: 10001
spring:
application:
name: nacos-server
profiles:
active: dev
cloud:
nacos:
discovery:
#nacos服务地址
server-addr: 192.168.0.244:8848
#nacos命名空间
namespace: 1efe864e-7d6a-41d8-aada-ece72d4e36d1
6、启动应用服务后,登录Nacos。在“服务列表”查看相应分组内注册服务信息。
3、Nacos Discovery参数详解
spring:
application:
name: nacos-server
cloud:
nacos:
discovery:
# 是否开启Nacos注册
enabled: true
# Nacos服务注册地址
server-addr: 192.168.0.244:8848
# Nacos 认证用户
username: nacos
# Nacos 认证密码
password: nacos
# 配置命名空间ID
namespace: 1efe864e-7d6a-41d8-aada-ece72d4e36d1
# 分组名称
#group: PEARL_GROUP
# 连接Nacos Server指定的连接点
#endpoint: localhost
# 设置注册时本服务IP地址
#ip: 127.0.0.1
# nacos客户端向服务端发送心跳的时间间隔,单位s
#heart-beat-interval: 5
# 集群名称
#cluster-name: DEFAULT
# 心跳超时时间,单位s
#heart-beat-timeout: 15
# 是否注册服务,默认为true
#register-enabled: true
# 当要上阿里云时,阿里云上面的一个云账号名
#access-key:
# 当要上阿里云时,阿里云上面的一个云账号密码
#secret-key:
# nacos客户端日志名,默认naming.log:
#log-name:
# 服务元数据标签
#metadata:
# 服务超时时,多少秒后删除
#ip-delete-timeout: 30
# 负载均衡权重,默认1,取值范围 1 到 100,数值越大,权重越大
#weight: 1
# 监视延迟,从nacos服务器拉取新服务的持续时间,单位ms
#watch-delay: 30000
# 注册服务时的服务名,默认${spring.application.name}
#service: nacos-server
# 服务是否是https
#secure: false
# 注册时本服务的端口,无需设置,自动探测
#port: 8088
# 选择固定网卡
#network-interface: net0
# 是否从本地缓存中,默认false
#naming-load-cache-at-start: false
4、CAP理论
CAP理论是分布式架构中重要理论
- 一致性(Consistency) (所有节点在同一时间具有相同的数据)
- 可用性(Availability) (保证每个请求不管成功或者失败都有响应)
- 分隔容忍(Partition tolerance) (系统中任意信息的丢失或失败不会影响系统的继续运作)
Nacos | Eureka | Consul | CoreDNS | Zookeeper | |
---|---|---|---|---|---|
一致性协议 | CP+AP | AP | CP | — | CP |
5、延伸内容
1、spring-cloud-alibaba-dependencies 版本依赖
维护者 | 版本 |
org.springframework.cloud | <= 0.9.0.RELEASE |
com.alibaba.cloud | > 0.9.0.RELEASE |
2、alibaba版本推荐