SpringCloud之Nacos学习使用
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的话,就不会将这个节点移除,可以配合是否触发阈值保护使用达到雪崩保护的目的
同时可以结合负载均衡器,可以配置服务节点的权重,设置越大,分配请求越多。
集群搭建
默认下载中的startup.sh中mode默认是cluster,我们不需要修改
修改JVM内存参数,给节点设定内存,防止内存不够(可不配置)
修改conf/application.properties的配置,将数据源修改成mysql,密码也需要对应修改
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n7ttYBio-1677595993393)(C:\Users\DY\AppData\Roaming\marktext\images\2023-02-21-16-48-47-image.png)]
复制三份,分别对各个节点进行运行端口的修改
复制conf/cluster-example.conf到cluster.conf,并将各个节点都添加到该文件中
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xsnpZBPX-1677595993393)(C:\Users\DY\AppData\Roaming\marktext\images\2023-02-21-16-52-00-image.png)]
启动各个节点,访问端口查看是否成功。
配置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学习使用的更多相关文章
- 肝了很久,冰河整理出这份4万字的SpringCloud与SpringCloudAlibaba学习笔记!!
写在前面 不少小伙伴让我整理下有关SpringCloud和SpringCloudAlibaba的知识点,经过3天的收集和整理,冰河整理出这份4万字的SpringCloud与SpringCloudAli ...
- SpringCloud使用Nacos服务发现实现远程调用
本文使用SpringCloud结合Nacos服务发现,Feign远程调用做一个简单的Demo. 1 Nacos 关于Nacos之前写了两篇文章关于SpringBoot对它的使用,感兴趣可以查看一下. ...
- 【原创】SpringBoot & SpringCloud 快速入门学习笔记(完整示例)
[原创]SpringBoot & SpringCloud 快速入门学习笔记(完整示例) 1月前在系统的学习SpringBoot和SpringCloud,同时整理了快速入门示例,方便能针对每个知 ...
- SpringCloud微服务学习笔记
SpringCloud微服务学习笔记 项目地址: https://github.com/taoweidong/Micro-service-learning 单体架构(Monolithic架构) Mon ...
- Alibaba Nacos 学习(五):K8S Nacos搭建,使用nfs
Alibaba Nacos 学习(一):Nacos介绍与安装 Alibaba Nacos 学习(二):Spring Cloud Nacos Config Alibaba Nacos 学习(三):Spr ...
- Alibaba Nacos 学习(一):Nacos介绍与安装
Alibaba Nacos 学习(一):Nacos介绍与安装 Alibaba Nacos 学习(二):Spring Cloud Nacos Config Alibaba Nacos 学习(三):Spr ...
- Alibaba Nacos 学习(二):Spring Cloud Nacos Config
Alibaba Nacos 学习(一):Nacos介绍与安装 Alibaba Nacos 学习(二):Spring Cloud Nacos Config Alibaba Nacos 学习(三):Spr ...
- Alibaba Nacos 学习(三):Spring Cloud Nacos Discovery - FeignClient,Nacos 服务注册与发现
Alibaba Nacos 学习(一):Nacos介绍与安装 Alibaba Nacos 学习(二):Spring Cloud Nacos Config Alibaba Nacos 学习(三):Spr ...
- Alibaba Nacos 学习(四):Nacos Docker
Alibaba Nacos 学习(一):Nacos介绍与安装 Alibaba Nacos 学习(二):Spring Cloud Nacos Config Alibaba Nacos 学习(三):Spr ...
- SpringCloud全家桶学习之Feign负载均衡----Feign(四)
一.Feign概述 (1)Feign是什么? 官网地址:https://projects.spring.io/spring-cloud/spring-cloud.html#spring-cloud-f ...
随机推荐
- JavaScript 字符串的相关方法
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Ansible 工具参数详解自动化运维
一.Ansible基本概述: Ansible是一个配置管理系统(configuration management sysytem )你只需要可以使用ssh访问你的服务器或设备就行 Ansible 是近 ...
- OSPF的收敛特性
- Android工程接入UnityLibrary工程
目录结构 Unity工程指UnityLibrary目录下文件: 安卓工程指app目录下文件: 整体指App目录下不包括app和UnityLibrary: 1.Unity打包时勾选导出安卓工程: 拷贝g ...
- msfvenom的使用
msfvenom也只metasploit中的一个很强的工具,msfvenom生成木马非常的迅速可以各种版本的木马 该工具由msfpaylod和msfencodes的组成 生成木马是需要在本地监听,等待 ...
- Android笔记--如何在Android studio里面打开数据库
具体操作 可参考这篇(更为详细): https://www.cnblogs.com/liuzijin/p/17029231.html 1.找到界面内的Device File Explorer 这里找可 ...
- 每次新建项目都要重新配置Maven项目很麻烦,这里出一个小技巧,配置一次就直接搞定所有的
Maven一次配置永久使用教程 首先,打开IDEA,将你目前放出来的项目关掉:(File->Close Project) 其次,在左侧栏里面选择这个: 然后,选择中间的这里: 接着,在弹出的页面 ...
- MySQL学习(六)timestamp & datetime 区别
参考博客: https://cloud.tencent.com/developer/article/1407693 timestamp只使用datetime一半的存储空间,并且会根据时区变化,具有特殊 ...
- 文件的上传&预览&下载学习(四)
0.参考博客 https://blog.csdn.net/Chengzi_comm/article/details/53037967 逻辑清晰 https://blog.csdn.net/alli09 ...
- ArchLinux 作业系统安装教程
如果你能看到此文,想必你一定玩过不少的发行商发行的 Linux 作业系统或者听说过很多发行商发行的 Linux 作业系统.如果你玩过不少的 Linux 作业系统,对于安装系统可谓是轻车熟路,就是闭着眼 ...