近公司要开发商城,让我多方咨询,后看了很多,要不就是代码、表字段注释不全,要不就是bug多,要么就是文档缺少,后决定自己开发一套商城。
下面是开发的一些心得体会,权且记录下来,给自己做个记录把。
之**直都是在从事电商相关和互,这个是有非常大的问题的。一般我们的做法是在数据库层做的。通过中间件来做处理。
数据库选择:好还是myslq
1、轻量,2、开源(阿里的alisql就是MySQL改个名字),3、功能能满足电商需求
近公司要开发商城,让我多方咨询,后看了很多,要不就是代码、表字段注释不全,要不就是bug多,要么就是文档缺少,后决定自己开发一套商城。
下面是开发的一些心得体会,权且记录下来,给自己做个记录把。
之**直都是在从事电商相关和互,这个是有非常大的问题的。一般我们的做法是在数据库层做的。通过中间件来做处理。
数据库选择:好还是myslq
1、轻量,2、开源(阿里的alisql就是MySQL改个名字),3、功能能满足电商需求
搜索:选择lucene较好,原因是他封装的较好
权限:对于电商来说不应该设计的过于复杂,我认为主要就两张表就够了,一个是角色Role表,一个是资源Resources表,然后用户和角色通过中间表关联下就OK了,角色里面有资源,很简单的逻辑,security、shiro这两款的权限框架都能做出这个需求。
缓存:目前使用Redis,我看到有的公司使用的是memcache,这个10年前,就这样,功能非常的简陋不说,主要一个问题是会有死缓存,就是缓存怎么也清空不了,这个你想想就知道多悲剧了,商家修改了价格,怎么也改不了,后只能关闭机器重启。还有的公司使用的还是hibernate提供的ehcache,这个大家自行了解即可,关键是他做集群有问题,搞电商不可能是单机的,刚上线至少是2台服务器。
静态化:目前做静态化,可以实现全站90%都是静态页面,数据从集群redis缓存中读取。
服务化:目前使用SpringCloud,主要是SpringCloud提供非常多的基于RPC的服务治理:服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。
近公司要开发商城,让我多方咨询,后看了很多,要不就是代码、表字段注释不全,要不就是bug多,要么就是文档缺少,后决定自己开发一套商城。
下面是开发的一些心得体会,权且记录下来,给自己做个记录把。
之**直都是在从事电商相关和互,这个是有非常大的问题的。一般我们的做法是在数据库层做的。通过中间件来做处理。
数据库选择:好还是myslq
1、轻量,2、开源(阿里的alisql就是MySQL改个名字),3、功能能满足电商需求
搜索:选择lucene较好,原因是他封装的较好
权限:对于电商来说不应该设计的过于复杂,我认为主要就两张表就够了,一个是角色Role表,一个是资源Resources表,然后用户和角色通过中间表关联下就OK了,角色里面有资源,很简单的逻辑,security、shiro这两款的权限框架都能做出这个需求。
缓存:目前使用Redis,我看到有的公司使用的是memcache,这个10年前,就这样,功能非常的简陋不说,主要一个问题是会有死缓存,就是缓存怎么也清空不了,这个你想想就知道多悲剧了,商家修改了价格,怎么也改不了,后只能关闭机器重启。还有的公司使用的还是hibernate提供的ehcache,这个大家自行了解即可,关键是他做集群有问题,搞电商不可能是单机的,刚上线至少是2台服务器。
静态化:目前做静态化,可以实现全站90%都是静态页面,数据从集群redis缓存中读取。
服务化:目前使用SpringCloud,主要是SpringCloud提供非常多的基于RPC的服务治理:服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。
图片服务器:这个也是非常重要的环节,目前我们测试系统都有5个G的图片了!!!!线上估计会是以T计算的,觉得是需要独立的图片服务器的。
集群、负载、分布式:前面的分库分表、服务化、图片服务器都是为集群、负载、分布式做准备的,集群需要基于CDN做动态切换,服务器用Nginx做复杂,业务层用SpringCloud做分布式服务。
下面整理下整个架构吧:
展示层/控制层:SpringMVC,SpringBoot做配置。
持久层:mybatis
数据库:MySQL/Oracle,支持主从复制
图片服务器:这个也是非常重要的环节,目前我们测试系统都有5个G的图片了!!!!线上估计会是以T计算的,觉得是需要独立的图片服务器的。
集群、负载、分布式:前面的分库分表、服务化、图片服务器都是为集群、负载、分布式做准备的,集群需要基于CDN做动态切换,服务器用Nginx做复杂,业务层用SpringCloud做分布式服务。
下面整理下整个架构吧:
展示层/控制层:SpringMVC,SpringBoot做配置。
持久层:mybatis
数据库:MySQL/Oracle,支持主从复制
搜索:选择lucene较好,原因是他封装的较好
权限:对于电商来说不应该设计的过于复杂,我认为主要就两张表就够
近公司要开发商城,让我多方咨询,后看了很多,要不就是代码、表字段注释不全,要不就是bug多,要么就是文档缺少,后决定自己开发一套商城。
下面是开发的一些心得体会,权且记录下来,给自己做个记录把。
之**直都是在从事电商相关和互,这个是有非常大的问题的。一般我们的做法是在数据库层做的。通过中间件来做处理。
数据库选择:好还是myslq
1、轻量,2、开源(阿里的alisql就是MySQL改个名字),3、功能能满足电商需求
搜索:选择lucene较好,原因是他封装的较好
权限:对于电商来说不应该设计的过于复杂,我认为主要就两张表就够了,一个是角色Role表,一个是资源Resources表,然后用户和角色通过中间表关联下就OK了,角色里面有资源,很简单的逻辑,security、shiro这两款的权限框架都能做出这个需求。
缓存:目前使用Redis,我看到有的公司使用的是memcache,这个10年前,就这样,功能非常的简陋不说,主要一个问题是会有死缓存,就是缓存怎么也清空不了,这个你想想就知道多悲剧了,商家修改了价格,怎么也改不了,后只能关闭机器重启。还有的公司使用的还是hibernate提供的ehcache,这个大家自行了解即可,关键是他做集群有问题,搞电商不可能是单机的,刚上线至少是2台服务器。
静态化:目前做静态化,可以实现全站90%都是静态页面,数据从集群redis缓存中读取。
服务化:目前使用SpringCloud,主要是SpringCloud提供非常多的基于RPC的服务治理:服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。
图片服务器:这个也是非常重要的环节,目前我们测试系统都有5个G的图片了!!!!线上估计会是以T计算的,觉得是需要独立的图片服务器的。
集群、负载、分布式:前面的分库分表、服务化、图片服务器都是为集群、负载、分布式做准备的,集群需要基于CDN做动态切换,服务器用Nginx做复杂,业务层用SpringCloud做分布式服务。
下面整理下整个架构吧:
展示层/控制层:SpringMVC,SpringBoot做配置。
持久层:mybatis
数据库:MySQL/Oracle,支持主从复制了,一个是角色Role表,一个是资源Resources表,然后用户和角色通过中间表关联下就OK了,角色里面有资源,很简单的逻辑,security、shiro这两款的权限框架都能做出这个需求。
缓存:目前使用Redis,我看到有的公司使用的是memcache,这个10年前,就这样,功能非常的简陋不说,主要一个问题是会有死缓存,就是缓存怎么也清空不了,这个你想想就知道多悲剧了,商家修改了价格,怎么也改不了,后只能关闭机器重启。还有的公司使用的还是hibernate提供的ehcache,这个大家自行了解即可,关键是他做集群有问题,搞电商不可能是单机的,刚上线至少是2台服务器。
静态化:目前做静态化,可以实现全站90%都是静态页面,数据从集群redis缓存中读取。
服务化:目前使用SpringCloud,主要是SpringCloud提供非常多的基于RPC的服务治理:服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。
图片服务器:这个也是非常重要的环节,目前我们测试系统都有5个G的图片了!!!!线上估计会是以T计算的,觉得是需要独立的图片服务器的。
近公司要开发商城,让我多方咨询,后看了很多,要不就是代码、表字段注释不全,要不就是bug多,要么就是文档缺少,后决定自己开发一套商城。
下面是开发的一些心得体会,权且记录下来,给自己做个记录把。
之**直都是在从事电商相关和互,这个是有非常大的问题的。一般我们的做法是在数据库层做的。通过中间件来做处理。
数据库选择:好还是myslq
1、轻量,2、开源(阿里的alisql就是MySQL改个名字),3、功能能满足电商需求
搜索:选择lucene较好,原因是他封装的较好
权限:对于电商来说不应该设计的过于复杂,我认为主要就两张表就够了,一个是角色Role表,一个是资源Resources表,然后用户和角色通过中间表关联下就OK了,角色里面有资源,很简单的逻辑,security、shiro这两款的权限框架都能做出这个需求。
缓存:目前使用Redis,我看到有的公司使用的是memcache,这个10年前,就这样,功能非常的简陋不说,主要一个问题是会有死缓存,就是缓存怎么也清空不了,这个你想想就知道多悲剧了,商家修改了价格,怎么也改不了,后只能关闭机器重启。还有的公司使用的还是hibernate提供的ehcache,这个大家自行了解即可,关键是他做集群有问题,搞电商不可能是单机的,刚上线至少是2台服务器。
静态化:目前做静态化,可以实现全站90%都是静态页面,数式做准备的,集群需要基于CDN做动态切换,服务器用Nginx做复杂,业务层用SpringCloud做分布式服务。
下面整理下整个架构吧:
展示层/控制层:SpringMVC,SpringBoot做配置。
持久层:mybatis
数据库:MySQL/Oracle,支持主从复制
下面整理下整个架构吧:
展示层/控制层:SpringMVC,SpringBoot做配置。
持久层:mybatis
数据库:MySQL/Oracle,支持主从复制
且记录下来,给自己做个记录把。
且记录下来,给自己做个记录把。
之**直都是在从事电商相关和互联网金融开发,处理过亿级数据量,所以被目前这家公司看重。
由于Java是开源的,近几年Hadoop等开源产品越来越成熟,而且是基于Java的,所以终选择Java后后台开发语言,现在前端是自己的前端工程师写的JS,后期准备改成前端是PHP,中间是Go语言,后台服务器是JAVA,因为PHP写前端很厉害,不过这个也是后期了。
控制层:这几年SpringMvc发展的非常火,而且开发效率比较高,struts系列已经完全没落了,所以现阶段选择SrpingMVC。用SpringBoot来做配置管理。
视图层:网上已经有非常多的测试过JSP、freemarkder、velocity等,结果性能:velocity>freemarker>jsp,开发速度:velocity>freemarker>jsp
数据库设计:
1、关键的一个是不能有外键强关
且记录下来,给自己做个记录把。
之**直都是在从事电商相关和互联网金融开发,处理过亿级数据量,所以被目前这家公司看重。
由于Java是开源的,近几年Hadoop等开源产品越来越成熟,而且是基于Java的,所以终选择Java后后台开发语言,现在前端是自己的前端工程师写的JS,后期准备改成前端是PHP,中间是Go语言,后台服务器是JAVA,因为PHP写前端很厉害,不过这个也是后期了。
控制层:这几年SpringMvc发展的非常火,而且开发效率比较高,struts系列已经完全没落了,所以现阶段选择SrpingMVC。用SpringBoot来做配置管理。
视图层:网上已经有非常多的测试过JSP、freemarkder、velocity等,结果性能:velocity>freemarker>jsp,开发速度:velocity>freemarker>jsp
数据库设计:
1、关键的一个是不能有外键强关
之**直都是在从事电商相关和互联网金融开发,处理过亿级数据量,所以被目前这家公司看重。
由于Java是开源的,近几年Hadoop等开源产品越来越成熟,而且是基于Java的,所以终选择Java后后台开发语言,现在前端是自己的前端工程师写的JS,后期准备改成前端是PHP,中间是Go语言,后台服务器是JAVA,因为PHP写前端很厉害,不过这个也是后期了。
控制层:这几年SpringMvc发展的非常火,而且开发效率比较高,struts系列已经完全没落了,所以现阶段选择SrpingMVC。用SpringBoot来做配置管理。
视图层:网上已经有非常多的测试过JSP、freemarkder、velocity等,结果性且记录下来,给自己做个记录把。
之**直都是在从事电商相关和互联网金融开发,处理过亿级数据量,所以被目前这家公司看重。
由于Java是开源的,近几年Hadoop等开源产品越来越成熟,而且是基于Java的,所以终选择Java后后台开发语言,现在前端是自己的前端工程师写的JS,后期准备改成前端是PHP,中间是Go语言,后台服务器是JAVA,因为PHP写前端很厉害,不过这个也是后期了。
控制层:这几年SpringMvc发展的非常火,而且开发效率比较高,struts系列已经完全没落了,所以现阶段选择SrpingMVC。用SpringBoot来做配置管理。
视图层:网上已经有非常多的测试过JSP、freemarkder、velocity等,结果性能:velocity>freemarker>jsp,开发速度:velocity>freemarker>jsp
数据库设计:
1、关键的一个是不能有外键强关能:velocity>freemarker>jsp,开发且记录下来,给自己做个记录把。
之**直都是在从事电商相关和互联网金融开发,处理过亿级数据量,所以被目前这家公司看重。
由于Java是开源的,近几年Hadoop等开源产品越来越成熟,而且是基于Java的,所以终选择Java后后台开发语言,现在前端是自己的前端工程师写的JS,后期准备改成前端是PHP,中间是Go语言,后台服务器是JAVA,因为PHP写前端很厉害,不过这个也是后期了。
控制层:这几年SpringMvc发展的非常火,而且开发效率比较高,struts系列已经完全没落了,所以现阶段选择SrpingMVC。用SpringBoot来做配置管理。
视图层:网上已经有非常多的测试过JSP、freemarkder、velocity等,结果性能:velocity>freemarker>jsp,开发速度:velocity>freemarker>jsp
数据库设计:
1、关键的一个是不能有外键强关速度:velocity>freemarker>jsp
且记录下来,给自己做个记录把。
之**直都是在从事电商相关和互联网金融开发,处理过亿级数据量,所以被目前这家公司看重。
由于Java是开源的,近几年Hadoop等开源产品越来越成熟,而且是基于Java的,所以终选择Java后后台开发语言,现在前端是自己的前端工程师写的JS,后期准备改成前端是PHP,中间是Go语言,后台服务器是JAVA,因为PHP写前端很厉害,不过这个也是后期了。
控制层:这几年SpringMvc发展的非常火,而且开发效率比较高,struts系列已经完全没落了,所以现阶段选择SrpingMVC。用SpringBoot来做配置管理。
视图层:网上已经有非常多的测试过JSP、freemarkder、velocity等,结果性能:velocity>freemarker>jsp,开发速度:velocity>freemarker>jsp
数据库设计:
1、关键的一个是不能有外键强关
且记录下来,给自己做个记录把。
之**直都是在从事电商相关和互联网金融开发,处理过亿级数据量,所以被目前这家公司看重。
由于Java是开源的,近几年Hadoop等开源产品越来越成熟,而且是基于Java的,所以终选择Java后后台开发语言,现在前端是自己的前端工程师写的JS,后期准备改成前端是PHP,中间是Go语言,后台服务器是JAVA,因为PHP写前端很厉害,不过这个也是后期了。
控制层:这几年SpringMvc发展的非常火,而且开发效率比较高,struts系列已经完全没落了,所以现阶段选择SrpingMVC。用SpringBoot来做配置管理。
视图层:网上已经有非常多的测试过JSP、freemarkder、velocity等,结果性能:velocity>freemarker>jsp,开发速度:velocity>freemarker>jsp
数据库设计:
1、关键的一个是不能有外键强关
数据库设计:
1、关键的一个是不能有外键强关且记录下来,给自己做个记录把。
之**直都是在从事电商相关和互联网金融开发,处理过亿级数据量,所以被目前这家公司看重。
由于Java是开源的,近几年Hadoop等开源产品越来越成熟,而且是基于Java的,所以终选择Java后后台开发语言,现在前端是自己的前端工程师写的JS,后期准备改成前端是PHP,中间是Go语言,后台服务器是JAVA,因为PHP写前端很厉害,不过这个也是后期了。
控制层:这几年SpringMvc发展的非常火,而且开发效率比较高,struts系列已经完全没落了,所以现阶段选择SrpingMVC。用SpringBoot来做配置管理。
视图层:网上已经有非常多的测试过JSP、freemarkder、velocity等,结果性能:velocity>freemarker>jsp,开发速度:velocity>freemarker>jsp
数据库设计:
1、关键的一个是不能有外键强关且记录下来,给自己做个记录把。
之**直都是在从事电商相关和互联网金融开发,处理过亿级数据量,所以被目前这家公司看重。
由于Java是开源的,近几年Hadoop等开源产品越来越成熟,而且是基于Java的,所以终选择Java后后台开发语言,现在前端是自己的前端工程师写的JS,后期准备改成前端是PHP,中间是Go语言,后台服务器是JAVA,因为PHP写前端很厉害,不过这个也是后期了。
控制层:这几年SpringMvc发展的非常火,而且开发效率比较高,struts系列已经完全没落了,所以现阶段选择SrpingMVC。用SpringBoot来做配置管理。
视图层:网上已经有非常多的测试过JSP、freemarkder、velocity等,结果性能:velocity>freemarker>jsp,开发速度:velocity>freemarker>jsp
数据库设计:
1、关键的一个是不能有外键强关且记录下来,给自己做个记录把。
之**直都是在从事电商相关和互联网金融开发,处理过亿级数据量,所以被目前这家公司看重。
由于Java是开源的,近几年Hadoop等开源产品越来越成熟,而且是基于Java的,所以终选择Java后后台开发语言,现在前端是自己的前端工程师写的JS,后期准备改成前端是PHP,中间是Go语言,后台服务器是JAVA,因为PHP写前端很厉害,不过这个也是后期了。
控制层:这几年SpringMvc发展的非常火,而且开发效率比较高,struts系列已经完全没落了,所以现阶段选择SrpingMVC。用SpringBoot来做配置管理。
视图层:网上已经有非常多的测试过JSP、freemarkder、velocity等,结果性能:velocity>freemarker>jsp,开发速度:velocity>freemarker>jsp
数据库设计:
1、关键的一个是不能有外键强关
B2B2C商城哪家好
Java B2B2C SpringBoot SpringCloud商城
java b2b2c多用户商城
java b2b2c多用户商城源码
java b2b2c开源商城系统源码
java btbtc商城
java 多用户商城系统源码仿京东淘宝
java 商城 类似淘宝 京东 当当网
java 商城系统架构之*三篇——集群架构搭建
java 商城系统架构之*四篇:构建高并发高可用的电商平台架构实践
java多用户商城系统架构篇——分库分表
java多用户商城系统架构之*二篇
java多用户商城系统架构之篇——总的介绍
JAVA多用户商城系统源码
java多用户商城系统支持springcloud
java SpringBoot 多用户商城系统
java SpringCloud 多用户商城系统
php还是java做商城
商城用Java还是PHP
java springboot b2b2c shop 多用户商城系统源码-SpringCloud架构设计
java springboot b2b2c shop多用户商城系统源码-高可用(Spring Cloud Config)
B2B2C 电商平台 多用户java 商城 开源电商平台
基于java的多用户商城(b2b2c)
java多用户商城B2B2C 源码 微商城+小程序代码+app
之前写了很多关于spring cloud的文章,今天我们对OAuth2.0的整合方式做一下笔记,首先我从网上找了一些关于OAuth2.0的一些基础知识点,帮助大家回顾一下知识点:
一、oauth中的角色
client:调用资源服务器API的应用
Oauth 2.0 Provider:包括Authorization Server和Resource Server
(1)Authorization Server:认证服务器,进行认证和授权
(2)Resource Server:资源服务器,保护受保护的资源
user:资源的拥有者
二、下面详细介绍一下Oauth 2.0 Provider
Authorization Server:
(1)AuthorizationEndpoint:进行授权的服务,Default URL: /oauth/authorize
(2)TokenEndpoint:获取token的服务,Default URL: /oauth/token
Resource Server:
OAuth2AuthenticationProcessingFilter:给带有访问令牌的请求加载认证
三、下面再来详细介绍一下Authorization Server:
一般情况下,创建两个配置类,一个继承AuthorizationServerConfigurerAdapter,一个继承WebSecurityConfigurerAdapter,再去复写里面的方法。
主要出现的两种注解:
1、@EnableAuthorizationServer:声明一个认证服务器,当用此注解后,应用启动后将自动生成几个Endpoint:(注:其实实现一个认证服务器就是这么简单,加一个注解就搞定,当然真正用到生产环境还是要进行一些配置和复写工作的。)
/oauth/authorize:验证
/oauth/token:获取token
/oauth/confirm_access:用户授权
/oauth/error:认证失败
/oauth/check_token:资源服务器用来校验token
/oauth/token_key:如果jwt模式则可以用此来从认证服务器获取公钥
以上这些endpoint都在源码里的endpoint包里面。
2、@Beans:需要实现AuthorizationServerConfigurer
AuthorizationServerConfigurer包含三种配置:
ClientDetailsServiceConfigurer:client客户端的信息配置,client信息包括:clientId、secret、scope、authorizedGrantTypes、authorities
(1)scope:表示权限范围,可选项,用户授权页面时进行选择
(2)authorizedGrantTypes:有四种授权方式
Authorization Code:用验证获取code,再用code去获取token(用的多的方式,也是安全的方式)
Implicit: 隐式授权模式
Client Credentials (用來取得 App Access Token)
Resource Owner Password Credentials
(3)authorities:授予client的权限
这里的具体实现有多种,in-memory、JdbcClientDetailsService、jwt等。
AuthorizationServerSecurityConfigurer:声明安全约束,哪些允许访问,哪些不允许访问
AuthorizationServerEndpointsConfigurer:声明授权和token的端点以及token的服务的一些配置信息,比如采用什么存储方式、token的有效期等
client的信息的读取:在ClientDetailsServiceConfigurer类里面进行配置,可以有in-memory、jdbc等多种读取方式。
jdbc需要调用JdbcClientDetailsService类,此类需要传入相应的DataSource.
下面再介绍一下如何管理token:
AuthorizationServerTokenServices接口:声明必要的关于token的操作
(1)当token创建后,保存起来,以便之后的接受访问令牌的资源可以引用它。
(2)访问令牌用来加载认证
接口的实现也有多种,DefaultTokenServices是其默认实现,他使用了默认的InMemoryTokenStore,不会持久化token;
token存储方式共有三种分别是:
(1)InMemoryTokenStore:存放内存中,不会持久化
(2)JdbcTokenStore:存放数据库中
(3)Jwt: json web token
授权类型:
可以通过AuthorizationServerEndpointsConfigurer来进行配置,默认情况下,支持除了密码外的所有授权类型。相关授权类型的一些类:
(1)authenticationManager:直接注入一个AuthenticationManager,自动开启密码授权类型
(2)userDetailsService:如果注入UserDetailsService,那么将会启动刷新token授权
java B2B2C springmvc mybatis多租户电子商城系统--Zuul的高可用
java B2B2C源码电子商务平台 ---搭建Eureka注册中心
java B2B2C Springcloud电子商务平台源码------Hystrix的缓存使用
java B2B2C源码电子商务平台 -----客户端负载均衡策略
java B2B2C Springcloud电子商城系统--------负载均衡(Load Balance)
java B2B2C源码电子商务平台
java B2B2C电子商务平台分析之十五-----EureKa服务注册与发现
java B2B2C电子商务平台分析之十四-----注册中心 Consul
java B2B2C Springcloud多租户电子商城系统- gateway(实现限流)
java B2B2C Springcloud多租户电子商城系统-
java版spring cloud+spring boot+redis多租户社交电子商务平台 (十一)docker部署spring cloud项目
Java B2B2C o2o多用户商城 springcloud架构-docker-feign-hystrix(六)
Java B2B2C多用户电子商务平台SpringCloud/Boot
(十)Java springcloud B2B2C o2o多用户商城 springcloud架构-SSO单点登录之OAuth2.0登录认证(1)
(十二)Java springcloud B2B2C o2o多用户商城 springcloud架构-- SSO单点登录之OAuth2.0 登出流程(3)
(十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)
(十一)Java springcloud B2B2C o2o多用户商城 springcloud架构- - SSO单点登录之OAuth2.0登录流程(2)
java springboot b2b2c shop 多用户商城系统源码-SpringCloud架构设计
java电商 商城 微商城 b2b2c多商户电商 二次开发源码PC版+wap版
java多用户B2B2C商城源码仿京东源码
springcloud微服务多用户商城系统java_源_B2B电商系统_B2C电商系统
近公司要开发商城,让我多方咨询,后看了很多,要不就是代码、表字段注释不全,要不就是bug多,要么就是文档缺少,后决定自己开发一套商城。
下面是开发的一些心得体会,权且记录下来,给自己做个记录把。
之**直都是在从事电商相关和互,这个是有非常大的问题的。一般我们的做法是在数据库层做的。通过中间件来做处理。
数据库选择:好还是myslq
1、轻量,2、开源(阿里的alisql就是MySQL改个名字),3、功能能满足电商需求
搜索:选择lucene较好,原因是他封装的较好
权限:对于电商来说不应该设计的过于复杂,我认为主要就两张表就够了,一个是角色Role表,一个是资源Resources表,然后用户和角色通过中间表关联下就OK了,角色里面有资源,很简单的逻辑,security、shiro这两款的权限框架都能做出这个需求。
缓存:目前使用Redis,我看到有的公司使用的是memcache,这个10年前,就这样,功能非常的简陋不说,主要一个问题是会有死缓存,就是缓存怎么也清空不了,这个你想想就知道多悲剧了,商家修改了价格,怎么也改不了,后只能关闭机器重启。还有的公司使用的还是hibernate提供的ehcache,这个大家自行了解即可,关键是他做集群有问题,搞电商不可能是单机的,刚上线至少是2台服务器。
静态化:目前做静态化,可以实现全站90%都是静态页面,数据从集群redis缓存中读取。
服务化:目前使用SpringCloud,主要是SpringCloud提供非常多的基于RPC的服务治理:服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。
图片服务器:这个也是非常重要的环节,目前我们测试系统都有5个G的图片了!!!!线上估计会是以T计算的,觉得是需要独立的图片服务器的。
集群、负载、分布式:前面的分库分表、服务化、图片服务器都是为集群、负载、分布式做准备的,集群需要基于CDN做动态切换,服务器用Nginx做复杂,业务层用SpringCloud做分布式服务。
下面整理下整个架构吧:
展示层/控制层:SpringMVC,SpringBoot做配置。
持久层:mybatis
数据库:MySQL/Oracle,支持主从复制
近公司要开发商城,让我多方咨询,后看了很多,要不就是代码、表字段注释不全,要不就是bug多,要么就是文档缺少,后决定自己开发一套商城。
下面是开发的一些心得体会,权且记录下来,给自己做个记录把。
之**直都是在从事电商相关和互,这个是有非常大的问题的。一般我们的做法是在数据库层做的。通过中间件来做处理。
数据库选择:好还是myslq
1、轻量,2、开源(阿里的alisql就是MySQL改个名字),3、功能能满足电商需求
搜索:选择lucene较好,原因是他封装的较好
权限:对于电商来说不应该设计的过于复杂,我认为主要就两张表就够了,一个是角色Role表,一个是资源Resources表,然后用户和角色通过中间表关联下就OK了,角色里面有资源,很简单的逻辑,security、shiro这两款的权限框架都能做出这个需求。
缓存:目前使用Redis,我看到有的公司使用的是memcache,这个10年前,就这样,功能非常的简陋不说,主要一个问题是会有死缓存,就是缓存怎么也清空不了,这个你想想就知道多悲剧了,商家修改了价格,怎么也改不了,后只能关闭机器重启。还有的公司使用的还是hibernate提供的ehcache,这个大家自行了解即可,关键是他做集群有问题,搞电商不可能是单机的,刚上线至少是2台服务器。
静态化:目前做静态化,可以实现全站90%都是静态页面,数据从集群redis缓存中读取。
服务化:目前使用SpringCloud,主要是SpringCloud提供非常多的基于RPC的服务治理:服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。
图片服务器:这个也是非常重要的环节,目前我们测试系统都有5个G的图片了!!!!线上估计会是以T计算的,觉得是需要独立的图片服务器的。
集群、负载、分布式:前面的分库分表、服务化、图片服务器都是为集群、负载、分布式做准备的,集群需要基于CDN做动态切换,服务器用Nginx做复杂,业务层用SpringCloud做分布式服务。
下面整理下整个架构吧:
展示层/控制层:SpringMVC,SpringBoot做配置。
持久层:mybatis
数据库:MySQL/Oracle,支持主从复制
近公司要开发商城,让我多方咨询,后看了很多,要不就是代码、表字段注释不全,要不就是bug多,要么就是文档缺少,后决定自己开发一套商城。
下面是开发的一些心得体会,权且记录下来,给自己做个记录把。
之**直都是在从事电商相关和互,这个是有非常大的问题的。一般我们的做法是在数据库层做的。通过中间件来做处理。
数据库选择:好还是myslq
1、轻量,2、开源(阿里的alisql就是MySQL改个名字),3、功能能满足电商需求
搜索:选择lucene较好,原因是他封装的较好
权限:对于电商来说不应该设计的过于复杂,我认为主要就两张表就够了,一个是角色Role表,一个是资源Resources表,然后用户和角色通过中间表关联下就OK了,角色里面有资源,很简单的逻辑,security、shiro这两款的权限框架都能做出这个需求。
缓存:目前使用Redis,我看到有的公司使用的是memcache,这个10年前,就这样,功能非常的简陋不说,主要一个问题是会有死缓存,就是缓存怎么也清空不了,这个你想想就知道多悲剧了,商家修改了价格,怎么也改不了,后只能关闭机器重启。还有的公司使用的还是hibernate提供的ehcache,这个大家自行了解即可,关键是他做集群有问题,搞电商不可能是单机的,刚上线至少是2台服务器。
静态化:目前做静态化,可以实现全站90%都是静态页面,数据从集群redis缓存中读取。
服务化:目前使用SpringCloud,主要是SpringCloud提供非常多的基于RPC的服务治理:服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。
图片服务器:这个也是非常重要的环节,目前我们测试系统都有5个G的图片了!!!!线上估计会是以T计算的,觉得是需要独立的图片服务器的。
集群、负载、分布式:前面的分库分表、服务化、图片服务器都是为集群、负载、分布式做准备的,集群需要基于CDN做动态切换,服务器用Nginx做复杂,业务层用SpringCloud做分布式服务。
下面整理下整个架构吧:
展示层/控制层:SpringMVC,SpringBoot做配置。
持久层:mybatis
数据库:MySQL/Oracle,支持主从复制