致敬原作者

下载地址

  • 分享一些关于这个分布式环境的搭建遇到一些坑,帮助后来者更好的学习分布式相关技术

核心技术(后台)

  • 使用​​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​​解决订单支付方面时效性要求性高的分布式事务,可靠的消息服务则来解决如会计记录等时效性要求低的分布式事务.

核心技术(前台)

项目结构图

目前的开发进度

先看效果图

  • 【xbin-store】基于springboot的分布式B2C电商开源项目_zookeeper

  • 【xbin-store】基于springboot的分布式B2C电商开源项目_redis_02

  • 【xbin-store】基于springboot的分布式B2C电商开源项目_spring_03

运行环境

  • jdk1.8+tomcat+mysql+maven+idea

安装过程(一定先看作者的安装视频,视频地址链接:​​https://pan.baidu.com/s/1qZTPwlu​​ 密码:irn0)

  • 源码目录结构,我使用的idea直接导入,导入正确的结构,会出现各种jar包问题,我直接把本地的仓库全部上传了,maven本地仓库下载链接:​​https://pan.baidu.com/s/1o9Tn3HC​​ 密码:iu2a 直接覆盖本地的.m2下的文件即可
  • 注释掉里面所有关于私服的配置,阿里云镜像的保留,只注释私服
  • 【xbin-store】基于springboot的分布式B2C电商开源项目_zookeeper_04

  • 使用​​Apollo​​ 配置中心,关于Apollo自行百度,如果使用这个配置会一直报一个关于com/google/guava,不用管他,把所有的@EnableApolloConfig全部注释掉
  • 【xbin-store】基于springboot的分布式B2C电商开源项目_redis_05

  • 此时项目编译应该不会出现红线错误,如果有还是存在,建议更新下maven索引,会有点长,等他更新完,重启idea
  • 【xbin-store】基于springboot的分布式B2C电商开源项目_redis_06

  • 如果出现spring-boot-starter-druid,doubbox,redis找不到的情况,建议直接使用idea导入源码,install到本地仓库
  • 【xbin-store】基于springboot的分布式B2C电商开源项目_zookeeper_07

  • 关于虚拟机的搭建,为了方便测试,我在虚拟机上的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,我虚拟机的运行情况
  • 【xbin-store】基于springboot的分布式B2C电商开源项目_spring_08

  • 修改项目中的所有的yml文件,有两个要注意的地方,一是zookeeper的注册地址,而是doubbo的地址,zookeeper写虚拟机的地址,端口不用变,doubbo直接注释掉或者填写本机的IP,如果出现IP问题,百度VMware固定IP的设置
  • 【xbin-store】基于springboot的分布式B2C电商开源项目_spring_09

  • 关于druid密码加密的问题,我即是加密一样出现一个密码未加密的错误,建议是直接改为false,然后填写未加密的密码
  • 【xbin-store】基于springboot的分布式B2C电商开源项目_zookeeper_10

  • 接下里开始编译项目,使用install -DskipTests
  • 【xbin-store】基于springboot的分布式B2C电商开源项目_redis_11

  • 正确的编译截图,如果还有问题,一般都是jar的问题
  • 【xbin-store】基于springboot的分布式B2C电商开源项目_spring_12

项目运行

  • 启动XbinStoreServiceRedisApplication
  • 启动XbinStoreServiceNotifyApplication
  • 启动XbinStoreServiceSSOApplication
  • 启动XbinStoreWebSSOApplication
  • 整个项目所有的static文件目录不能出现任何错误,js.css这些一样不行,全部启动成功,输入localhost:8104/login就可以看到登陆页面
  • 关于后台登陆密码的问题,作者使用DigestUtils.md5DigestAsHex去加密密码,我没有使用fastdfs所以直接生成的密码
  • 【xbin-store】基于springboot的分布式B2C电商开源项目_redis_13

本项目最终实现的目标 点我查看最后完成效果