这篇文章主要介绍“如何用Mac M1玩转SpringCloud”,在日常操作中,相信很多人在如何用Mac M1玩转SpringCloud问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用Mac M1玩转SpringCloud”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
本文主要内容如下:
Nacos 作为配置中心和注册中心,是必须要启动的。
Nacos 下载地址:
https://github.com/alibaba/nacos/releases
最新版是 2.0.0-bugfix,我下载后,启动成功了,但是无法访问 Nacos 后台,怀疑是本地环境有问题,所以换了一个低版本的 1.4.1,可以正常工作。另外我之前在 windows 机器上使用的 1.2.1 的版本,拷贝到 Mac 上也能正常运行。
进入 nacos 根目录,执行命令:
sh startup.sh -m standalone
执行后的结果如下图所示:
看到 nacos is starting withi standalone 就表示启动成功。注意:启动成功不代表正常运行。
接下来访问 nacos 的后台管理系统:
http://127.0.0.1:8848/nacos/#/login
账号和密码都是 nacos
。
添加 7 个微服务的命名空间:
新建命名空间时需要填写的字段:
在配置列表添加几个微服务的配置,目前保证 question 微服务和 thirdparty 微服务有配置即可。
如下图所示,添加三个配置项:数据源,mybatis 配置,其他配置。详细的配置参数参照这篇来配置:《SpringCloud 整合 Nacos 配置中心》。
主要是配置阿里云 OSS,用来保存图片的。配置如下图所示,key 需要大家到自己登陆到阿里云并申请 OSS 才能获取到。参照这篇《SpringCloud 实战项目-整合 OSS 对象存储》。
创建数据库、表、初始化数据这些工作都需要做,下载一个 MySQL 客户端还是要方便点,然后找 Mac 上好用的客户端软件,下面是安装软件的艰辛历程。
首先需要安装 mac 版的 MySQL,下载地址:
https://dev.mysql.com/downloads/mysql/
选择第一个就可以了,官网已经提示该版本兼容 Mac M1
Packages for Catalina (10.15) are compatible with Big Sur (11)
下载后点击安装,安装成功后,到系统偏好配置里面找到 MySQL,并单击打开。
可以看到运行的 MySQL 实例是 MySQL 8.0.23,且默认开机运行。
![]
我试过安装 workbench 后,不能运行。
安装 Squel Pro 后,切换数据库的时候程序崩溃。
经过上面两个软件的崩溃后,我最后还是下载了试用版的 Navicat,可以免费用 14 天,对于初始化数据足够了。
下载地址:
http://www.navicat.com.cn/download/navicat-for-mysql
下载 macOS 的最新版 15,它是兼容 M1 芯片的。
然后需要执行三个 SQL 文件,文件我已经上传到仓库上了,
/passjava-platform/data/sql
依次执行上面的三个文件后,会生成 6 个数据库:一个系统数据库,五个业务数据库。
主要启动 4 个核心服务:网关微服务
、题目微服务
、第三方微服务
、系统管理微服务
。
架构图如下所示:
目前这几个微服务已经整合了 Nacos、OpenFeign、Gateway、统一异常处理、链路追踪,Redis 等。
启动都是基于 IDEA 开发工具直接启动的,所以需要下载 IDEA。
我安装的 IDEA 是旗舰版 2020.3 的,试用版 30 天。大家可以下载免费的社区版 Community,功能上也能满足。
性能非常快,我的 Windows 的配置:ThinkPad、 32 G 内存、1T 固态硬盘,启动一个微服务需要 10 秒以上,而 Mac 只需要 3 秒
。
官网下载地址:
https://www.jetbrains.com/idea/download/#section=mac
我的开源项目的后台框架用的人人框架,它的主要功能就是后台的登陆、系统管理功能,所以必须启动 renren-fast
服务才能使用后台管理。
大家可以启动 RenrenApplication 这个 Service,启动成功后,会提示以下信息:
renren-fast 服务暴露的端口是 8080,但是这个端口对前端是不可见的,前端 API 都是走网关的 8060 端口。将前端的请求转发到 renren-fast 的 8060 端口,比如登陆请求。注意:一定要初始化完数据才能启动成功。
网关微服务没有什么特殊要求,我都配置好了,直接启动就好了。另外如果遇到端口被占用的情况,可以通过如下命令解决:
lsof -i:8060kill -9 <进程 id>
网关微服务暴露的端口是 8060,启动后如下图所示:
题目服务是核心模块,很多实战案例都是基于这个模块进行讲解的。启动服务之前,需要配置数据库 MySQL 的连接。
文件路径:/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 来配置:
IDEA 工具中直接启动就可以了,暴露的端口是 11000,启动后如下图所示:
用 postman 测试网关+题目微服务是否正常工作:
由于我的数据库中是有数据的,所以会返回很多数据,大家后面可自行添加数据。
这个第三方不是指另外一方的服务,而是我把与第三方中间件交互的服务都归在这个服务里面了,比如对阿里云 OSS(对象存储) 的操作。
这个服务的名字叫做:passjava-thirdparty
。另外需要注意,OSS 需要大家到阿里云官网申请,有免费额度哦~配置方式可以参照这篇:《SpringCloud 实战项目-整合 OSS 对象存储》。
启动成功后,如下图所示:
Admin 管理后台的技术选型还是用的 Vue,所以需要使用 npm 工具来安装依赖。
使用 homebrew 安装 npm
brew install npm
使用 homebrew 安装 nvm
brew install nvm
默认的 npm 使用的是官方的镜像源,我们切换为国内的淘宝镜像源。
npm install -g cnpm --registry=https://registry.npm.taobao.org --verbose
仓库里面并没有将依赖包一起上传,因为依赖包太大了,所以可在本地通过如下命令安装依赖包,这个是一次性的,后面不需要再执行。
进入到 passjava-platform/passjava-portal 目录,执行如下命令来安装依赖:
cnpm install
启动前端portal
npm run dev
报错,提示 Node Sass 不兼容当前的系统:
Node Sass does not yet support your current environment: OS X Unsupported architecture (arm64) with Unsupported runtime (88)
根据网上提供的解决方案,要先卸载 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
重新安装依赖:
cnpm install
在根目录执行如下命令就可以启动后台了:
npm run dev
启动成功后,会自动打开浏览器,访问的地址是 http://localhost:8081
账号密码都是 admin,输入验证码即可登录。注意:如果验证码没有出现,说明 RenrenApplication 微服务有异常,请查看 IDEA 中打印出的 log。
登录后台界面如下图所示:
PassJava 后台
首先需要给题目添加分类,在后台点击新增类型,如下图所示:
注意:上传图片前需要启动 thirdparty 微服务,且 OSS 配置正确。
我的开源项目中要用 Elasticsearch 和 Kibana,且它们是运行在 docker 上的,但目前这些镜像在 M1 上还未适配。所以用不了 ES 和 Kibana,难过????
小程序的开发和测试在这里也不演示了, M1 上开发小程序完全没问题~
到此,关于“如何用Mac M1玩转SpringCloud”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。