初识Springcloud Alibaba
一、什么是Springcloud Alibaba
它是微服务概念的一种实现,解决了如下问题
- N个服务,如何管理?(服务治理 注册中心【服务的注册、发现、删除】)nacos
- N个服务,如何通信?feign
- N个服务,客户端如何访问?gateway
- N个服务,一旦出现问题了,怎么处理?(容错)sentinel
- N个服务,一旦出现问题了,如何排查?(链路追踪)skywalking
- N个服务,怎么保持数据一致性?seata
二、安装Nacos
我使用的spring-boot版本是3.2.4,根据查看官方文档,Nacos所需版本为2.3.2,点击进入Nacos官网下载页面,找到指定版本进行下载
所需jar包的版本如下
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.4</version>
<relativePath/>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2023.0.1.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2023.0.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
三、Nacos配置修改
-
创建Mysql数据库,名称随意;找到nacos-server-2.3.2\nacos\conf目录,运行mysql-schema.sql脚本
-
进入application.properties文件修改数据库配置
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/数据库名称?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=账号
db.password.0=密码
- 找到nacos-server-2.3.2\nacos\bin目录,修改startup文件(会有两个,根据自己电脑的系统选择),修改启动模式为单例
set MODE="standalone"
- 双击startup启动
浏览器访问http://localhost:8848/nacos能出现页面即成功
四、在linux中安装Nacos
sudo apt-get update
sudo apt-get install openjdk-8-jdk
wget https://github.com/alibaba/nacos/releases/download/2.3.2/nacos-server-2.3.2.tar.gz
tar -zxvf nacos-server-2.3.2.tar.gz
sudo mv nacos /www/wwwroot
cd /www/wwwroot/nacos/bin
sh startup.sh -m standalone
五、远程调用服务器上调用Nacos的艰苦经历
众所周知,Nacos访问的端口默认为8848,所以在服务器上我下意识的只对外开放了8848端口,最终的结果就是在本地浏览器能正常访问Nacos界面,但本地微服务启动就会报错,启动失败
这涉及到 Nacos 2.x 的客户端工作原理。
-
8848 是"入口端口":客户端首先通过 8848 端口与 Nacos 服务器建立 HTTP 连接。
-
自动协商:连接建立后,Nacos 服务器会告诉客户端:"请使用 gRPC 与我通信,gRPC 的端口是 9848"。
-
自动切换:客户端随后会自动与服务器的 9848 端口建立 gRPC 长连接,用于后续的服务注册、发现和心跳维持。
所以服务器除了要开放8848端口外,还需要开放9848端口!!!
最终我发现不开通8848端口,依旧能实现服务的注册与发现,为什么?


浙公网安备 33010602011771号