主要搭建的技术:Java、MySQL、Redis、zookeeper、Dubbo、RocketMQ
首先说明,MySQL和Redis放到了我的阿里云服务器,负载并不大,其他全部服务搭建在实验室的服务器主机上,并采用内网穿透映射端口,让大家访问,大家注意一点哈。请谅解。
还有,本项目是对本校的班车预约服务的架构进行了重构,采用的比较热门的技术,如README所示。
从选型图上可以清晰的看到:
- Web层:sb-gateway网关,控制整个项目的请求分发与转接等。
- 接口层:sb-api定义各个服务的接口,比如用户、班车、订单等。
- 服务层:有着四大服务,分别如上图所示,用户、班车、订单和支付,并且其中均采用第三方中间件Zookeeper、Dubbo和RocketMQ等。
- 存储层,实际上,MySQL作为存储,而Redis做为MySQL上一层的缓存层
首先,一条请求从用户移动端或者PC端发出,经过前端的Nginx的代理转发到sb-gateway的网关,网关进一步的将请求进行路由分发到对应的Controller,从而执行相应的业务逻辑,其中对应的Controller中分为两步,第一步:找缓存,若存在,直接返回,若不存在。第二步:业务逻辑方法向Dubbo请求远程调用(RPC),得到结果,另外一边业务执行相应的底层如MySQL等,将结果返回给网关,并写入缓存等。
我在博客上写好了,可以参考。http://dreamcat.ink/2019/07/08/windows-mac-he-linux-an-zhuang-java/
我也在博客上写好了,可以参考,项目采用的MySQL8版本。http://dreamcat.ink/2019/05/27/windows-mac-he-linux-an-zhuang-mysql/
我还在博客上写好了,可以参考。http://dreamcat.ink/2019/05/28/windows-mac-he-linux-an-zhuang-redis/
- 下载地址
- 选择3.4.14版本下载即可,放进和刚才的myapps下。
- 解压:tar -zxf zookeeper-3.4.14.tar.gz
- 将配置文件cp -r zoo_sample.cfg zoo.cfg
- 启动zookeeper./zkServer.sh start
- 采用的是最新版本
- 下载解压后修配置文件
dubbo-admin-server/src/main/resources/application.properties
- 配置文件修改
zookeeper
地址,dubbo控制台端口默认8080,(参考端口图) - 可以修改为其他端口例如 server.port=9898,以免与其他服务端口冲突。(参考端口图)
- 在主目录dubbo-admin-server目录下,执行
mvn clean package -Dmaven.test.skip=true
cd dubbo-admin-server/target java -jar dubbo-admin-0.1.jar
启动即可- 最新版本采用前后端分离,那么前端可以到
dubbo-admin-ui
目录下,可在config目录下找到index.js中修改端口,修改过后可以终端输入npm install
- 安装依赖过后,可以
npm run dev
启动
我早有记录:http://dreamcat.ink/2020/02/21/centos7-an-zhuang-rocketmq-ji-pei-zhi/