nacos

一、nacos功能

  • 服务注册:
    当一个服务启动时,它会将自己的基本信息(如服务名、IP地址、端口号)注册到Nacos服务器中。服务提供者通过Nacos客户端将服务注册信息发送给Nacos服务器,并将其保存在服务注册表中。如果服务是集群部署的,则每个服务的实例都会记录在列表中
  • 服务心跳:
    Nacos客户端进行服务注册时,会定期发送心跳信号,告诉服务端该服务实例还活着,防止被剔除。默认每5秒发送一次心跳,通过参数可以调整心跳间隔时间
  • 服务同步:
    Nacos服务器集群间通过同步任务保持数据一致性,确保每个节点上的数据一致。权威节点负责同步和广播数据给其他节点,以保证整个集群数据的一致性
  • 服务发现:
    服务消费者可以通过Nacos获取服务提供者的实例列表,并根据负载均衡策略选择一个实例进行调用。服务消费者启动时,会从Nacos服务器获取服务提供者的实例列表,并存放在本地内存中,根据负载策略选择一个实例进行调用
  • 服务健康检查:
    Nacos服务器会定时对客户端进行健康检查,确保服务实例的健康状态。如果超过15s未收到心跳且健康检查失败,Nacos服务器会标记实例为不健康,并在超过30秒没有收到心跳后剔除该实例(被剔除的实例如果恢复发送心跳则会重新注册)

二、nacos server搭建

版本对应
1、下载

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

2、解压

tar -zxvf nacos-server-2.1.0.tar.gz

3、进入nacos/bin单机启动

./startup.sh -m standalone

4、查看启动日志,查看访问地址

tail -200f /opt/app/software/nacos/logs/start.out

在这里插入图片描述
访问http://172.28.202.20:8848/nacos/index.html
PS:如果不能访问,将ip换成外网ip
如果用的阿里云服务器,还需要配置安全组,开发端口

5、访问,默认账号密码是nocas/nocas
在这里插入图片描述
登录以后
在这里插入图片描述
单机版nacos搭建完成

三、集群nacos搭建

准备3个nacos
将单机的nacos复制几份

mv nacos nacos8848
mv nacos nacos8850
mv nacos nacos8852

1)安装jdk

jdk安装

2)安装配置mysql的数据库表

linux安装配置mysql

新增nacos数据库

CREATE DATABASE IF NOT EXISTS nacos;

用数据库连接工具连接数据库,下载nacos的sql执行/opt/app/software/nacos8848/conf/nacos-mysql.sql
在这里插入图片描述

3)安装配置maven

安装配置maven

4)修改数据源用mysql

修改config/application.properties,放开mysql配置

### If use MySQL as datasource:
spring.datasource.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=密码

5)修改集群节点配置

将conf\cluster.conf.example改为cluster.conf,添加节点配置

mv cluster.conf.example cluster.conf

修改cluster.conf

# ip:port
172.28.202.20:8848
172.28.202.20:8850
172.28.202.20:8852

启动nacos8848
如果启动报错内存不足,修改startup.sh,将值改小
在这里插入图片描述

访问查看,集群配置已经有了
在这里插入图片描述
将另外两个配置也配好,可以复制过去,修改端口

cd /opt/app/software/nacos8848/conf
cp application.properties ../../nacos8850/conf/
cp application.properties ../../nacos8852/conf/
cp cluster.conf ../../nacos8850/conf/
cp cluster.conf ../../nacos8852/conf/
cd ../bin/
cp startup.sh ../../nacos8850/bin/
cp startup.sh ../../nacos8852/bin/
# 修改启动端口
vim /opt/app/software/nacos8850/conf/application.properties
vim /opt/app/software/nacos8852/conf/application.properties

启动三个nacos
在这里插入图片描述
PS:如果出现后启动的把先启动的挤挂的情况,应该是服务器内存不够了,修改startup.sh,将值改小

6)nginx反向代理

安装nginx

yum install epel-release
yum install nginx

配置反向代理

    upstream nacoscluster {
        server 127.0.0.1:8850;
        server 127.0.0.1:8852;
    }

    server {
        listen       8847;
        server_name  localhost;
        
        location /nacos/{
            proxy_pass http://nacoscluster/nacos/;
        }
    }

启动nginx

systemctl restart nginx

通过nginx监听的8847端口访问nacos
在这里插入图片描述
集群nacos搭建完成

四、nacos client搭建

父pom新增依赖

<properties>
	<spring.cloud.version>Hoxton.SR12</spring.cloud.version>
	<spring.cloud.alibaba.version>2.2.9.RELEASE</spring.cloud.alibaba.version>
	<spring.boot.version>2.3.12.RELEASE</spring.boot.version>
</properties>

<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>com.alibaba.cloud</groupId>
			<artifactId>spring-cloud-alibaba-dependencies</artifactId>
			<version>${spring.cloud.alibaba.version}</version>
			<type>pom</type>
			<scope>import</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-dependencies</artifactId>
			<version>${spring.boot.version}</version>
			<type>pom</type>
			<scope>import</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-dependencies</artifactId>
			<version>${spring.cloud.version}</version>
			<type>pom</type>
			<scope>import</scope>
		</dependency>
	</dependencies>
</dependencyManagement>

新增pom依赖

<dependency>
	<groupId>com.alibaba.cloud</groupId>
	<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
 </dependency>

新增yaml配置application.yml

server:
 port: 8021

spring:
 application:
   name: server-nacos
 cloud:
   nacos:
     # nacos server的地址
     server-addr: nacos-server的ip:8848
     discovery:
       username: nacos
       password: nacos
       # 命名空间
       namespace: public

启动服务,查看nacos地址,服务已经注册上去了
在这里插入图片描述
client配置
github配置地址

配置项Key默认值说明
服务端地址spring.cloud.nacos.discovery.server-addrNacos Server 启动监听的ip地址和端口
服务名spring.cloud.nacos.discovery.service${spring.application.name}给当前的服务命名
服务分组spring.cloud.nacos.discovery.groupDEFAULT_GROUP设置服务所处的分组
权重spring.cloud.nacos.discovery.weight1取值范围 1 到 100,数值越大,权重越大
网卡名spring.cloud.nacos.discovery.network-interface当IP未配置时,注册的IP为此网卡所对应的IP地址,如果此项也未配置,则默认取第一块网卡的地址
注册的IP地址spring.cloud.nacos.discovery.ip优先级最高
注册的端口spring.cloud.nacos.discovery.port-1默认情况下不用配置,会自动探测
命名空间spring.cloud.nacos.discovery.namespace常用场景之一是不同环境的注册的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。
AccessKeyspring.cloud.nacos.discovery.access-key当要上阿里云时,阿里云上面的一个云账号名
SecretKeyspring.cloud.nacos.discovery.secret-key当要上阿里云时,阿里云上面的一个云账号密码
Metadataspring.cloud.nacos.discovery.metadata使用Map格式配置,用户可以根据自己的需要自定义一些和服务相关的元数据信息
日志文件名spring.cloud.nacos.discovery.log-name
集群spring.cloud.nacos.discovery.cluster-nameDEFAULT配置成Nacos集群名称
接入点spring.cloud.nacos.discovery.enpointUTF-8地域的某个服务的入口域名,通过此域名可以动态地拿到服务端地址
是否集成Ribbonribbon.nacos.enabledtrue一般都设置成true即可
是否开启Nacos Watchspring.cloud.nacos.discovery.watch.enabledtrue可以设置成false来关闭 watch
注册的IP地址类型spring.cloud.nacos.discovery.ip-typeIPv4可以配置IPv4和IPv6两种类型
  • 17
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值