分布式ID生成方案
一、问题背景由于MySQL的单表数据量超过了千万级别,需要根据日期对数据库进行水平分表,分表后需要保证每个分表Id的全局唯一性,原来单表使用自增保证Id的有序性和唯一性,分表后需要生成全局唯一的Id。
所以接下来讨论一下分布式Id的生成方案,以及各种方案的优缺点等。
二、分布式ID生成方案2.1 UUID
A universally unique identifier (UUID) is a 128-bit label used for information in computer systems. The term globally unique identifier (GUID) is also used通用唯一识别码(英语:Universally Unique Identifier,缩写:UUID)是用于计算机体系中以识别信息的一个128位标识符。
根据标准方法生成,不依赖中央机构的注册和分配,UUID具有唯一性,这与其他大多数编号方案不同。重复UUID码概率接近零,可以忽略不计。通用唯一识别码-维基百科
2.1.1 UUID定义UUID是由一个16进制下的32位数所构成,故 ...
MySQL索引合并优化
一、问题背景之前遇到过一个关于MySQL索引的面试题,问题如下:
一张数据库表t其中有3列为a、b、c,分别为每一个列单独建立一个二级索引,那么现在有一个查询条件select * from t where a=? and b=? and c=?请问上述SQL语句,MySQL存储引擎在执行查询的时候,哪些索引将会被使用到?
当时一顿分析,还谈到了MySQL基于成本估算的优化,认为MySQL优化器先基于a、b、c三个列的索引区分度,选择索引区分度较高的索引进行扫描,根据第一个索引的扫描结果,如果第一个索引的扫描结果集高于一个固定量级,则继续选择第二个索引进行扫描,依次判断是否需要使用第三个索引,如果第一个索引的扫描结果集小于一个固定量级,则直接根据第一个索引的扫描结果集进行回表查询到列记录,再根据未使用到的2列进行过滤。
最后得出的结果是:a、b、c 3个索引都可能被使用到,具体使用到哪些索引,取决于3个索引的区分度以及表的数据量。
正确答案上面的问题应该用索引合并优化的原理来分析,上述的SQL的where条件满足了索引合并优化中的Index Merge Intersection Ac ...
IntelliJ IDEA快捷键使用
工具用得好,下班下得早Ctrl + Alt + T使用if,if/else, while, do/while, for, try/catch, try/finally, try/catch/finally, synchronized, Runnalbe 包围代码块
Alt + Enter代码快速补全、包引入、临时变量生成等
Ctrl + Alt + M将代码块提取到一个方法
Ctrl + Shift + 上下方向键上下移动单行代码和代码块
Class.new + (Alt + Enter)Class.new创建一个Class类型的匿名对象,Alt + Enter将匿名对象赋值给一个新建的变量
instance.try根据instance实例对象快速生成try/catch代码块
Linux服务器重启后mysqld.service未创建/var/run/mysqld
一、问题背景开发环境的数据库服务器重启后,启动MySQl服务报错,错误如下:
[ERROR] /usr/sbin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 2 - No such file or directory)
[ERROR] Can't start server: can't create PID file: No such file or directory
之前看到上面错误日志都是手动创建/var/run/mysqld目录,然后将目录的属主修改为mysql用户,如下:
mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld
上面方式,每次服务器重启后都要重新执行,所以分析一下问题原因,探索一种永久的解决方案。
MySQL版本信息m ...
怎么用“福格行为模型”战胜拖延症?
说明:本文转载自 怎么用“福格行为模型”战胜拖延症?
去年年底,我们有一期节目是讨论新年该立一个什么样的flag才人间值得,当时我给你的提议是:立一个不光自己变好,也要让别人从中受益的flag。
老实说,设定这样一个目标并不难,难的是如何完成它。我看到一个说法很有意思,说当代人立flag的现状是“今年立的flag,就是完成去年承诺的、前年没做到的、大前年立下的flag”,你说说,这让人情何以堪啊。于是,有人干脆就不敢定目标了,怕打脸。
到底是什么阻碍我们完成这些目标呢?除了客观原因之外,我想最大的拦路虎就是拖延症了。我身边很多朋友都饱受拖延症的困扰,包括我自己。明明是重要的事,也制定了计划,却总是无法按时完成。更可怕的是,打脸多了,自我评价变低,还容易掉入负面情绪的旋涡。
要怎么打败拖延症呢?我最近在36氪的神译局栏目里看到一篇文章,很受启发。文章来自一个国外专门研究拖延症的网站,叫Deprocrastination,标题是《如何用福格行为模型治疗拖延症》(How to stop procrastinating by using the Fogg Behavior Model)。读 ...
RocketMQ中ConsumeFromWhere详解
一、ConsumeFromWhereRocketMQ的Consumer有一个consumeFromWhere属性,表示Consumer启动后将从哪个位置开始消费消息,该属性取值有以下情况:
/**
* Consuming point on consumer booting. There are three consuming points:
* CONSUME_FROM_LAST_OFFSET: consumer clients pick up where it stopped previously. If it were a newly booting up consumer client, according aging of the consumer group, there are two cases:
* if the consumer group is created so recently that the earliest message being subscribed has yet expired, which means the consumer grou ...
RocketMQ中的Consumer及ConsumerGroup详解
一、基本概念消息消费者(Consumer)负责消费消息,一般是后台系统负责异步消费。一个消息消费者会从Broker服务器拉取消息、并将其提供给应用程序。从用户应用的角度而言提供了两种消费形式:拉取式消费、推动式消费。
消费者组(Consumer Group)同一类Consumer的集合,这类Consumer通常消费同一类消息且消费逻辑一致。消费者组使得在消息消费方面,实现负载均衡和容错的目标变得非常容易。要注意的是,消费者组的消费者实例必须订阅完全相同的Topic。RocketMQ 支持两种消息模式:集群消费(Clustering)和广播消费(Broadcasting)。
集群消费(Clustering)集群消费模式下,相同Consumer Group的每个Consumer实例平均分摊消息。
广播消费(Broadcasting)广播消费模式下,相同Consumer Group的每个Consumer实例都接收全量的消息。
二、订阅关系一致订阅关系一致指的是同一个消费者Group ID下所有Consumer实例所订阅的Topic、Tag必须完全一致。如果订阅关系不一致,消息消费的逻辑就会混 ...
Nacos简介及使用
《Nacos简介及使用》
《邓小平时代》
《邓小平时代》—— 这是世界上第一本全面研究和记述邓小平政治生涯的著作
不知不觉中发现自己对历史的兴趣越来越浓厚,不但把《明朝那些事儿》读了第二遍,而且为了对中国历史有一个更全面的认识,去看了朋友推荐的《中国通史》这部百集纪录片,直到现在用了半年时间看完了这本《邓小平时代》。唐太宗曾说过:“以铜为镜,可以正衣冠;以史为镜,可以知兴替;以人为镜,可以明得失”。在历史的长河中,可以发现人类社会在不同时期仍有许多共同点,从而窥探到我们生活的社会的一些运行规律。
看完这本书后很多不曾明白的事情顿时豁然开朗,而邓小平跌宕起伏的人生以及其个人品质深深的折服了我,在我迷茫不知所措的时候,又多了一盏指引的明灯。
本想在这里总结一下邓小平的一生以及对中国乃至世界的影响,但是发现自己知识浅薄,对于介绍邓小平的书籍及文献仅读过此书。毛主席曾说:“没有调查,没有发言权”。于是作罢,就单单写写自己在此书中的收获吧。
不争论,先尝试,见效之后再推广邓小平被称为改革开放的总设计师,但是在改革开放的工作中并不是一帆风顺的,在推行改革开放主要面临的阻力来自于当时的保守派,他们担心改革开放会使资本主义复辟。在这个方面,邓 ...
《人间失格》
简介《人间失格》 —— “无赖派”文学大师太宰治饱受争议的破灭之书
[日]太宰治 —— 著杨伟 —— 译
之前并不了解太宰治,是被书名吸引的才开始读的。在了解到作者的过往经历后,对这本的书的兴趣愈发浓厚。
太宰治的一生充满的传奇色彩,他出身豪门,一生立志文学,师从井伏鳟二等小说名家;大学时代曾积极投身左翼运动,却中途逃脱;生活放荡不羁,却热心于阅读《圣经》;五度自杀,四度殉情未遂,三十九岁时与最后一位情人投水自尽。以至于他说”回收往昔,我的人生充斥着耻辱”(《人间失格》),”生而为人,对不起”(《二十世纪旗手》),”上帝选民的不安与恍惚俱存于吾身”(《叶》)。这些格言式的短语七号成了太宰治人生和文学的最好注脚,也从某个角度勾勒除了他一生的心理轨迹。
《人间失格》一书中的主人公大庭叶藏通过「扮丑」逗笑周围人的来进行「自我救赎」。但是最终承受不住这样的压抑和无奈,在同学堀木的影响下一步一步走向堕落,利用酒精和毒品麻醉神经,用女性的肉体安抚自身的肉体,依靠女人维系基本生活。 太宰治以”私小说”的方式,将自己的一生的投影都折射在叶藏身上。
读完这本书后,内心仿佛有什么东西被触动了,但是 ...