无敌的服务注册中心Spring CloudAlibaba Nacos不进来看一看吗?

news2024/9/28 9:55:41

1、Nacos概述

Nacos支持发现配置管理几乎所有类型的服务。其Key features:Service Discovery And Service Health Check、Dynamic configuration management、Dynamic DNS service、Service governance and metadata management

官网 

2、Nacos安装运行

安装

官网下载毕竟在国外网站,下载很慢。准备nacos1.4链接,请自取:

链接:https://pan.baidu.com/s/1wyLqnVRi6si_DOYJHmDm8g?pwd=pqmy 
提取码:pqmy

官网nacos2.2.3版本https://github.com/alibaba/nacos/releases/download/2.2.3/nacos-server-2.2.3.zip

运行 

直接将压缩包解压到非中文目录,进入bin目录运行cmd命令:startup.cmd -m standalone

 启动成功后直接访问:http://127.0.0.1:8848/nacos,默认账号和密码:nacos

 登录成功

 3、Nacos作为服务注册中心

父工程cloud-demo

  • pom.xml
<!-- spring-cloud-alibaba -->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.2.6.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

 服务提供者order-service

  • pom.xml
<!-- spring-cloud-starter-alibaba-nacos -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
  • application.yml
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloud_order?useSSL=false
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver
  application:
    name: order-service
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos地址

服务消费者user-service

  • pom.xml
<!-- spring-cloud-starter-alibaba-nacos -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
  • application.yml
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloud_user?useSSL=false
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver
  application:
    name: user-service
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos地址

nacos注册进两个服务

借助apiPost自测/order/{orderId}和/user/{id}nacos内置了ribbon采用默认的轮询策略。

 4、Nacos作为配置中心

集群负载均衡配置

application.yml配置集群名称cluster-name

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloud_user?useSSL=false
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver
  application:
    name: user-service
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos地址
      discovery:
        cluster-name: HZ   # 杭州集群

 同优先级集群配置轮询规则

user-service:
  ribbon:
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 负载均衡规则

 设置请求频率权重,权重越大,访问比率越高。权重值可以设置0-1之间。

Data/Service+Group+Namespace关系

Namespace实现了环境隔离,nacos可以有多个Namespace。不同Namespace的服务互相不可见。默认情况下,Service/Data、Group在public的Namespace下。

Namespace

 application.yml给指定命名控制配置

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloud_order?useSSL=false
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver
  application:
    name: order-service
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos地址
      discovery:
        cluster-name: HZ  # 杭州集群
        namespace: d8aa7768-0c2e-4a31-b4ef-f61d0a1bc523  # 命名空间

 通过apipost发送localhost:8080/order/101请求跨数据库访问用户出现错误。

Group

 

Service/Data

  • 文件DataId为什么要遵循这种写法?

nacos在读取这个文件Id遵循最终公式:

${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

  • 文件配置热更新

在具体的接口Controller上加@RefreshScope,通过注入@Value("${pattern.dateformat}")获取yaml或properties配置文件内容。nacos内目前只支持yaml或properties两种格式的配置文件。

通过自定义nacos热部署类通过@Autowired注入自定义类并getXxx属性方法。

config/MyNacosConfigration

@Component
@Data
@ConfigurationProperties(prefix = "pattern")
public class MyNacosConfigration {

    private String dateformat;

}
  • 环境共享

在bootstrap.yaml文件指定userservice服务是dev环境,但是服务端口8081、8082、8083。其中8082节点userservice是test环境。只要包括userservice的内容都能从nacos里读取。

读取nacos配置文件优先级的公式:

nacos:[实例名称]-[profile].[后缀] > nacos:[实例名称].[后缀] > local:application.yml

Instance

作为nacos中的服务实例分为临时实例和非临时实例。

  • 临时实例:当服务宕机停止一段时间后从nacos的服务列表中剔除服务实例。
  • 非临时实例:当服务宕机后停止一段时间不会从nacos的服务列表中剔除服务实例。

application.yml

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloud_order?useSSL=false
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver
  application:
    name: order-service
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos地址
      discovery:
        cluster-name: HZ  # 杭州集群
        namespace: d8aa7768-0c2e-4a31-b4ef-f61d0a1bc523  # 命名空间
        ephemeral: false  # false非临时实例   true临时实例

5、常用注册中心的对比

CAP理论

C(Consistency):强一致性

A (Avalibility):可用性

P(Partition Tolerance):分区容忍性

CAP描述的是一个分布式系统最多只能满足CAP中的两个条件,不可能同时满足三个条件

Nacos和其他注册中心比较

Nacos

Zookeeper

Eureka

Consul

CAP

CP+AP

CP

AP

CP

C一般是保证在一定时间内,集群中的各个节点会达到较强的一致性,会牺牲一些响应时间;A是系统一直处于可用状态,所有的请求都会被响应。

CP保证一致性;AP保证可用性。

6、Nacos集群和持久化

官网nacos集群架构图

 集群部署的过程:所有发出的请求经过nginx负载均衡分别转发到nacos集群服务的每一个节点上。每一个nacos服务实例连接mysql有主从节点的数据库集群上,以达到数据的持久化。Nacos在单机模式默认数据库Derby

我们准备一个集群结构:

依次修改nacos1、nacos2、nacos3的文件nacos1\conf

nginx/conf文件修改监听端口和代理端口

 多节点的nacos集群效果简单看一下哈~

Nacos集群

在实际企业中Nginx采用反向代理,nginx服务器设置一个域名。而Nacos采用一个节点部署到一台服务器上。

7、Linux环境下进行Nacos配置

安装并运行

准备了Nacos1.4版本,可以自取链接~

链接:https://pan.baidu.com/s/1-E4MW0y7k26TC8HjfslPVw?pwd=lqkb 
提取码:lqkb

官网nacos2.2.3版本,可以自行下载~

https://github.com/alibaba/nacos/releases/download/2.2.3/nacos-server-2.2.3.tar.gz

解压包

tar -zxvf nacos-server-1.4.1.tar.gz
# 删除安装包
rm -rf nacos-server-1.4.1.tar.gz

进入nacos/bin目录输入命令:sh startup.sh -m standalone启动。账号和密码:nacos

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/808779.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LearnOpenGL_Day1

文章目录 前期准备下载GLFW下载GLAD 引入库文件生成窗口重要概念——双缓冲 &#xff08;double buffer&#xff09;代码实现 学习总结 前期准备 下载GLFW GLFW DOWNLOAD 解压后使用CMake编译至新创建的bulid文件夹下&#xff1a; 下载GLAD 引入库文件 创建好工程&#x…

git的ssh方式对接码云

一、环境准备&#xff1a; 1、git下载&#xff0c;360管家或是百度。 2、vs2022&#xff0c;百度下载。 二、配置git&#xff1a; 1、打开准备存放文件的文件夹&#xff0c;右键&#xff0c;选择“Git Bash here”&#xff0c;弹出命令窗口&#xff0c; 输入&#xff1a;ss…

平板光波导中传播常数β的matlab计算(验证了是对的)

参照的是导波光学_王建(清华大学)的公式(3-1-2、3-1-3)&#xff0c;算的参数是这本书的图3-3的。 function []PropagationConstantsMain() clear;clc;close all lambda01.55;%真空或空气中的入射波长&#xff0c;单位um k02*pi/lambda0; m3;%导模阶数(需要人为指定) n11.62;%芯…

入门redis你一定需要知道的命令

1、各种数据类型的特点 字符串(string)&#xff1a;普通字符串&#xff0c;Redis中最简单的数据类型 哈希(hash)&#xff1a;也叫散列&#xff0c;类似于Java中的HashMap结构 列表(list)&#xff1a;按照插入顺序排序&#xff0c;可以有重复元素&#xff0c;类似于Java中的Li…

回归预测 | MATLAB实现WOA-ELM鲸鱼算法优化极限学习机多输入单输出回归预测

回归预测 | MATLAB实现WOA-ELM鲸鱼算法优化极限学习机多输入单输出回归预测 目录 回归预测 | MATLAB实现WOA-ELM鲸鱼算法优化极限学习机多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现WOA-ELM鲸鱼算法优化极限学习机多输入回归预测&#…

流数据湖平台Apache Paimon(二)集成 Flink 引擎

文章目录 第2章 集成 Flink 引擎2.1 环境准备2.1.1 安装 Flink2.1.2 上传 jar 包2.1.3 启动 Hadoop2.1.4 启动 sql-client 2.2 Catalog2.2.1 文件系统2.2.2 Hive Catalog2.2.3 sql 初始化文件 2.3 DDL2.3.1 建表2.3.2 修改表 2.4 DML2.4.1 插入数据2.4.2 覆盖数据2.4.3 更新数据…

idea插件开发-自定义语言4-Syntax Highlighter

SyntaxHighlighter用于指定应如何突出显示特定范围的文本&#xff0c;ColorSettingPage可以定义颜色。 一、Syntax Highter 1、文本属性键&#xfeff; TextAttributesKey用于指定应如何突出显示特定范围的文本。不同类型的数据比如关键字、数字、字符串等如果要突出显示都需…

ReID网络(一):MGN网络

Start MGN 1. 序言 现代基于感知的信息中&#xff0c;视觉信息占了80~85%。基于视觉信息的处理和分析被应用到诸如安防、电力、汽车等领域。 以安防市场为例&#xff0c;早在2017年&#xff0c;行业咨询公司IHS Market&#xff0c;我国在公共和私人领域安装有摄像头约1.76亿…

《TCP IP网络编程》第十三章

第 13 章 多种 I/O 函数 13.1 send & recv 函数 Linux 中的 send & recv&#xff1a; send 函数定义&#xff1a; #include <sys/socket.h> ssize_t send(int sockfd, const void *buf, size_t nbytes, int flags); /* 成功时返回发送的字节数&#xff0c;失败…

36.悬浮板

悬浮板 html部分 <div class"container"><div class"square"></div> </div>css部分 *{margin: 0;padding: 0; } body{background-color: #111;height: 100vh;overflow: hidden;display: flex;justify-content: center;align-it…

layui框架学习(33:流加载模块)

Layui中的流加载模块flow主要支持信息流加载和图片懒加载两部分内容&#xff0c;前者是指动态加载后续内容&#xff0c;示例的话可以参考csdn个人博客主页&#xff0c;鼠标移动到页面底部时自动加载更多内容&#xff0c;而后者是指页面显示图片时才会延迟加载图片信息。   fl…

苍穹外卖-day08

苍穹外卖-day08 本项目学自黑马程序员的《苍穹外卖》项目&#xff0c;是瑞吉外卖的Plus版本 功能更多&#xff0c;更加丰富。 结合资料&#xff0c;和自己对学习过程中的一些看法和问题解决情况上传课件笔记 视频&#xff1a;https://www.bilibili.com/video/BV1TP411v7v6/?sp…

第17节 R语言分析:生物统计数据集 R 编码分析和绘图

生物统计数据集 R 编码分析和绘图 生物统计学,用于对给定文件 data.csv 中的医疗数据应用 R 编码,该文件是患者人口统计数据集,包含有关来自各种祖先谱系的个体的标准信息。 数据集特征解释 脚本 output= file("Output.txt") # File name of output log sink(o…

[数据集][目标检测]城市道路井盖破损丢失目标检测1377张

数据集制作单位&#xff1a;未来自主研究中心(FIRC) 数据集格式&#xff1a;Pascal VOC格式(不包含分割路径的txt文件和yolo格式的txt文件&#xff0c;仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数)&#xff1a;1377 标注数量(xml文件个数)&#xff1a;1377 标注类别数&a…

Spring源码(五)— 解析XML配置文件(二) 定制化标签解析流程

上一篇以bean标签为例&#xff0c;介绍了属于defaultNamesapce标签的解析流程&#xff0c;但是defaultNamespace中默认的标签只有bean、beans、alias、import这四个&#xff0c;而我们平时在xml中配置的标签有很多。那其余的标签是如何解析&#xff1f; 在这篇文章会详细介绍定…

一个监控系统的典型架构

监控系统的典型架构图&#xff0c;从左往右看&#xff0c;采集器是负责采集监控数据的&#xff0c;采集到数据之后传输给服务端&#xff0c;通常是直接写入时序库。然后就是对时序库的数据进行分析和可视化&#xff0c;分析部分最典型的就是告警规则判断&#xff0c;即图上的告…

【李宏毅机器学习·学习笔记】Deep Learning General Guidance

本节课可视为机器学习系列课程的一个前期攻略&#xff0c;这节课主要对Machine Learning 的框架进行了简单的介绍&#xff1b;并以training data上的loss大小为切入点&#xff0c;介绍了几种常见的在模型训练的过程中容易出现的情况。 课程视频&#xff1a; Youtube&#xff1…

【Spring框架】SpringBoot配置文件

目录 配置文件作用application.properties中午乱码问题&#xff1a;配置文件里面的配置类型分类SpringBoot热部署properties基本语法properties配置文件的优缺点&#xff1a;yml配置文件说明yml基本语法配置对象properties VS yml 配置文件作用 整个项⽬中所有重要的数据都是在…

【MyBatis 学习二】增删改查 参数占位符 #{} 和 ${}的使用

目录 一、增删改查 &#x1f337;1、用户类 &#x1f337;2、UserMapper &#x1f337;3、UserMapper.xml &#x1f337;4、测试类Test &#x1f337;5、UserService类 &#x1f337;6、UserController类 &#x1f337;7、注意点总结 二、#{} 和${} 的使用区别 &…

一个 SpringBoot 项目能处理多少请求

首先&#xff0c;这个问题有坑&#xff0c;因为 spring boot 不处理请求&#xff0c;只是把现有的开源组件打包后进行了版本适配、预定义了一些开源组件的配置通过代码的方式进行自动装配进行简化开发。这是 spring boot 的价值。 如果我是面试官&#xff0c;我不会问这种问题。…