【微服务】Nacos整合SpringCloud(注册中心、配置中心)_nacos

🔎这里是【微服务】,关注我学习微服务不迷路

👀专栏介绍

【微服务】 目前主要更新微服务,一起学习一起进步。

👀本期介绍

本期主要介绍Nacos整合SpringCloud(注册中心、配置中心)

文章目录

​CAP理论​

​常见的注册中心​

​什么是Nacos​

​下载​

​安装​

​启动​

​启动​

​启动异常:集群启动​

​WEB控制台​

​获得控制台的访问路径​

​登录​

​控制台管理界面​

​nacos作为window服务​

CAP理论

  • CAP三要素:
  • 一致性(Consistency): 所有节点在同一时间具有相同的数据
  • 可用性(Availability) :保证每个请求不管成功或者失败都有响应
  • 分区容错性(Partition tolerance) :系统中任意信息的丢失或失败不会影响系统的继续运作
  • CAP 原则:三个​​要素​​最多只能同时实现两点
  • 1)满足CA舍弃P,也就是满足一致性和可用性,舍弃容错性。但是这也就意味着你的系统不是分布式的了,因为涉及分布式的想法就是把功能分开,部署到不同的机器上。
  • 2)满足CP舍弃A,也就是满足一致性和容错性,舍弃可用性。如果你的系统允许有段时间的访问失效等问题,这个是可以满足的。就好比多个人并发买票,后台网络出现故障,你买的时候系统就崩溃了。
  • 3)满足AP舍弃C,也就是满足可用性和容错性,舍弃一致性。这也就是意味着你的系统在并发访问的时候可能会出现数据不一致的情况。
  • 结论:实时证明,大多数都是牺牲了一致性。像12306还有淘宝网,就好比是你买火车票,本来你看到的是还有一张票,其实在这个时刻已经被买走了,你填好了信息准备买的时候发现系统提示你没票了。
  • 总结:分区容错性P必然存在,所以将从CA中选择一个,彼此互斥的。

常见的注册中心

​微服务:注册中心ZooKeeper、Eureka、Consul 、Nacos对比_琦彦的博客-CSDN博客_consul nacos​

Nacos

Eureka

Consul

CoreDNS

Zookeeper

一致性协议

CP+AP

AP

CP


CP

健康检查

TCP/HTTP/MYSQL/Client Beat

Client Beat

TCP/HTTP/gRPC/Cmd


Keep Alive

负载均衡策略

权重/

metadata/Selector

Ribbon

Fabio

RoundRobin


雪崩保护






自动注销实例

支持

支持

支持

不支持

支持

访问协议

HTTP/DNS

HTTP

HTTP/DNS

DNS

TCP

监听支持

支持

支持

支持

不支持

支持

多数据中心

支持

支持

支持

不支持

不支持

跨注册中心同步

支持

不支持

支持

不支持

不支持

SpringCloud集成

支持

支持

支持

不支持

支持

Dubbo集成

支持

不支持

支持

不支持

支持

K8S集成

支持

不支持

支持

支持

不支持

什么是Nacos

  • Nacos用于服务的注册发现与服务的配置管理。
  • Nacos提供了简单易用的Web Console。可以帮助开发者快速的实现服务发现、服务配置管理、服务元数据等需求。
  • 官方文档

​什么是 Nacos​

  • 基本架构及概念

概念

描述

服务 (Service)

服务是指一个或一组软件功能

服务注册中心 (Service Registry)

服务注册中心,它是服务,其实例及元数据的数据库。 服务实例在启动时注册到服务注册表,并在关闭时注销。

服务元数据 (Service Metadata)

服务元数据是指包括服务端点(endpoints)、服务标签、服务版本号、服务实例权重、路由规则、安全策略等描述服务的数据

服务提供方 (Service Provider)

提供可复用和可调用服务的应用方

服务消费方 (Service Consumer)

发起对某个服务调用的应用方

配置 (Configuration)

在系统开发过程中通常会将一些需要变更的参数、变量等从代码中分离出来独立管理,以独立的配置文件的形式存在。

配置管理 (Configuration Management)

在数据中心中,系统中所有配置的编辑、存储、分发、变更管理、历史版本管理、变更审计等所有与配置相关的活动统称为配置管理。

名字服务 (Naming Service)

提供分布式系统中所有对象(Object)、实体(Entity)的“名字”到关联的元数据之间的映射管理服务

下载

​Releases · alibaba/nacos · GitHub​

【微服务】Nacos整合SpringCloud(注册中心、配置中心)_nacos_02

安装

解压

  • 解压

要求

  • 要求:操作系统的位数(32位/64位),和JDK的位数一致的
  • 操作系统:

【微服务】Nacos整合SpringCloud(注册中心、配置中心)_nacos_03

  • JDK的位置:

【微服务】Nacos整合SpringCloud(注册中心、配置中心)_原力计划_04

常见错误:

1)删除data目录重试

  • 如果无法正常运行,删除 data目录后,重新运行
    【微服务】Nacos整合SpringCloud(注册中心、配置中心)_spring cloud_05
    2)必须配置JAVA_HOME
    【微服务】Nacos整合SpringCloud(注册中心、配置中心)_spring cloud_06
  • 提示:没有配置JAVA_HOME,且需要JDK的版本为JDK8及其以上。

3) unable to start embedded tomcat

【微服务】Nacos整合SpringCloud(注册中心、配置中心)_微服务_07

  • 不能成功启动tomcat
  • 解决方案:更换JDK

启动

启动

startup.cmd -m standalone

【微服务】Nacos整合SpringCloud(注册中心、配置中心)_spring cloud_08

启动异常:集群启动

  • 运行异常
  • cmd运行 startup.cmd 错误提示“nacos is starting with cluster” (nacos以集群的方式的运行)

【微服务】Nacos整合SpringCloud(注册中心、配置中心)_nacos_09

WEB控制台

获得控制台的访问路径

​http://192.168.98.253:8848/nacos/index.html​

【微服务】Nacos整合SpringCloud(注册中心、配置中心)_原力计划_10

登录

 账号:nacos
密码:nacos

【微服务】Nacos整合SpringCloud(注册中心、配置中心)_spring cloud_11

控制台管理界面

【微服务】Nacos整合SpringCloud(注册中心、配置中心)_微服务_12

nacos作为window服务

win service制作

同名配置文件:winsw-x64.xml

<?xml version="1.0" encoding="UTF-8"?>
<service>
<id>Nacos</id>
<name>Nacos</name>
<description>Nacos Windows Service</description>
<executable>%BASE%\startup.cmd</executable>
<arguments>-m standalone</arguments>
<logpath>%BASE%\serviceLogs</logpath>
</service>

拷贝软件

【微服务】Nacos整合SpringCloud(注册中心、配置中心)_原力计划_13

  • 安装

 winsw-x64 install

【微服务】Nacos整合SpringCloud(注册中心、配置中心)_原力计划_14

【微服务】Nacos整合SpringCloud(注册中心、配置中心)_原力计划_15