如何用分库分表的9种分布式主键ID生成方案?深入分析

2021/7/1 6:24:08

本文主要是介绍如何用分库分表的9种分布式主键ID生成方案?深入分析,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

# **架构原则:“4 要 1 不要”** 如果你是一个架构师,你首先要勾勒出一个轮廓,想一想如何构建一个超大流量**并发读写、高性能,以及高可用的系统**,这其中有哪些要素需要考虑? 我把这些要素总结为“4 要 1 不要”: * **数据要尽量少** * **请求数要尽量少** * **路径要尽量短** * **依赖要尽量少** * **不要有单点** ![超火GitHub秒杀系统文档:从基础架构到系统建设,标星55K+Star](http://www.www.zyiz.net/i/li/?n=2&i=images/20210630/1625065463280360.jpg) # **“秒杀系统”实体机单机部署** ![超火GitHub秒杀系统文档:从基础架构到系统建设,标星55K+Star](http://www.www.zyiz.net/i/li/?n=2&i=images/20210630/1625065464793512.jpg) ![超火GitHub秒杀系统文档:从基础架构到系统建设,标星55K+Star](http://www.www.zyiz.net/i/li/?n=2&i=images/20210630/1625065465879158.jpg) # **在设计秒杀系统中:如何有针对性的处理好动态热点数据和静态热点数据** “热点数据”比较好理解,那就是用户的热点请求对应的数据。而热点数据又分为“**静态热点数据**”和“**动态热点数**据” ![超火GitHub秒杀系统文档:从基础架构到系统建设,标星55K+Star](http://www.www.zyiz.net/i/li/?n=2&i=images/20210630/1625065482953837.jpg) # **高可用系统建设** **1\. 架构阶段**:架构阶段主要考虑系统的可扩展性和容错性,要避免系统出现单点问题。例如多机房单元化部署,即使某个城市的某个机房出现整体故障,仍然不会影响整体网站的运转。 **2\. 编码阶段**:编码最重要的是保证代码的健壮性,例如涉及远程调用问题时,要设置合理的超时退出机制,防止被其他系统拖垮,也要对调用的返回结果集有预期,防止返回的结果超出程序处理范围,最常见的做法就是对错误异常进行捕获,对无法预料的错误要有默认处理结果。 **3\. 测试阶段**:测试主要是保证测试用例的覆盖度,保证最坏情况发生时,我们也有相应的处理流程。 **4\. 发布阶段**:发布时也有一些地方需要注意,因为发布时最容易出现错误,因此要有紧急的回滚机制。 **5\. 运行阶段**:运行时是系统的常态,系统大部分时间都会处于运行态,运行态最重要的是对系统的监控要准确及时,发现问题能够准确报警并且报警数据要准确详细,以便于排查问题。 **6\. 故障发生**:故障发生时首先最重要的就是及时止损,例如由于程序问题导致商品价格错误,那就要及时下架商品或者关闭购买链接,防止造成重大资产损失。然后就是要能够及时恢复服务,并定位原因解决问题。 ![超火GitHub秒杀系统文档:从基础架构到系统建设,标星55K+Star](http://www.www.zyiz.net/i/li/?n=2&i=images/20210630/1625065483370623.jpg) # **开关系统管理** ![超火GitHub秒杀系统文档:从基础架构到系统建设,标星55K+Star](http://www.www.zyiz.net/i/li/?n=2&i=images/20210630/1625065484553564.jpg) # **限流系统** ![超火GitHub秒杀系统文档:从基础架构到系统建设,标星55K+Star](http://www.www.zyiz.net/i/li/?n=2&i=images/20210630/1625065485363667.jpg) # **大纲目录** ![超火GitHub秒杀系统文档:从基础架构到系统建设,标星55K+Star](http://www.www.zyiz.net/i/li/?n=2&i=images/20210630/1625065485652006.jpg) # # 最后 我想问下大家当初选择做程序员的初衷是什么?有思考过这个问题吗?高薪?热爱? 既然入了这行就应该知道,这个行业是靠本事吃饭的,你想要拿高薪没有问题,请好好磨练自己的技术,不要抱怨。有的人通过培训可以让自己成长,有些人可以通过自律强大的自学能力成长,如果你两者都不占,还怎么拿高薪? 架构师是很多程序员的职业目标,一个好的架构师是不愁所谓的35岁高龄门槛的,到了那个时候,照样大把的企业挖他。为什么很多人想进阿里巴巴,无非不是福利待遇好以及优质的人脉资源,这对个人职业发展是有非常大帮助的。 如果你也想成为一名好的架构师,那或许这份**[Java核心架构笔记](https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB)**你需要阅读阅读,希望能够对你的职业发展有所帮助。 **中高级开发必知必会:** ![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210630/1625065487238992.jpg)

这篇关于如何用分库分表的9种分布式主键ID生成方案?深入分析的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程