- 博客(15)
- 收藏
- 关注
原创 大话设计模式之工厂模式(factory pattern)
很多关于设计模式的书里都会提及工厂模式,大致分为简单工厂模式、方法工厂模式和抽象工厂模式,第三种是我最想吐槽的,名字足够具体同时也足够晦涩,记得大学有本叫马克思主义哲学的书里有个词叫形而上学,我一直就没搞明白过,直到很久以后机缘巧合下才真的理解,无非就是对辩证法取反而已,这些搞理论的前辈们总是喜欢故作高深,其实虎头蛇尾。...
2022-07-12 17:24:27
373
原创 MVCC多版本并发控制
MVCC(Multi-Version Concurrency Control),即多版本并发控制,在MySQL InnoDB中处理并发时,不加锁和非阻塞并发读,提高并发读性能的一种机制。MVCC维持了数据的多个版本,使得并发读写时没有冲突。
2022-07-12 17:13:38
1511
原创 分布式事务及其解决方案
一、本地事务简单来说,一个单体应用中,一般只会涉及一台数据库服务器,而数据库服务器本身就具有事务特性,这种在一台数据库服务器上实现的事务叫本地事务。二、分布式事务同理,在分布式系统中,每个应用都拥有自己的数据库服务器,此时想要实现多台应用之间的数据一致性,显然靠本地事务是无法实现的,因此需要实现分布式事务,也就是保证多个系统的操作原子性,要么全部成功要么全部失败的方式叫分布式事务。例如:1)跨数据源的分布式事务2)跨服务的分布式事务三、分布式解决方案分布式需要解决
2022-04-24 23:11:29
1165
原创 RabbitMq原理及应用
一、简介MQ(Message Queue),即消息队列,是一种实现应用级别之间的通信手段。不同应用之间可以通过读写消息,以消息为媒介传递应用数据,不需要应用之间建立强连接。此方式与远程调用(RPC)是应用通信的常见方式。在这个调用过程中,消息发送者定义为生产者,消息接收者为消费者。RabbitMq是使用Erlang语言开发的基于AMQP协议实现,面向消息、队列、路由的开源消息中间件。在一些企业级应用中对数据一致性、稳定性和可靠性以及吞吐量、性能要求比较高的场景应用比较广泛。RabbitMq使用链
2022-04-23 21:59:21
3103
原创 多视角多维度详细解析Java主流锁
前言:制繁琐且分类复杂,交叉相错,同一类锁实现在不同场景下又有不同的名称及其意义,而每种锁因其特性不同,在特殊场景下的使用效率不同。思维导图:一、乐观锁VS悲观锁乐观锁和悲观锁的概念相对较为广义,是从线程同步的不同视角维度判断的。悲观锁认为所有操作数都可能被其他线程修改,在当前线程修改该操作数时必须加锁。例如synchronized和Lock。乐观锁认为所有操作数都不会被其他线程并发修改,所以不会加锁,只有在修改数据时才会去判断该操作数是否有已经被修改,没有被修改则写入,如有修改则执
2021-09-12 20:12:32
242
原创 MySql数据库锁机制
前言MySql数据库锁大致分类:表级锁:加锁快;不会出现死锁;锁冲突概率高;锁粒度大;并发度低。行级锁:开销大,加锁慢;会出现死锁;锁冲突概率低;锁粒度小;并发度高。页面锁:介于表锁和行锁之间。锁的机制取决于使用的数据库引擎。MyISAM支持表级锁,不支持事务。InnoDB支持行级锁和表级锁,并且支持事务。MyISAM引擎锁分类表共享锁(Table Read Lock)和表独占锁(Table Write Lock),读和写是串行的,写和写是串行的,读和读不串行...
2021-09-04 20:17:33
232
原创 记一次多线程处理思考
兜兜转转,磕磕绊绊了很久,还未来得及想明白自己要什么,就错过了很多。等等,错了,重来一遍。从大学开始,就很喜欢观察身边的一些小事,思考一些小问题,写一些对生活的小感悟,导致现在提笔就开始聊人生谈理想,随着年龄的增长,以及阅历的不断丰富,经历了一些社会的小考验,逐渐褪去了乌托邦式的理想主义.............今天我想聊的是和朋友一起深入探讨过的一个问题,如何正确的使用乐观锁机制解决多线程下并发问题。正常case:第一次,事件A触发执行 更新数据库为status=INIT第..
2021-08-25 01:41:44
114
原创 浅谈阿里巴巴蚂蚁金服SOFA微服务开源框架
前言:提到分布式、微服务,大部分人首先想到的可能是SpringCloud、Duubo等主流框架,但事实上在SpringCloud还未出现之际,蚂蚁金服内部就已经有了一套比较完整的金融级分布式架构Sofa,并且到目前为止,经历了大大小小比较完善的闭环金融场景,如双十一、双十二等。说来也惭愧,之前并未关注到Sofa早已开源,所以一直不敢发布有关Sofa的相关文章,如果对Sofa知之甚少的小伙伴,接下来就和我一起进入一个新世界:Sofa分布式微服务架构。1.Sofa结构图:...
2021-08-22 18:53:35
16160
原创 浅谈SimpleDateFormat线程不安全原因及解决方案
题外话:傍晚晚饭过后,总喜欢和朋友吹吹牛,和大多数人一样,我们的话题很日常,无非就是女人、前途和生活琐碎。如果某一个人感性一点或许会将话题会升华到事业以及自己对未来的畅想和规划。而作为同是搞计算机编程的,代码是必然会聊到的主题。今天我想分享的就是一个看似简单却不那么简单的问题,SimpleDateFormat的线程安全问题。问题:你知道SimpleDateFormat是否线程安全吗?假如你知道,那么它为什么线程不安全?假如你又知道,那么它的线程不安全问题怎么解决?接下来我们一探究竟。
2021-08-19 01:00:01
1813
原创 带你十分钟快速理解MySQL索引机制
写在前面:第一篇讲解Spring时,重点提到过Spring事务,Spring事务本质上是数据库事务,而数据库事务是基于并发。此时数据库引用了一套锁机制来解决并发问题。在介绍锁机制之前,就不得不提数据库索引。此文以目前市场主流的MySQL数据库为例。Mysql索引一、存储引擎:1)MyISAM :不支持事务、支持表锁、索引方式为非聚簇索引2)InnoDB(MySQL默认):支持事务、支持行锁、索引方式为聚簇索引(主键索引)和非聚簇索引(唯一索引 普通索引等)3)Memory:不支.
2021-08-17 03:31:25
191
原创 和这个世界交手的这许多年,你是否依然光彩依旧,兴致盎然
和这个世界交手的这许多年,你是否依然光彩依旧,兴致盎然? 打了几个小时游戏,头昏眼花,灯光有些许刺眼,下意识的用手挡了挡,寂静的屋内回响着手表的滴答声,窗户上细小的水滴沿着玻璃壁在逐渐向下流淌,仿佛一条玻璃溪流在整个房间中荡漾,窗外的雨越来越大,困意全无,瞬间“网易云”思绪又上心头。 长久以来,我们都生活在一个错综复杂的世界里,主动或被动接受着它带给我们的考验,有过犹豫,有过挣扎,或是收获,亦或是混淆视听。忽然想到了上份工作离职时老板送给我的一句话:“不管你走到哪...
2021-08-16 01:05:57
308
原创 少年的爱情
他喜欢的人不喜欢他他独自一个人知道了这个消息烟雾缭绕中他听完了小楼的风和雨他喜欢她本是他的事情不喜欢他是她的权利他喜欢的人不喜欢他他想摆脱这个不会生效的爱情独斟酌饮后他选择了最好的解脱他喜欢她就像橡皮圈断了也就断了他喜欢的人不喜欢他他发现他只是成了爱情的奴隶把自己锁在他自己创造的监狱里他喜欢她就像堆方块在一起了就会消失他喜欢她他喜欢的人不喜欢他少年的爱情好像从来都不够
2021-08-16 00:43:48
136
原创 求职面试场景下Spring的完美回答?一名伪文艺青年的亲身经历?
临近下班点,办公室逐渐响起熙攘的讨论声,我只觉得很吵,自觉带上了耳机,忽然同事在背后拍了拍我肩膀,问我还不下班吗,不回去准备下吗?我人忽然傻了,我应该准备什么?同事嘴角上扬,露出了往常没有的兴奋感说,明天七夕啊?我简单回答了他:哦!二十分钟后,整个办公楼只剩下不到几个人,毫无意外我是其中一个,依旧按照平时的节奏,敲着键盘,完全不为所动。也可能是七夕,有些许感触,但又不足为外人道,让我想起了这个闲置已久的公众号。好吧,无病呻吟到此结束,进入正题。相信很多同行的小伙伴在求职时都会遇到这样一个老生长谈..
2021-08-14 07:36:53
205
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人