致敬原作者
下载地址
- 分享一些关于这个分布式环境的搭建遇到一些坑,帮助后来者更好的学习分布式相关技术
核心技术(后台)
- 使用
Spring Boot
构建整个项目 去除 XML 配置 -
Maven
构建项目 -
Jenkins
作为持续集成 - 采用
Dubbox
作为RPC框架 -
kryo
序列化 - 使用
Apollo
配置中心(目前这个有问题,导致项目不能启动,我已经全部注释) - 使用
Spring
+Spring MVC
+MyBatis
SSM框架 - 数据库使用
MySQL
和Redis
- 页面引擎采用
Beetl
- 网页采用
freemarker
生成静态化页面 - 存储采用
FastDFS
存储图片等文件 - 采用
Solr
实现搜索服务 -
Swagger2
生成 RESTful Apis文档 - 负载均衡使用
Nginx
、keepalived
实现高可用 - 采用
Spring Scheduled
做任务调度 - 消息中间件采用
RabbitMQ
- 在分布式事务上则采用了TCC解决订单支付方面时效性要求性高的分布式事务,可靠的消息服务则来解决如会计记录等时效性要求低的分布式事务.
核心技术(前台)
- 采用基于AdminLTE的roncoo-adminLTE(主要增加了Ajax的布局模式)
- AdminLTE集成太多Js这里就不一一列举了
项目结构图
目前的开发进度
先看效果图
运行环境
- jdk1.8+tomcat+mysql+maven+idea
安装过程(一定先看作者的安装视频,视频地址链接:https://pan.baidu.com/s/1qZTPwlu 密码:irn0)
- 源码目录结构,我使用的idea直接导入,导入正确的结构,会出现各种jar包问题,我直接把本地的仓库全部上传了,maven本地仓库下载链接:https://pan.baidu.com/s/1o9Tn3HC 密码:iu2a 直接覆盖本地的.m2下的文件即可
- 注释掉里面所有关于私服的配置,阿里云镜像的保留,只注释私服
- 使用
Apollo
配置中心,关于Apollo自行百度,如果使用这个配置会一直报一个关于com/google/guava,不用管他,把所有的@EnableApolloConfig全部注释掉 - 此时项目编译应该不会出现红线错误,如果有还是存在,建议更新下maven索引,会有点长,等他更新完,重启idea
- 如果出现spring-boot-starter-druid,doubbox,redis找不到的情况,建议直接使用idea导入源码,install到本地仓库
- 关于虚拟机的搭建,为了方便测试,我在虚拟机上的Windows上搭建了zookeeper+dobbuo+redis+jdk1.8+tomcat8的环境,使用本地的mysql,fastdfs不影响程序运行没有搭建,直接使用VMware Fusion 导入即可使用,镜像下载地址
- 启动zookeeper,在启动tomcat,redis,直接输入,启动顺序一定是先zookeeper在tomcat,http://127.0.0.1:8080/dubbo-admin-2.5.5/会要一个填写账号密码的弹窗,默认账号密码是root/root,我虚拟机的运行情况
- 修改项目中的所有的yml文件,有两个要注意的地方,一是zookeeper的注册地址,而是doubbo的地址,zookeeper写虚拟机的地址,端口不用变,doubbo直接注释掉或者填写本机的IP,如果出现IP问题,百度VMware固定IP的设置
- 关于druid密码加密的问题,我即是加密一样出现一个密码未加密的错误,建议是直接改为false,然后填写未加密的密码
- 接下里开始编译项目,使用install -DskipTests
- 正确的编译截图,如果还有问题,一般都是jar的问题
项目运行
- 启动XbinStoreServiceRedisApplication
- 启动XbinStoreServiceNotifyApplication
- 启动XbinStoreServiceSSOApplication
- 启动XbinStoreWebSSOApplication
- 整个项目所有的static文件目录不能出现任何错误,js.css这些一样不行,全部启动成功,输入localhost:8104/login就可以看到登陆页面
- 关于后台登陆密码的问题,作者使用DigestUtils.md5DigestAsHex去加密密码,我没有使用fastdfs所以直接生成的密码
本项目最终实现的目标 点我查看最后完成效果