Nacos注册中心
目录
1. 安装Nacos(Linux)
1.1 下载 JDK、Nacos
下载到 /usr/local/
1.2 安装
# 安装 jdk
# 1. 解压
mkdir java
tar -xvf jdk-8u144-linux-x64.tar.gz -C java
# 2. 修改 /etc/profile'
vi /etc/profile
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
# 3. 重新加载 /etc/profile
source /etc/profile
# 安装 nacos
# 1. 解压
mkdir nacos
tar -xvf nacos-server-1.4.1.tar.gz -C nacos
1.3 配置数据库
- 在 服务器 数据库中创建 nacos 数据库
- 修改配置文件 application.properties
# 修改 /usr/local/src/nacos/conf/application.properties
### Connect URL of DB:
db.url.0=jdbc:mysql://数据库所在服务器IP:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=数据库账号
db.password.0=数据库密码
如果端口冲突,修改以下配置
# \nacos\conf\application.properties
#*************** Spring Boot Related Configurations ***************#
### Default web context path:
server.servlet.contextPath=/nacos
### Default web server port:
server.port=8848
1.4 启动
# 进入 /usr/local/src/nacos/bin
# 执行一下命令
./startup.sh -m standalone
1.5 访问
服务器记得打开8848端口
访问 http://服务器IP:8848/nacos
账号、密码都是 nacos
2. Nacos快速入门
Spring Cloud Commons 规范了服务注册、发现的接口
2.1 引入依赖
- 父工程
- 微服务
# 父工程 pom.xml 管理版本
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.5RELEASE</version>
<type>pom</type>
<scop>import</scop>
</dependency>
# 微服务
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
2.2 修改配置文件
# 微服务 application.yml
spring:
cloud:
nacos:
server-addr: localhost:8848 # 默认端口 8848
3. Nacos服务分级存储模型
一个服务包含多个实例,多个实例部署到多个机房,同在一个机房的多个实例称为一个集群
- 尽可能避免 服务跨集群调用
# 微服务 application.yml
spring:
cloud:
nacos:
discovery:
cluster-name: Shanghai # 集群名称
- 根据集群负载均衡
# 微服务消费者 application.yml
微服务提供者名称:
ribbon:
NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 优先选择服务所在的集群 后随机
- 根据权重负载均衡
- 权重范围 0-1
权重越大,被访问次数越多
4. Nacos环境隔离–namespace
不同 namespace 下的服务无法访问,即 不可见
- 新建命名空间
- 命名空间中添加实例
# 微服务
spring:
nacos:
discovery:
namespace: xxxxxxxxxxxxxxxxx #命名空间ID
5. Nacos和Eureka对比
5.1 服务提供者健康检测
服务提供者
- 临时实例:与eureka一致
- 非临时实例:服务提供者不做心跳检测,由nacos主动询问,但不剔除
服务消费者
- nacos:会主动推送变更消息
5.2 集群
- nacos:临时AP方式;非临时CP方式
- eureka:AP方式
# 微服务
spring:
nacos:
discovery:
ephemeral: false # 是否是临时实例
最后
以上是学习 黑马程序员《微服务技术全栈教程》的学习笔记