基于SOA架构的分布式购物电商商城
- 后台管理系统:管理商品、订单、类目、商品规格属性、用户、权限、系统统计、系统日志以及前台内容等功能
- 前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作
- 会员系统:用户可以在该系统中查询已下的订单、管理订单、我的优惠券等信息
- 订单系统:提供下单、查询订单、修改订单状态、定时处理订单
- 搜索系统:提供商品的搜索功能
- 单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息
前端所用技术
- 后台页面
- 感谢 H-ui、FlatLab 提供静态页面支持
- Ztree:jQuery树插件
- DataTables:jQuery表格插件
- Layer:web弹层组件
- Distpicker:中国省市区地址三级联动插件
- KindEditor:富文本编辑器 简洁方便 没UEditor那么多坑
- WebUploader:百度文件上传插件
- HighCharts:图表库
- 不蒜子:极简网页计数器
- 前台页面
- 详情请跳转至 xmall-front 项目仓库
- 感谢 yucccc 的开源 vue-mall 项目提供前端页面及框架支持
- Vue2 Vuex Vue Router Element UI ES6 webpack axios Node.js
后端所用技术
各框架依赖版本皆使用目前最新版本 可进入xmall-parent中 pom.xml 查看
- Spring
- SpringMVC
- MyBatis
- Dubbo
- ZooKeeper
- MySQL
- Mycat:数据库分库分表中间件
- Redis:缓存
- Elasticsearch:基于Lucene分布式搜索引擎
- ActiveMQ:消息队列
- Druid:阿里高性能数据库连接池
- Shiro:安全框架
- Swagger2:Api文档生成
- Docker
- Nginx
- Tomcat
- Maven
- 第三方SDK
- 七牛云文件存储服务
- 极验Test-button人机验证码 因其收费见极验验证码移除文档
- 第三方插件
- hotjar:一体化分析和反馈
- 搜狐畅言评论插件
- 第三方接口
- Mob全国天气预报接口:需注册账号创建应用后申请填入AppKey
- 其它开发工具
- Jenkins:持续集成
- JRebel:开发热更新
- 阿里JAVA开发规约插件
文件说明
- xmall 文件夹提供部分依赖与sql文件
- xmall.sql:数据库文件
- dubbo.xsd:需手动配置避免报错
- redis-3.0.0.gem:Redis集群搭建所需Ruby库
- generatorSqlmapCustom 文件夹为 Mybatis Generator 逆向生成工具,且已配置好maven插件
本地开发运行部署
- 下载zip直接解压或安装git后执行克隆命令 git clone https://github.com/Exrick/xmall.git
- 安装各中间件并启动:ZooKeeper、Redis、ActiveMQ、Elasticsearch
- 修改各配置文件相应依赖IP配置(默认本地127.0.0.1),以及七牛云、极验配置、天气接口在 xmall-common – utils 中找到修改,XPay邮箱配置在 manager-service与sso-service 中
- Maven安装和在IDEA中配置
- 使用IDEA(破解/免费注册) File-Open 直接打开xmall项目,点击右下角 Import Changes 等待安装完依赖即可
- MySQL数据库新建 xmall 数据库,运行sql文件,注意在有 db.properties 的模块中修改你的数据库连接配置
- 按照依赖顺序分别在每个模块文件夹根目录执行 mvn install 命令
- 项目需运行除 xmall-parent xmall-common 以外其它所有6个服务,且都已配置好Tomcat插件, 执行命令 mvn tomcat7:run 或在IDEA中使用插件(View – Tool Buttons – 右侧菜单Maven Projects – tomcat7 – tomcat7:run)运行即可,当然可自行配置
- 后端管理系统默认端口8888 http://localhost:8888 管理员账密admin|123456
- 前端项目接口默认端口7777 前台页面请启动基于Vue的 xmall-front 项目,并修改其接口配置
相关技术点说明
- ES-IK分词插件词典库扩展
IK Analyzer 扩展配置
http://localhost:8888/getDictList
http://localhost:8888/getStopDictList- 详见 elasticsearch-analysis-ik插件作者项目README说明
- 本项目中扩展接口和禁用词接口分别为 http://localhost:8888/getDictList 和 http://localhost:8888/getStopDictList,将以上2个接口配置进IK插件扩展配置文件{conf}/analysis-ik/config/IKAnalyzer.cfg.xml 或者 {plugins}/elasticsearch-analysis-ik-*/config/IKAnalyzer.cfg.xml中即可,示例:
- 限流
- xmall-front-web 中已配置限流,配置文件 resource.properties 中可配置全局限流,示例:#启用全局限流
xmall.rateLimit.enable=true
#每1秒内
xmall.rateLimit.timeout=1000
#限制10个请求
xmall.rateLimit.limit=10 - 指定方法限流注解@RateLimiter(limit = 1, timeout = 5000)
- 支持多维度IP、uid等限流 详见代码
- xmall-front-web 中已配置限流,配置文件 resource.properties 中可配置全局限流,示例:#启用全局限流
内容出处:,
声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。文章链接:http://www.yixao.com/share/10566.html