Nacos是SpringCloudAilibaba提供的开源组件,有了Nacos我们就可以代替Eureka和SpringCloudConfig了,我们只需要在服务器启动该组件就行

Nacos

Nacos是一个易于构建云原生得动态服务发现、服务配置和服务管理平台。

常用于做注册中心、配置中心和服务管理平台

注册中心

注册中心的演变过程:

  • 使用RestTemplate来远程调用其他服务

  • 手动维护一份服务的信息,每次需要查询时从这个注册表中去获取

  • 通过nginx反向代理来实现服务的配置(upStream)

核心功能

服务注册: Nacos客户以REST请求形式向NacosServer注册自己的服务,提供自身元数据,NacosServer接收注册请求后,保存在一个双层Map中。

服务心跳: Nacos客户端会维护一个定时心跳告诉Nacos Server,说明服务一直处于可用状态,默认5s一次心跳。

服务同步: Nacos Server之间需要相互同步服务实例,用来保证服务信息的一致性。

服务发现: 服务消费者(Nacos Client)在调用服务提供者的服务时,会发送一个REST请求给Nacos Server,获取上面注册的服务清单,并且缓存在Nacos Client本地,同时会在Nacos Client本地开启一个定时任务定时拉取服务端最新的注册表信息更新到本地缓存。

服务健康检查: Nacos Server会开启一个定时任务用来检查注册服务实例的健康情况,对于超过15s没有收到客户端心跳的实例会将它的healthy属性置为false(客户端服务发现时不会发现),如果某个实例超过30秒没有收到心跳,直接剔除该实例(被剔除的实例如果恢复发送心跳则会重新注册)。

配置启动

在启动前需要先安装Nacos,可以参考官网上的安装,启动方式单机的话就使用standalone,这里不过多讲述。

首先,我们需要先查看自己的SpringCloudAilibaba版本和对应Nacos版本,避免因为版本的不适配从而踩一些坑。

版本说明 · alibaba/spring-cloud-alibaba Wiki · GitHub

在建立好一个SpringCloudAilibaba项目后,我们可以引入nacos-discovery依赖,因为我这里需要引入web来做测试,所以也把web的相关依赖引入了进来。

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

在各个Service的application配置项目运行的端口和Nacos的配置文件

server:
port: 8010 spring:
application:
name: stock-service # 服务名称
cloud:
nacos:
server-addr: localhost:8847 # 注册地址
discovery:
username: nacos # nacos登录的账户
password: nacos # nacos登录密码
namespace: public # 命名空间
# ephemeral: false # 服务宕机是否需要下线

然后通过启动项目,在nacos中就可以看到对应注册的服务

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sJo6rj32-1677595993392)(C:\Users\DY\AppData\Roaming\marktext\images\2023-02-21-16-40-38-image.png)]

  • 从上面可以看到public的命名空间是默认的,我们可以自己定制自己的命名空间,从而可以满足各种场景的需求

  • ephemeral是配置非临时实例,默认是true,即代表当这个服务节点宕机或者挂掉,会删除在服务内的节点,配置了false的话,就不会将这个节点移除,可以配合是否触发阈值保护使用达到雪崩保护的目的

  • 同时可以结合负载均衡器,可以配置服务节点的权重,设置越大,分配请求越多。

集群搭建

  1. 默认下载中的startup.sh中mode默认是cluster,我们不需要修改

  2. 修改JVM内存参数,给节点设定内存,防止内存不够(可不配置)

  3. 修改conf/application.properties的配置,将数据源修改成mysql,密码也需要对应修改

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n7ttYBio-1677595993393)(C:\Users\DY\AppData\Roaming\marktext\images\2023-02-21-16-48-47-image.png)]

  1. 复制三份,分别对各个节点进行运行端口的修改

  2. 复制conf/cluster-example.conf到cluster.conf,并将各个节点都添加到该文件中

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xsnpZBPX-1677595993393)(C:\Users\DY\AppData\Roaming\marktext\images\2023-02-21-16-52-00-image.png)]

  1. 启动各个节点,访问端口查看是否成功。

  2. 配置nginx,将注册请求转发到Nacos集群上

nginx配置:

#user  nobody;
worker_processes 1; events {
worker_connections 1024;
} http {
include mime.types;
default_type application/octet-stream; sendfile on;
#tcp_nopush on;
keepalive_timeout 65; upstream nacos-cluster{
server 10.60.36.29:8849;
server 10.60.36.29:8851;
server 10.60.36.29:8853;
}
server {
listen 8847;
server_name localhost; location /nacos {
proxy_pass http://nacos-cluster;
} location / {
root html;
index index.html index.htm;
} error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}

修改项目的地址,注册中心修改成 注册中心IP:8847即可,端口和IP根据自己机子决定


最后:

这里就到文章的末尾啦,如果有什么错误的话指大佬指正,
root html;
}
}
}


修改项目的地址,注册中心修改成 注册中心IP:8847即可,端口和IP根据自己机子决定 ---------- > **最后:**
>
> 这里就到文章的末尾啦,如果有什么错误的话指大佬指正,

SpringCloud之Nacos学习使用的更多相关文章

  1. 肝了很久,冰河整理出这份4万字的SpringCloud与SpringCloudAlibaba学习笔记!!

    写在前面 不少小伙伴让我整理下有关SpringCloud和SpringCloudAlibaba的知识点,经过3天的收集和整理,冰河整理出这份4万字的SpringCloud与SpringCloudAli ...

  2. SpringCloud使用Nacos服务发现实现远程调用

    本文使用SpringCloud结合Nacos服务发现,Feign远程调用做一个简单的Demo. 1 Nacos 关于Nacos之前写了两篇文章关于SpringBoot对它的使用,感兴趣可以查看一下. ...

  3. 【原创】SpringBoot & SpringCloud 快速入门学习笔记(完整示例)

    [原创]SpringBoot & SpringCloud 快速入门学习笔记(完整示例) 1月前在系统的学习SpringBoot和SpringCloud,同时整理了快速入门示例,方便能针对每个知 ...

  4. SpringCloud微服务学习笔记

    SpringCloud微服务学习笔记 项目地址: https://github.com/taoweidong/Micro-service-learning 单体架构(Monolithic架构) Mon ...

  5. Alibaba Nacos 学习(五):K8S Nacos搭建,使用nfs

    Alibaba Nacos 学习(一):Nacos介绍与安装 Alibaba Nacos 学习(二):Spring Cloud Nacos Config Alibaba Nacos 学习(三):Spr ...

  6. Alibaba Nacos 学习(一):Nacos介绍与安装

    Alibaba Nacos 学习(一):Nacos介绍与安装 Alibaba Nacos 学习(二):Spring Cloud Nacos Config Alibaba Nacos 学习(三):Spr ...

  7. Alibaba Nacos 学习(二):Spring Cloud Nacos Config

    Alibaba Nacos 学习(一):Nacos介绍与安装 Alibaba Nacos 学习(二):Spring Cloud Nacos Config Alibaba Nacos 学习(三):Spr ...

  8. Alibaba Nacos 学习(三):Spring Cloud Nacos Discovery - FeignClient,Nacos 服务注册与发现

    Alibaba Nacos 学习(一):Nacos介绍与安装 Alibaba Nacos 学习(二):Spring Cloud Nacos Config Alibaba Nacos 学习(三):Spr ...

  9. Alibaba Nacos 学习(四):Nacos Docker

    Alibaba Nacos 学习(一):Nacos介绍与安装 Alibaba Nacos 学习(二):Spring Cloud Nacos Config Alibaba Nacos 学习(三):Spr ...

  10. SpringCloud全家桶学习之Feign负载均衡----Feign(四)

    一.Feign概述 (1)Feign是什么? 官网地址:https://projects.spring.io/spring-cloud/spring-cloud.html#spring-cloud-f ...

随机推荐

  1. install package within python

    import os os.system("pip install numpy") import subprocess subprocess.call(['pip3', 'insta ...

  2. 使用npm包安装vant组件

  3. 创建function函数sys_guid时报错

    创建function函数sys_guid时报错 执行下面的命令 show variables like 'log_bin_trust_function_creators';set global log ...

  4. 更新kubeadm kubernets平台证书

    证书过期失效: Unable to connect to the server: x509: certificate has expired or is not yet valid 更新证书: 1.查 ...

  5. loadrunner添加头部

    web_add_auto_header("token_id", "{token_id}"); 或 web_add_header("token_id&q ...

  6. 通过Dnsmasq自建干净的DNS服务

    不晓得为撒,用网上的一些公共DNS服务的时候,总是莫名其妙的有些网站无法解析,有时候114能解析,阿里DNS不行或者腾讯DNS不行,导致总是来回切换DNS,很是烦心. 于是就想着自己搭建一个DNS服务 ...

  7. 一个小数据库SQLite

    参考 https://blog.csdn.net/csdnhsh/article/details/93376733 https://www.runoob.com/sqlite/sqlite-creat ...

  8. ElseViewer--校稿

    1Edit ModeThis presents the proof in continuous scroll to review and make corrections. By default, y ...

  9. 痞子衡嵌入式:2021 TencentOS Tiny AIoT应用创新大赛 - 初赛阶段的38个作品速览

    腾讯 TencentOS 团队于2021年12月8日联合恩智浦半导体.安谋科技发起的线上开发者活动 - TencentOS Tiny AIoT 应用创新大赛目前已经进入到了最后的决赛阶段. 参赛者的作 ...

  10. Android studio软件的安装过程详解

    步骤详解 进入官网,下载相关软件 官网地址:https://developer.android.google.cn/studio/ 点击该页面里面的这个按钮,就能够很轻松地完成下载操作: 弹出弹窗,继 ...