Nacos 是 注册中心、配置中心
服务注册:
启动Nacos注册中心—>微服务 就会连上注册中心, 注册进去(比如service-order启动以后就会连上Nacos),形成一个清单列表。
服务发现:
订单服务想要连接商品服务,就会访问注册中心商品服务哪些机子里有,然后随机连接一个
Nacos下载使用
安装包:https://github.com/alibaba/nacos/releases?page=3
解压到非中文目录下
启动:
进入bin目录,
执行命令:
windows命令(单机模式命令)
startup.cmd -m standalone
功能:
配置管理——配置中心
服务管理——注册中心
集群管理——Nocoa集群模式
设置中心——页面相关设置
问题
D:\Program Files (x86)\nacos\bin>startup.cmd -m standalone "nacos is starting with standalone" 此时不应有 \nacos"\logs\java_heapdump.hprof -XX:-UseLargePages"。
原因一:Program Files (x86)路径问题
D:\Program Files\nacos\bin>startup.cmd -m standalone "nacos is starting with standalone" 14:22:08.471 [main] ERROR org.springframework.boot.SpringApplication - Application run failed java.lang.RuntimeException: java.io.IOException: Unable to create directory D:\Program Files\nacos\logs
原因一:权限问题,换个地方
无需登录
原因是 Nacos 在早期版本中默认关闭了身份验证功能。这是为了简化用户的初始使用体验,特别是在开发和测试环境中。
如何开启身份验证?
如果你希望启用身份验证功能,可以按照以下步骤配置:
修改配置文件
-
打开 Nacos 的配置文件(
conf/application.properties
或conf/application.yml
)。 -
添加或修改以下配置:
properties
复制
# 开启身份验证 nacos.core.auth.enabled=true
-
如果需要自定义用户名和密码,可以修改以下配置:
properties
复制
# 设置默认用户名和密码 nacos.core.auth.default.token.secret.key=自定义密钥 nacos.core.auth.system.type=nacos
重启 Nacos
修改配置文件后,重启 Nacos 服务以使配置生效。
————————————————————————————
从Nacos 2.2.2版本开始,为了减少用户的误解,当服务端未开启鉴权时,默认控制台不再显示登录页面,可以直接访问,并在控制台中提示当前集群未开启鉴权状态。
若要开启控制台的账号密码登录功能,本质上是需要您在Nacos服务端开启鉴权插件。
默认情况下,Nacos 2.2.3 版本并没有强制开启登录认证,因此可以直接无需账号密码登录。如果需要开启登录认证,在 Nacos 的配置文件中进行配置。
具体方法如下:
-
进入 Nacos 安装目录下的 conf 文件夹,找到 application.properties 配置文件。
-
打开 application.properties 文件,查找 "security" 关键字相关配置,将其中的 "none" 修改为 "simple"。
-
保存文件并重启 Nacos,登录页面就会被启用。
注意:在设置登录认证时,需要创建相应的账号和密码,并将其添加到 Nacos 的用户列表中。
引依赖
父工程
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.3.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
客户端
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
全局配置文件application.yml
server:
port: 8001
spring:
application:
# 服务名称
name: gcxy-order
cloud:
nacos:
discovery:
# Nacos服务端的地址
server-addr: localhost:8848 #127.0.0.1:8848
springboot与springcloud版本要对应
-
Spring Cloud 基于 Spring Boot
-
Spring Cloud Alibaba 是 Spring Cloud 的子项目
微服务单体架构区别:
-
单体架构所有的模块全都耦合在一块,代码量大,维护困难。
微服务每个模块就相当于一个单独的项目,代码量明显减少,遇到问题也相对来说比较好解决。
-
单体架构所有的模块都共用一个数据库,存储方式比较单一。
微服务每个模块都可以使用不同的存储方式(比如有的用redis,有的用mysql等),数据库也是单个模块对应自己的数据库。(单体架构也可以实现,但是比较麻烦)
-
单体架构所有的模块开发所使用的技术一样。
微服务每个模块都可以使用不同的开发技术,开发模式更灵活。