搜索
系统演示
取消
热门系统产品
电商系统产品
供应链系统产品
渠道商管理产品
其他产品服务
没有你合适的?
我要定制 >

java b2b2c多用户商城源码

2018-11-04 0
分类: 技术干货

Java多用户商城系统架构分析之商城源码选型,之前一直都是在从事电商相关和互联网金融开发,处理过亿级数据量。

由于Java是开源的,最近几年Hadoop等开源产品越来越成熟,而且是基于Java的,所以最终选择Java最后后台开发语言,现在前端是自己的前端工程师写的JS,后期准备改成前端是PHP,中间是Go语言,B2B2C多用户商城平台后台服务器是JAVA,因为PHP写前端很厉害,不过这个也是后期了。

java b2b2c多用户商城源码

控制层:

这几年springMVC发展的非常火,而且开发效率比较高,struts系列已经完全没落了,所以现阶段选择SrpingMVC。

视图层:

这个我个人认为哪一个都差不多,jsp、freemarker也好,最终都是生成的html。

数据库设计:

1、关键的一个是绝对不能有外键强关联,我看到类似用hibernate、JPA产品的一些公司,全部都是强关联,那你以后想删除一些数据,那真是噩梦的,这个还不用说,查询性能方面影响也是巨大的。

2、分库分表。这个必须要支持的,做B2B2C多商家商城系统互联网数据量是非常的巨大的,如果开始就不能支持分库分表,那么后期会至少花上千万去做这事,最好一个例子就是当当网,当年很多是单库的,到现在部分表也没有实现分库分表,它们只能使用一些分区表架构,分区表本身就存在很大问题,比如扩展性、数据量过亿都是问题!!!!

数据库选择:最好还是myslq

1、轻量;

2、开源(阿里的alisql就是MySQL改个名字);

3、功能能满足电商需求;

搜索:选择lucene较好,原因是他封装的较好;

权限:对于电商来说不应该设计的过于复杂,我认为主要就两张表就够了,一个是角色Role表,一个是资源Resources表,然后用户和角色通过中间表关联下就OK了,角色里面有资源,很简单的逻辑,security、shiro这两款的权限框架都能做出这个需求。

缓存:目前使用Redis,我看到有的公司使用的是memcache,这个10年前,就这样,功能非常的简陋不说,主要一个问题是会有死缓存,就是缓存怎么也清空不了,这个你想想就知道多悲剧了,商家修改了价格,怎么也改不了,最后只能关闭机器重启。还有的公司使用的还是hibernate提供的ehcache,这个大家自行了解即可,关键是他做集群有问题,搞电商不可能是单机的,刚上线至少是2台服务器。

静态化:目前页面高并发部分做静态化,可以实现全站80%都是静态页面,数据从集群redis缓存中读取。

服务化:目前使用dubbo,阿里的东西还是经受住很大考验的,即时老外的东西再好,也没有这样的场景去考验,所以都还是理论阶段,这个让国人蛮自豪的!但是最近一两年springCloud也是非常火,我们也在考虑换到springCloud!

关于到底使用dubbo还是SpringCloud,其实都有各自的理由,dubbo有实际的线上经验,SpringCLoud是一家软件公司开发的,没有自己的实际线上经验,而且SpringCloud这家公司每次升级产品都是不向前兼容。

如果你需要自己做一些分布式的治理,那么选择SpringCloud还不错。否则选择dubbo也是不错的选择!

图片服务器:这个也是非常重要的环节,目前我们测试系统都有5个G的图片了!!!!线上估计会是以T计算的,必须独立的图片服务器的。

集群、负载、分布式:前面的分库分表、服务化、图片服务器都是为集群、负载、分布式做准备的,集群需要基于CDN做动态切换,服务器用Nginx做负载,业务层用dubbo做分布式服务。

下面整理下整个架构吧:

展示层/控制层:SpringMVC;

持久层:mybatis;

数据库:MySQL/Oracle,支持主从复制、读写分离、多机备份、支持分库分表;

缓存机制:redis,CDN图片缓存,也是支持热备份、高并发的;

静态化机制:系统页面做静态化,提高访问速度;

图片服务器:购买专用服务器,用nginx做负载;

搜索引擎: 分布式Lucene;

服务器:Linux;

中间件:tomcat、nginx,还有其他N多的支持集群部署的安装间接软件,就不一一列举了;

图片服务器:通过nginx做的,SFTP方式统一上传;

集群方案:多机tomcat,seesion统一管理,图片统一管理。这些需要一套解决方案;

服务器要求:linux/windows,16G内存,空间100G以上;

最后对于JAVA领域商城的开发,其实在PHP、.NET语言中,已经有非常多的成熟同类产品了,比如shopnc、ecshop等等等,但是PHP的逻辑都是写在前台文件中,这个就跟JAVA中的逻辑都是写在了JSP中一样,这样虽然便于开发,但是后期二次开发、维护都不方便。另外.NET语言大家都是知道的,它是不开源的,这个我觉得不敢用的,哪天你遇到致命bug了,没法从底层排查,这也是为什么银行、金融、电商很多行业不用这个语言原因了。

另外对于JAVA开发方面,其实如果有好的架构,JAVA程序员只写逻辑,前端只写前端,数据库DBA只关注DBA,这样的话,开发起来会非常的方便。我们团队目前也是花了很长时间,也借鉴了很多成熟的框架,研发了一套适合商城开发的一套架构。

文章来源:博客园

<数商云(www.shushangyun.com)是国内知名企业级电商平台提供商,为企业级商家提供最佳的系统开发(多种模式电商平台搭建:B2B/B2B2C/B2C/O2O/新零售等)、供应系统搭建电商解决方案服务>

网站声明:以上内容为数商云电子商务系统网站的原创文章,如需转载,请注明出处,谢谢合作!
评论
剩余-200
发表
电商头条文章
1 SAAS服务多租户数据隔离架构
SAAS服务多租户数据隔离架构常见的有独立数据库、共享数据库(隔离数据)、共享数据库(共享数据),针对这三种数据隔离架构方式,具体选择的时候需要根据业务使用情况来定。
2 多租户系统SaaS架构设计分析(实践篇)
Saas多租户系统拥有自己独立的数据库,每个应用程序实例只需要一个数据库。对Saas多租户系统管理独立于系统之外,对于每一个租户,整个应用程序需要重复安装一次。供应商都可以为租户管理软件,每个应用程序实例都配置为连接到其相应的数据库。
3 SaaS多租户系统的架构设计
SaaS系统架构成熟度模型的5个级别——从“混乱”到“乌托邦”。
4 关于SaaS平台中应对多租户系统模式的权限设计
做一款toB的产品,采用SaaS的模式对外B端客户提供服务。目标就是如何规划好平台的管理、租户的管理、租户应用的管理以及租户业务流程等内容的管理。我们将SaaS平台基本角色分为平台管理员、平台运维、平台开发、租户管理员、租户子管理员、租户其他角色组成。
5 SaaS多租户系统框架下的管理模式优点
SaaS多租户意味着一个软件应用程序的单个实例要服务于多个客户,它是SaaS多租户系统成功的关键。这可以通过单独的数据库或向特定用户显示足够信息的数据库来实现。得益于此,开发速度将会更快,因为开发人员可以利用以前编写的代码库来扩展服务并应用更改。
填写以下信息, 免费获取方案报价
姓名
手机号码
企业名称
选择行业
  • 建筑建材
  • 化工
  • 钢铁
  • 机械设备
  • 原材料
  • 工业
  • 环保
  • 生鲜
  • 医疗
  • 快消品
  • 农林牧渔
  • 汽车汽配
  • 橡胶
  • 工程
  • 加工
  • 仪器仪表
  • 纺织
  • 服装
  • 电子元器件
  • 物流
  • 化塑
  • 食品
  • 房地产
  • 交通运输
  • 能源
  • 印刷
  • 教育
  • 跨境电商
  • 旅游
  • 皮革
  • 3C数码
  • 金属制品
  • 批发
  • 研究和发展
  • 其他行业
需求描述
请您填写以下信息马上预约演示
姓名
手机号码
你的职位
企业名称

恭喜您的需求提交成功

尊敬的用户,您好!

您的需求我们已经收到,我们会为您安排专属电商商务顾问在24小时内(工作日时间)内与您取得联系,请您在此期间保持电话畅通,并且注意接听来自广州区域的来电。
感谢您的支持!

微信咨询
(工作日09:00 - 18:00)
微信扫描二维码添加客服微信
电话咨询 (工作日09:00 - 18:00)
客服热线: 4008 868 127
售前热线: 189 2432 2993
微信扫描快速拨打电话
console.log();