Skip to content

Latest commit

 

History

History
234 lines (173 loc) · 9.25 KB

README.md

File metadata and controls

234 lines (173 loc) · 9.25 KB

不准备面试了 还是写项目有意思 最近在把项目改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 服务 内存使用情况