网址:www.hulianrongyun.com,本人QQ:4407509,有问题可以联系本人
最近公司要开发商城,让我多方咨询,最后看了很多,要不就是代码、表字段注释不全,要不就是bug多,要么就是文档缺少,最后决定自己开发一套商城。
下面是开发的一些心得体会,权且记录下来,给自己做个记录把。
本人QQ:4407509,有问题可以联系本人
之前一直都是在从事电商相关和互联网金融开发,处理过亿级数据量,所以被目前这家公司看重。
由于Java是开源的,最近几年Hadoop等开源产品越来越成熟,而且是基于Java的,所以最终选择Java最后后台开发语言,现在前端是自己的前端工程师写的JS,后期准备改成前端是PHP,中间是Go语言,后台服务器是JAVA,因为PHP写前端很厉害,不过这个也是后期了。
控制层:这几年SpringBoot发展的非常火,而且开发效率比较高,SpringMVC系列已经完全没落了,所以现阶段选择SpringBoot。
视图层:这个我个人认为哪一个都差不多,jsp、freemarker也好,最终都是生成的html。
数据库设计:
1、关键的一个是绝对不能有外键强关联,我看到类似用hibernate、SpringData产品的一些公司,全部都是强关联,那你以后想删除一些数据,那真是噩梦的,这个还不用说,查询性能方面影响也是巨大的。
2、分库分表。这个必须要支持的,做互联网数据量是非常的巨大的,如果开始就不能支持分库分表,那么后期会至少花上千万去做这事,最好一个例子就是当当网,当年很多事单库的,到现在也没有实现分库分表,它们只能使用一些分区表架构,分区表本身就存在很大问题,比如扩展性、数据量过亿都是问题!!!!
3、处理秒杀,作为互联网项目,秒杀那也是必须要能支持才可以的。
数据库选择:最好还是myslq,1、轻量,2、开源(阿里的alisql就是MySQL改个名字),3、功能能满足电商需求
搜索:选择ElasticSearch较好,原因是他封装的较好
权限对于电商来说不应该设计的过于复杂,我认为主要就两张表就够了,一个是角色Role表,一个是资源Resources表,然后用户和角色通过中间表关联下就OK了,角色里面有资源,很简单的逻辑,security、shiro这两款的权限框架都能做出这个需求。
缓存:目前使用Redis,我看到有的公司使用的是memcache,这个10年前,就这样,功能非常的简陋不说,主要一个问题是会有死缓存,就是缓存怎么也清空不了,这个你想想就知道多悲剧了,商家修改了价格,怎么也改不了,最后只能关闭机器重启。还有的公司使用的还是hibernate提供的ehcache,这个大家自行了解即可,关键是他做集群有问题,搞电商不可能是单机的,刚上线至少是2台服务器。
静态化:目前使用前端静态化,可以实现全站60%都是静态页面,数据从集群redis缓存中读取。
服务化:目前使用SpringCloud,虽然阿里的dubbo确实做得非常好,但是目前市场来看SpringCloud有取代的趋势,另外SpringCloud提供了更多的服务治理方案。
图片服务器:这个也是非常重要的环节,目前我们测试系统都有15个G的图片了!!!!线上估计会是以T计算的,觉得是需要独立的图片服务器的。
集群、负载、分布式:前面的分库分表、服务化、图片服务器都是为集群、负载、分布式做准备的,集群需要基于CDN做动态切换,服务器用Nginx做复杂,业务层用SpringCloud做分布式服务。
下面整理下整个架构吧:
展示层/控制层:SpringBoot,在spring中做读写分离
持久层:mybatis
数据库:MySQL/Oracle,支持主从复制、读写分离、多机备份、支持分库分表
缓存机制:redis,CDN图片缓存,也是支持热备份、高并发的
静态化机制:系统页面做静态化,提高访问速度
图片服务器:购买专用服务器,用nginx做负载
搜索引擎: 分布式ElasticSearch
服务器:Linux
中间件:tomcat、nginx,还有其他N多的支持集群部署的安装间接软件,就不一一列举了
图片服务器:通过nginx做的,SFTP方式统一上传
集群方案:多机tomcat,seesion统一管理,图片统一管理。这些需要一套解决方案。
服务器要求:linux/windows,4G内存,空间20G以上
架构图:
最后对于JAVA领域商城的开发,其实在PHP、.NET语言中,已经有非常多的成熟同类产品了,比如shopnc、ecshop等等等,但是PHP的逻辑都是写在前台文件中,这个就跟JAVA中的逻辑都是写在了JSP中一样,这样虽然便于开发,但是后期二次开发、维护都不方便。另外.NET语言大家都是知道的,它是不开源的,这个我觉得不敢用的,哪天你遇到致命bug了,没法从底层排查,这也是为什么银行、金融、电商很多行业不用这个语言原因了。
另外对于JAVA开发方面,其实如果有好的架构,JAVA程序员只写逻辑,前端只写前端,数据库DBA只关注DBA,这样的话,开发起来会非常的方便。我们团队目前也是花了很长时间,也借鉴了很多成熟的框架,研发了一套适合商城开发的一套架构。等到以后有机会可以开源出来给大家。
网址:www.hulianrongyun.com,本人QQ:4407509,有问题可以联系本人
分享到:
相关推荐
lilishop是B2B2C多用户商城系统开发的JAVA。基于当前流行技术组合的前后端分离商城系统:后后端使用SpringBoot、MybatisPlus、SpringSecurity、redis、ES、mysql、mongodb等主流技术,前后端使用…
总而言之,Java B2B2C 商城系统是一个包含众多技术模块的复杂工程,涉及前端与后端开发、数据库设计、安全性、用户体验等多个领域。开发者需要深入了解并熟练掌握这些技术,才能构建出稳定、高效且用户体验优秀的...
《wemalls Java 电商微商城B2B2C多商户商城系统——深入解析与二次开发》 在当今数字化时代,电商平台已经成为商业运作的重要组成部分。本文将深入探讨wemalls Java 电商微商城B2B2C多商户商城系统,这是一款功能...
JavaShop B2B2C多用户商城源码:PC+H5+小程序+APP,基于Spring Boot微服务架构,企业级解决方案,Java版多用户B2B2C商城源码合集:PC+H5+小程序+APP端,企业级Spring Boot框架,前后端分离微服务架构系统。,javaShop ...
本项目以"docker一键部署"为主题,结合了B2B2C多用户商城系统——lilishop的JAVA实现,充分利用了当前流行的技术栈,实现了前后端分离的商城架构。 首先,我们来深入理解“B2B2C”模式。B2B2C(Business-to-...
SHOPNC B2B2C多用户商城是一款专为电商企业设计的综合性电商平台系统,它集成了B2B(Business to Business)和B2C(Business to Consumer)两种商业模式,同时也支持C2C(Consumer to Consumer)模式,为商家提供了...
Java多用户B2B2C商城源码:PC+H5+小程序+APP全覆盖,支持SpringBoot与Vue、UniApp联合开发,Java多用户B2B2C商城及小程序源码全解决方案:支持PC、H5、小程序及APP端集成开发,java多用户商城源码,多用户b2b2c商城...
docker一键部署。lilishop是B2B2C多用户商城系统开发的JAVA
3. **MVC(Model-View-Controller)架构**:这是B2B2C商城源码可能采用的设计模式,它将业务逻辑、数据和用户界面分离,便于管理和维护。 4. **前端技术**:HTML、CSS和JavaScript是构建用户界面的关键,可能还需要...
Java B2B2C源码交易商城是一种为商家提供服务的多端可开发平台。它支持Android和iOS操作系统,同时也能够支持移动端网页以及PC端网页的浏览。这意味着无论用户使用何种设备,都能够顺畅地访问并使用该商城系统。用户...
DSMall商城系统是一套完善的B2B2C(多店铺商城)解决方案。系统使用国内优秀开源框架THinkPHP,H5端采用vue.js,前后端分离,基于PHP+MySQL开发,采用B/S架构,依据6年电商经验打造出的一套开源的B2B2C电子商务系统。
在此背景下,Java B2B2C源码交易商城项目,针对Android和iOS操作系统,同时提供移动端网页和PC端网页,具有了可二次开发的特性,成为了一种新兴的电子商务解决方案。 Java是一种广泛使用的通用编程语言,以其跨平台...
JAVA版多用户B2B2C商城源码:基于Spring Boot的完全前后端分离微服务架构解决方案,基于Spring Boot和Vue组件化的JavaShop 7.1.15多用户B2B2C商城源码(PC+H5+APP),系统支持佣金结算与电商运营模式全功能解析版。...
《基于Java的多用户B2B2C商城系统解析》 在信息技术日新月异的今天,电子商务系统已经成为商业运营的重要组成部分。Java作为一款广泛应用的编程语言,以其强大的跨平台性和稳定性,常被用于构建复杂的Web应用,如...
Java版多用户B2B2C商城源码,企业级Spring Boot框架,RESTful规范,前后端分离架构,含PC+H5+小程序+APP源码,SpringCloud微服务系统,Java版多用户B2B2C商城源码合集:PC端+H5+小程序+APP,企业级Spring Boot框架,...
DSmall多商户B2B2C开源商城源码是一个针对电子商务领域的高级系统,适用于构建具有多商家功能的在线交易平台。这个版本是v6.2.1,表明它经过了多次迭代和优化,以提供更好的性能和用户体验。让我们深入探讨这个开源...
Java版多用户B2B2C商城源码集PC+H5+小程序+APP于一体,Spring Boot企业级构建,前后端分离与微服务架构的优势体验,javaShop JAVA版多用户B2B2C商城源码(PC+H5+小程序+APP) 友情提示:此源码需要有java基础的开发...
创创猫B2B2C多商户商城是一款功能全面的电商平台系统,其开发语言为Java,采用Spring Boot框架。该系统的显著特点是其前端使用uni-app进行开发,这种技术允许前端界面能够一次编写,多端部署。具体而言,这意味着...
iWebShop是一款基于PHP语言及MYSQL数据库开发的B2B2C多用户商城系统,支持自营和多商家入驻、集成微信商城、手机商城、移动端APP商城、三级分销、电商直播、微信小程序,它可以承载大数据量且性能优良,代码支持二次...