25届秋招必备极具竞争力项目
仿b站前后端分离微服务项目,这个项目相比其他项目的亮点在于1.项目重复度极低,意味着简历在筛选时脱颖而出的概率更高2.项目技术栈丰富,常用技术中用到了springboot、springcloud、mysql、redis、rocketmq、elasticsearch、mybatis-plus、swagger、fastjson、Jackson、gson、lombok,按需引入的有websocket、druid、minio、xxl-job、security、jwt、hutool、javemybatis-plus-join、slueth、zipkin、讯飞星火api
下面是开发文档之环境配置与maven
个人认为理解项目前先跑通后端项目有助于理解,而跑通后端项目需要下载成功maven依赖和运行各个中间件。
maven的基础使用应该比较多人会,因此不做说明,如果后期需要的人多的话再补充一个。maven需要注意的有几点:
1.maven是通过读取pom文件去远程中央仓库或maven的setting.xml中指定的镜像仓库如阿里云镜像仓库中下载依赖到本地仓库,然后引用本地仓库的缓存,有时可能会因为网络波动导致下载出一个不完整的依赖,或者版本号写错了下载出来一个空的依赖,这种情况下maven不会报错,但引入该依赖中的类时可能报错,只需把本地仓库中对应的依赖删掉重下载即可。
2.由于六个业务服务都引入了公共模块且网关服务引入了和mvc风格冲突的webflux风格的Gateway,因此Gateway服务需要用exclude排除掉Spring-boot-starter-web依赖,以及当前使用版本的Openfeign已经使用loadbalancer替换了ribbon,因此项目中需要额外引入springcloud-loadbalancer,且需要排除nacos中的ribbon依赖否则loadbalancer无效。
3.启动服务后有时会发现修改代码却并没有生效,可能是idea缓存的原因,需要用maven的clean命令清除掉旧的target包,然后重启服务后生成新target包,部署同理,有时发现线上更新的jar包没有同步修改就clean后重新install。
4.Springboot打jar包时会把本地仓库中的依赖也打进去,所以打jar包前需要先把被引入到业务模块的公共模块install,然后公共模块会被打包到本地仓库中,install或package其他服务jar包时就可以把公共模块打包进去。同时如果修改了公共模块代码,在打包其他服务前一定要先install公共模块更新本地仓库的公共模块包,否则公共模块的修改不会同步到被放到线上的新jar包。
接下来是运行环境跑通最速传说
nacos的运行(下载地址https://labilibili.com/package/nacos.zip)
运行后浏览器输入地址http://192.168.0.100:8848/nacos/index.html即可看到控制台
redis的运行(下载地址https://labilibili.com/package/Redis-x64-5.0.14.1.zip)
点击该exe
redis配套可视化连接控制台(下载地址https://labilibili.com/package/Another-Redis-Desktop-Manager.1.5.9.zip)
下载后解压出一个exe文件,点该文件安装redis-desktop,redis-desktop界面如下
本地新启动的redis默认无用户名和密码,因此点new connection后点ok就直接连上了本地运行的redis
es的运行(下载地址https://labilibili.com/package/elasticsearch-7.8.zip)
点击该文件运行es
下载浏览器插件下载浏览器插件Elasticvue观测es连接情况与es数据情况
minio的运行(下载地址https://labilibili.com/package/minio.zip)
选定一个存放minio数据路径如E:\miniodata然后用minio server path启动minio,若该路径不存在则自动创建,在浏览器中输入命令行日志中的console对应的路径http://192.168.0.100:50457或localhost:9200会到控制台,默认用户名和密码都是minioadmin
rocketmq运行(下载地址https://labilibili.com/package/rocketmq.zip)
解压后设置环境变量ROCKETMQ_HOME值为解压目录,也就是bin文件夹的上一层目录,然后命令行进入文件夹的bin目录
启动nameserver并打开新的命令行窗口,日志在该新命令行窗口中
需注意es和rocketmq的初始启动内存参数都较大,因此建议修改,es的在config目录下的jvm文件中修改,找到-Xms1g
-Xmx1g这两行,线上的zip是两个都改小到了1g,也可以再改小
rocketmq则是进入bin目录下找到名为runbroker和runserver的windows命令脚本并右键文件选择编辑,以记事本形式查看,分别在这两个文件中找到set "JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g"和set "JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m",然后根据电脑负荷修改xms和xmx这两个启动参数的值
同时需要注意若启动rocketmq时环境变量写错了,更新后需要关掉命令行重新打开一个否则更新不同步
broker运行
如图,运行java -Drocketmq.home.dir=E:/rocketmq/rocketmq-Dlog.home=E:/rocketmq/rocketmq/logs -cp .;../conf;../lib/* org.apache.rocketmq.broker.BrokerStartup -n 127.0.0.1:9876命令后成功启动broker,E:/rocketmq/rocketmq替换成bin文件夹所在目录。
项目地址https://labilibili.com,github地址https://github.com/aigcbilibili/aigcbilibili,演示地址https://labilibili.com/video/演示.mp4,如果大家觉得有帮助的话可以去github点个小星星