40 图|我用 M1 玩转 SpringCloud

maxh718
发布于 2022-11-28 15:32
浏览
0收藏

一、配置 Nacos

Nacos 作为配置中心和注册中心,是必须要启动的。

1.1 下载地址

Nacos 下载地址:

https://github.com/alibaba/nacos/releases

最新版是 2.0.0-bugfix,我下载后,启动成功了,但是无法访问 Nacos 后台,怀疑是本地环境有问题,所以换了一个低版本的 1.4.1,可以正常工作。另外我之前在 windows 机器上使用的 1.2.1 的版本,拷贝到 Mac 上也能正常运行。

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

1.2 启动 Nacos

进入 nacos 根目录,执行命令:

sh startup.sh -m standalone

执行后的结果如下图所示:

看到 nacos is starting withi standalone 就表示启动成功。注意:启动成功不代表正常运行。

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

接下来访问 nacos 的后台管理系统:

http://127.0.0.1:8848/nacos/#/login

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

账号和密码都是 ​​nacos​​。

1.3 添加命名空间

添加 7 个微服务的命名空间:

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

新建命名空间时需要填写的字段:

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

1.4 添加 question 微服务配置

在配置列表添加几个微服务的配置,目前保证 question 微服务和 thirdparty 微服务有配置即可。

如下图所示,添加三个配置项:数据源,mybatis 配置,其他配置。详细的配置参数参照这篇来配置:​​《SpringCloud 整合 Nacos 配置中心》​​。

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

1.5 添加 thirdparty 微服务配置

主要是配置阿里云 OSS,用来保存图片的。配置如下图所示,key 需要大家到自己登陆到阿里云并申请 OSS 才能获取到。参照这篇​​《SpringCloud 实战项目-整合 OSS 对象存储》​​。

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

二、初始化数据

创建数据库、表、初始化数据这些工作都需要做,下载一个 MySQL 客户端还是要方便点,然后找 Mac 上好用的客户端软件,下面是安装软件的艰辛历程。

1.1 安装 Mac 版 MySQL

首先需要安装 mac 版的 MySQL,下载地址:

https://dev.mysql.com/downloads/mysql/

选择第一个就可以了,官网已经提示该版本兼容 Mac M1

Packages for Catalina (10.15) are compatible with Big Sur (11)

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

下载后点击安装,安装成功后,到系统偏好配置里面找到 MySQL,并单击打开。

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

可以看到运行的 MySQL 实例是 MySQL 8.0.23,且默认开机运行。

![]

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

2.2 安装图形化 MySQL 管理软件

2.2.1 Workbench 在 M1 上不能运行

我试过安装 workbench 后,不能运行。

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

2.2.2  Squel Pro 在 M1 上不能运行

安装 Squel Pro 后,切换数据库的时候程序崩溃。

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

2.2.3 Navicat

经过上面两个软件的崩溃后,我最后还是下载了试用版的 Navicat,可以免费用 14 天,对于初始化数据足够了。

下载地址:

http://www.navicat.com.cn/download/navicat-for-mysql

下载 macOS 的最新版 15,它是兼容 M1 芯片的。

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

然后需要执行三个 SQL 文件,文件我已经上传到仓库上了,

/passjava-platform/data/sql

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

依次执行上面的三个文件后,会生成 6 个数据库:一个系统数据库,五个业务数据库。

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

三、启动微服务

主要启动 4 个核心服务:​​网关微服务​​​、​​题目微服务​​​、​​第三方微服务​​​、​​系统管理微服务​​。

架构图如下所示:

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

目前这几个微服务已经整合了 Nacos、OpenFeign、Gateway、统一异常处理、链路追踪,Redis 等。

启动都是基于 IDEA 开发工具直接启动的,所以需要下载 IDEA。

3.1 下载安装 IDEA

我安装的 IDEA 是旗舰版 2020.3 的,试用版 30 天。大家可以下载免费的社区版 Community,功能上也能满足。

性能非常快,我的 Windows 的配置:ThinkPad、 32 G 内存、1T 固态硬盘,启动一个微服务需要 10 秒以上,而 ​​Mac 只需要 3 秒​​。

官网下载地址:

https://www.jetbrains.com/idea/download/#section=mac

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

3.2 启动系统管理服务

我的开源项目的后台框架用的人人框架,它的主要功能就是后台的登陆、系统管理功能,所以必须启动 ​​renren-fast​​ 服务才能使用后台管理。

大家可以启动 RenrenApplication 这个 Service,启动成功后,会提示以下信息:

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

renren-fast 服务暴露的端口是 8080,但是这个端口对前端是不可见的,前端 API 都是走网关的 8060 端口。将前端的请求转发到 renren-fast 的 8060 端口,比如登陆请求。注意:一定要初始化完数据才能启动成功。

3.3 启动网关

网关微服务没有什么特殊要求,我都配置好了,直接启动就好了。另外如果遇到端口被占用的情况,可以通过如下命令解决:

lsof -i:8060
kill -9 <进程 id>

网关微服务暴露的端口是 8060,启动后如下图所示:

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

3.4 启动题目服务

题目服务是核心模块,很多实战案例都是基于这个模块进行讲解的。启动服务之前,需要配置数据库 MySQL 的连接。

3.4.1 配置数据库连接

文件路径:/passjava-question/src/main/resources/application.yml
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/passjava_qms?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT
    username: root
    password: xxx

另外我们也可以通过 nacos 来配置:

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

3.4.2 启动题目服务

IDEA 工具中直接启动就可以了,暴露的端口是 11000,启动后如下图所示:

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

3.4.3 测试题目服务

用 postman 测试网关+题目微服务是否正常工作:

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

由于我的数据库中是有数据的,所以会返回很多数据,大家后面可自行添加数据。

3.5 启动第三方服务

这个第三方不是指另外一方的服务,而是我把与第三方中间件交互的服务都归在这个服务里面了,比如对阿里云 OSS(对象存储) 的操作。

这个服务的名字叫做:​​passjava-thirdparty​​​。另外需要注意,OSS 需要大家到阿里云官网申请,有免费额度哦~配置方式可以参照这篇:​​《SpringCloud 实战项目-整合 OSS 对象存储》​

启动成功后,如下图所示:

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

四、启动 Admin 后台

Admin 管理后台的技术选型还是用的 Vue,所以需要使用 npm 工具来安装依赖。

4.1 安装 npm、nvm

使用 homebrew 安装 npm

brew install npm

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

使用 homebrew 安装 nvm

brew install nvm

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

4.2 切换镜像源

默认的 npm 使用的是官方的镜像源,我们切换为国内的淘宝镜像源。

npm install -g cnpm --registry=https://registry.npm.taobao.org --verbose

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

4.3 安装 node_module

仓库里面并没有将依赖包一起上传,因为依赖包太大了,所以可在本地通过如下命令安装依赖包,这个是一次性的,后面不需要再执行。

进入到 passjava-platform/passjava-portal 目录,执行如下命令来安装依赖:

cnpm install

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

启动前端portal

npm run dev

报错,提示 Node Sass 不兼容当前的系统:

Node Sass does not yet support your current environment: OS X Unsupported architecture (arm64) with Unsupported runtime (88)

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

根据网上提供的解决方案,要先卸载 Node Saas

cnpm uninstall node-sass

但是又提示 chromedriver 安装失败(当前操作系统不兼容),根据网上的解决方案,单独安装,但依旧提示 64 位系统不兼容,于是我把 package.json 文件中的 "chromedriver": "2.27.2" 删掉了,问题迎刃而解!(最新的代码已删除该依赖项配置)

我们接着往下执行:

先删除之前安装的 node_modules:

rm -rf ./node_modules/

再次执行卸载 node-sass 的命令:

cnpm uninstall node-sass

卸载成功后,安装 node-sass:

cnpm install node-sass  --unsafe-perm --save-dev

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

重新安装依赖:

cnpm install

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

4.4 启动后台

在根目录执行如下命令就可以启动后台了:

npm run dev

启动成功后,会自动打开浏览器,访问的地址是 http://localhost:8081

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

4.5 登陆后台

账号密码都是 admin,输入验证码即可登录。注意:如果验证码没有出现,说明 RenrenApplication 微服务有异常,请查看 IDEA 中打印出的 log。

登录后台界面如下图所示:

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

PassJava 后台

4.6 添加题目分类

首先需要给题目添加分类,在后台点击新增类型,如下图所示:

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

注意:上传图片前需要启动 thirdparty 微服务,且 OSS 配置正确。

4.7 添加面试题

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区


五、其他

5.1 未适配的镜像

我的开源项目中要用 Elasticsearch 和 Kibana,且它们是运行在 docker 上的,但目前这些镜像在 M1 上还未适配。所以用不了 ES 和 Kibana,难过😫

40 图|我用 M1 玩转 SpringCloud-鸿蒙开发者社区

5.2 前端小程序

小程序的开发和测试在这里也不演示了, M1 上开发小程序完全没问题~

5.3 未添加的中间件

因本篇只是出于核心功能的演示,所以还有些中间件未提及,比如配置 Redis、链路追踪等,这些功能不影响 M1 上使用 Spring Cloud,所以会放在后续的文章中做进一步说明。

下一篇实战 Redis 也安排上了,敬请期待。


本文转载自公众号:悟空聊架构

已于2022-11-28 15:32:56修改
收藏
回复
举报
回复
    相关推荐