Nacos功能介绍:注册中心(AP和CP)
服务发现是微服务架构体系中最关键的组件之一。如果尝试着用手动的方式来给每一个客户端来配置所有服务提供者的服务列表是一件非常困难的事,而且也不利于 服务的动态扩缩容。Nacos Discovery Starter 可以帮助您将服务自动注册到 Nacos 服务端并且能够动态感知和刷新某个服务实例的服务列表。除此之外,Nacos Discovery Starter 也将服务实例自身的一些元数据信息-例如 host,port,健康检查URL,主页等注册到 Nacos
Nacos
最为核心功能:服务治理,随着微服务概念的流行,越来越多的系统被拆分成了多个服务,每个服务进行分布式部署,又因为服务与服务之间可能会互相调用,为了更好的管理服务与服务之间的调用关系,那么就需要一个注册中心来注册这些服务,消费者只需要拉取对应的服务列表,然后选择对应的负载均衡策略,选择其中一个服务调用就是
常用的服务注册中心有:Zookeeper
Consul
Eureka
Nacos
,今天我们主要介绍Nacos
Nacos
的功能非常强大,也比较容易使用,支持AP
和CP
模型(相对于Eureka
只支持AP
模型、Zookeeper
只支持CP
模型、Consul
只支持CP
来说是一个优势),而且Nacos
性能也非常出色,未来注册中心大概率将是Nacos
的天下,因为Eureka
从2.X版本开始已经闭源了,并且Eureka
服务注册时延比Nacos
大得多,而Zookeeper
是CP
架构,虽然极大可能保证了数据的强一致性,但是很大程度上牺牲了可用性,对于注册中心来说,绝大部分场景下对可用性的需求要大于一致性(即使集群节点间数据暂时不一致,其实并不影响本次请求的调用,因为还有负载策略重试其它机器,而且最终集群节点间数据最终也会一致,对于Nacos
来说不一致的时间最多也就短暂的几秒,完全可以接受),所以未来Nacos
大概率会替代其它注册中心框架成为主流。
准备父工程
- 创建一个Maven项目,如下图所示,选好你的jdk版本,并为项目命名
2.管理项目依赖
<?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>
<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<version>2.7.0</version>
</parent>
<groupId>cuit.epoch.pymjl</groupId>
<artifactId>cloud-learn</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>