项目结构
可以不运行
二、common 1.common_utils:通用工具
JwtUtils:JWT工具类
MD5:
R:统一返回结果
ResponseUtil:
ResultCode:返回码
RedisConfig:redis配置
SwaggerConfig:Swagger配置
ForestException
GlobalExceptionHandler
MyMetaObjectHandler
3.spring_security:权限管理 三、infrastructure 1.api_gateway:网关配置 四、service 1.service_acl:后台用户管理 2.service_cms:轮播图 3.service_edu:课程管理 4.service_msm:短信 5.service_order:订单 6.service_oss:图片管理 7.service_statistics:数据统计 8.service_ucenter:前台登录注册,微信登录 9.service_vod:视频 运用技术 一、MybatisPlus 1.主键策略
AUTO:自动增长
ID_WORKER:mp自带策略,生成19位的值,数字类型使用
ID_WORKER_STR:mp自带策略,生成19位值,字符串类型使用
INPUT:需要自己输入
NONE:无策略
UUID:随机唯一值
snowflake是Twitter开源的分布式ID生成算法,结果是一个long型的ID。其核心思想是:**使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID),12bit作为毫秒内的流水号(意味着每个节点在每毫秒可以产生 4096 个 ID),最后还有一个符号位,永远是0。**具体实现的代码可以参看https://github.com/twitter/snowflake。雪花算法支持的TPS可以达到419万左右(2^22*1000)。
雪花算法在工程实现上有单机版本和分布式版本。单机版本如下,分布式版本可以参看美团leaf算法:https://github.com/Meituan-Dianping/Leaf
snowflake算法可以根据自身项目的需要进行一定的修改。比如估算未来的数据中心个数,每个数据中心的机器数以及统一毫秒可以能的并发数来调整在算法中所需要的bit数。
优点:
1)不依赖于数据库,灵活方便,且性能优于数据库。
2)ID按照时间在单机上是递增的。
缺点:
1)在单机上是递增的,但是由于涉及到分布式环境,每台机器上的时钟不可能完全同步,在算法上要解决时间回拨的问题。
(2)自动增长 (2)UUID每次生成随机唯一的值,排序不方便
(2)redis欢迎分享,转载请注明来源:内存溢出
评论列表(0条)