Skip to content

模仿国内知名B2C网站,实现的一个分布式B2C商城

License

Notifications You must be signed in to change notification settings

xinxiamu/xbin-store

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

不准备面试了 还是写项目有意思 最近在把项目改Spring Boot 应该就在这几天可以全部修改好

另外等这个项目转移到Spring Boots 后会使用Spring Cloud重新开发一个项目 对Spring CloudDubbox有兴趣的可以加群一起讨论626068936

xbin-store

模仿国内知名B2C网站,实现的一个分布式B2C商城

群 626068936 🈳

ps.进群参与开发或讨论 进群验证请填写Github账户名

使用技术:

  • 后台
    • Maven构建项目
    • Jenkins作为持续集成
    • 构上采用Dubbox作为RPC框架
    • kryo序列化
    • 使用Spring+Spring MVC+MyBatisSSM框架
    • 数据库连接池使用druid
    • 数据库使用MySQLRedis
    • 网页采用freemarker生成静态化页面
    • 存储采用FastDFS存储图片等文件
    • 采用Solr实现搜索服务
    • 负载均衡使用NginxKeepalived实现高可用
    • 采用Spring Scheduled做任务调度
    • 消息中间件暂时采用ActiveMQ准备替换为RocketMQ,
    • 在分布式事务上则采用了TCC解决订单支付方面时效性要求性高的分布式事务,可靠的消息服务则来解决如会计记录等时效性要求低的分布式事务.
  • 前台
    • 采用基于AdminLTEroncoo-adminLTE(主要增加了Ajax的布局模式)
    • AdminLTE集成太多Js这里就不一一列举了

Pull Request

想要一起开发的可以 Fork 项目,发邮件给我,我会把关于项目的数据库文件、Json 格式发送给您

前端、后端都可以参与。

期待您的 Pull Request.

环境

本机

  • Maven3.2.5
  • nexus-2.2
  • IntelliJ IDEA 2017.1
  • JDK 1.8.0
  • Mac OS X 10.11.6
  • Jenkins
  • dubbo-admin-2.8.4

虚拟机5台(各1G内存就可以)

ps.有虚拟机最好,并不是一定要求虚拟机。开发也可以全部装在本机,使用虚拟机的好处就是可以避免你的系统端口占用、删除麻烦等等一些问题。

教程写的不是很好 勿喷!!!

运行流程

1、下载源码

GitHub: https://github.com/xubinux/xbin-store

OSChina: http://git.oschina.net/binu/xbin-store

IDEA 可以直接 VCS -> Checkout from Version Control -> Git -> 填写地址https://git.oschina.net/binu/xbin-store.git

IDEA导入可以只导入xbin-store父工程 会自动导入全部模块

eclipse自行解决

不介意的话可以点个Star或者Fork 谢谢!

2、配置私服地址

不配置私服的可以自行下载群文件中的dubbo 2.8.4.jarfastDFS 1.2.4.jar 但是听群友说dubbo的jar包只能下源码重新编译才能使用,我是自己编译的,你们可以试试。

服务器由群里@K提供 就不发布在网上了 只供群里使用

3、修改配置文件

本项目一共有 2 大处配置文件地址 xbin-store-common-config 和各个工程 main/resources/config/config.properties

前者是整个项目的公共配置如:数据库、MQ等服务器地址都可以在这配置

后者是每个项目单独的配置如:dubbo配置、一些常量等配置

需要修改的地方

  1. xbin-store-common-config/src/main/resources/db.properties
    • jdbc.url
    • jdbc.username
    • jdbc.password
    • 密码需要加密java -cp druid-0.2.23.jar com.alibaba.druid.filter.config.ConfigTools you_password
  2. xbin-store-common-config/src/main/resources/mq_config.properties
    • mq.brokerURL
  3. xbin-store-common-config/src/main/resources/public_system.properties
    • dubbo.registry.address
    • fastdfs.base.url
    • solr.single.url
    • redis.server.single
  4. 各个模块的config.properties端口不要修改 如要修改请使用全局搜索替换原来端口

如有遗漏 请在群中给我反馈

4、编译

直接install父工程

install

新建Tomcat和dubbo服务

dubbo模板

20170407149154909476281.png

其他dubbox服务只需修改Main classUse classpath of module

Tomcat模板

20170407149154907556461.png

其他修改portArtifact即可

不使用 IDEA 的启动 dubbo 服务直接运行每个 service 服务的 src/test/java/vip/xubin/Provider.java中的 main 方法启动服务

Tomcat地址(本机)

名称 IP 完成情况
Portal 192.168.125.1:8101 完成情况
Search 192.168.125.1:8102 完成情况
Item 192.168.125.1:8103 完成情况
SSO 192.168.125.1:8104 完成情况
Admin 192.168.125.1:8105 完成情况
Cart 192.168.125.1:8106 完成情况
Order 192.168.125.1:8107 完成情况

Dubbox服务地址

服务名称 Dubbox服务端口 rest服务端口
Admin-Service 192.168.125.1:20880 rest:8510
Redis-Service 192.168.125.1:20881 rest:8511
Search-Service 192.168.125.1:20882 rest:8512
Portal-Service 192.168.125.1:20883 rest:8513
Item-Service 192.168.125.1:20884 rest:8514
SSO-Service 192.168.125.1:20885 rest:8515
Notify-Service 192.168.125.1:20886 rest:8516
Cart-Service 192.168.125.1:20887 rest:8517
Order-Service 192.168.125.1:20888 rest:8518

5、启动

按照依赖启动 Redis-Service 先启动 其他 service 启动,在 web 启动。

结构图

20170407149155166510416.png

20170320148998263242121.png

项目命名规范

  • 父工程 xx
    • xx-common
    • xx-common-config
    • xx-common-mapper
    • xx-common-pojo
    • xx-service-yy-api
    • xx-service-yy
    • xx-web-yy
    • ......

实现目标

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

##结构图 20170320148998263242121.png

运行截图

首页

20170320148998263242121.png

登录

20170320148998264384011.png

注册

201703201489982653612.png

搜索

20170320148998266267017.png

商品详情

20170320148998269698649.png

加入购物车

20170320148998270641283.png

购物车

20170320148998271738052.png

订单确认

20170320148998272353143.png

结算页

20170320148998273050196.png

后台页面

20170320148998275560672.png

启动虚拟机

20170320148998297295027.png

  • Zookeeper1 提供服务:Zookeeper
  • Storm1 提供服务:FastDFS Tracker
  • Storm2 提供服务:FastDFS Storage
  • Redis 提供服务:Redis
  • Solr 提供服务:Solr

Dubbox Admin 服务使用情况

20170320148998294075274.png

任务管理器

20170320148998292034786.png

启动了 5 台虚拟机+ 7 台 Tomcat + 9 个 Dubbox 服务 内存使用情况

About

模仿国内知名B2C网站,实现的一个分布式B2C商城

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 49.6%
  • HTML 30.1%
  • CSS 20.0%
  • Other 0.3%