9 方丈的寺院

尚未进行身份认证

我要认证

公众号@方丈的寺院

等级
TA的排名 5k+

2020-为什么换了工作

摘要经历了一个特殊的2020上半年,疫情出乎意料的持续了半年之久,还是没有看到结束的趋势。虽然外部环境很恶劣,还是做出了个人的重大选择,换工作。期间纠结了很久,毕竟工作就是生活,换工作就是对未来的期待,对过去的总结,对自己的人生的深度思考。这里回顾下当时的个人思考,供后续复盘参考。当前的状况2020,本科毕业的第六年,不再像刚毕业那会,觉得换公司是轻而易举的事,考虑的事情越来越多。毕业五年开始就越发的焦虑,这是当时的心境2019年春-当前的困境、2019秋-走的太久忘记了为什么出发总结起来

2020-06-25 11:35:33

深入浅出Spring MVC

Spring MVC 的常见扩展点工作原理基于java的MVC框架众多,早些年比较火的有struts,spring mvc常见扩展点HandlerMapping接口 – 处理请求的映射保存请求url到具体的方法的映射关系,,我们可以编写任意的HandlerMapping实现类,依据任何策略来决定一个web请求到HandlerExecutionChain对象的生成。SpirngMVC的第二个扩展点 HandlerInterceptor 接口--拦截器 HandlerIntercep.

2020-05-31 11:01:11

rocketmq初识

概念说明通常一个消息队列需要掌握的知识点有Topic(主体)、Producer(生产者)、Consumer(消费者)、Queue(队列)、Delivery Semantics(消息传递范式)蛋疼的是不同的消息队列关于这些名词叫法不一样,含义也不是很精确。所以阿里起了一个项目OpenMessaging去发起首个分布式消息领域的国际标准。不过好像并没有多少人买账,但这并不妨碍我们按照这个规范去梳理学习消息队列的知识。有兴趣的可以对照着看:https://github.com/openmessaging/s

2020-05-28 23:08:39

线上故障处理手册

摘要通常处理线上问题的三板斧是重启-回滚-扩容,能够快速有效的解决问题,但是根据我多年的线上经验,这三个操作略微有些简单粗暴,解决问题的概率也非常随机,并不总是有效。这边总结下通常我处理应用中遇到的故障的解决方案。原则处理故障的时候必须遵循的一些原则提早发现问题,避免故障扩散故障的出现链路一般如下图所示每一层都有可能出现问题,越底层出现问题,影响面越大。所以每一个层次都需要有相应的问题监控机制,这样越早发现问题,越能尽早解决故障,避免问题的扩散。比如服务依赖的一个数据库主库有问题了,如果等

2020-05-27 22:14:11

数据迁移(2) - 如何快速迁移

摘要在上一篇中我们介绍了数据迁移的套路,但是没有介绍具体的方案,这篇着重介绍下具体的数据迁移方案一. 设计目标设计一个数据迁移的方案,需要实现以下目标迁移速度qps 需要达到1k,这样能保证1亿的数据能够在1~2天内跑完迁移qps可控迁移有可能对线上服务有影响,需要可动态调整qps数据完整,不丢失不能遗漏数据,虽然事后我们有数据校验的过程,但是设计数据迁移方案时,需要尽可能的包装数据不丢失。进度可控迁移过程可中断,可重试。比如先迁移10分之一的数据,再继续来二.

2020-05-17 21:36:09

数据迁移的套路

数据迁移的类型随着业务的发展,存储也会经常性的需要迁移。以下场景是我们开发过程中经常遇到的业务、团队在快速扩张,需要适当时机进行微服务的拆分,需要独立的数据库,将数据从源数据库迁移到新的数据库单表的记录数比较大,需要进行分库分表。需要将老表的数据迁移到新的分表中。存储选型不对,比如关系型数据库的相互迁移, PG, MySQL,Oracle的相互迁移。NoSQL的Mongo,Cassand...

2020-05-04 11:56:12

存储优化(3)-mongo大表加索引

摘要在存储优化(2)-排序引起的慢查询优化中我们提到过排序对查询选择索引的影响。但是的解决办法就是增加一个索引。在线上给mongo的大表增加一个索引要慎重。在增加索引的过程中也遇到了一些问题,这边进行相关的记录与分析。问题描述表结构_id,biz_Id,version,name索引1. 主键索引2. biz_id,version联合索引查询语句"query":{"fin...

2020-03-29 19:37:19

存储优化(2)-排序引起的慢查询优化

摘要排序引起的慢查询,通常不是那么容易发现,经常和数据分布有关系。往往在业务刚开始时并没有什么问题,但是随着业务的发展,数据分布呈现一种特定的规律,导致了慢查询,或者并不是什么慢查询,但是随着并发请求数增加,数据库的IOPS使用率变高,进一步导致cpu/内存使用率飙高。造成线上故障。问题因为排序引起的问题遇到很多次例1:某日收到线上cpu告警然后查看慢sql日志大量的慢查询指向了这个查...

2020-03-16 21:19:19

存储优化(1)-分库分表后的索引问题

摘要最近遇到一个慢sql,在排查过程中发现和分库分表后的索引设置有关系,总结了下问题。问题在进行应用健康度盘点时,发现有个慢sql如下select brandgoodid from brandgood_0020where userid = xxx ANDbrandgoodid in("xxx1","xxx2")表结构,按照userid进行的分表。CREATE TABLE`b...

2020-03-15 19:27:14

初级算法-动态规划(2)

之前在初级算法-动态规划 一文中少写了动态规划的另外一种解法就是矩阵解法递归问题可以使用非递归的方式表达出来,时间复杂度是O(n),使用矩阵解法时间复杂度O(logn)public static int climbStairs2(int n) { if(n < 1) { return 0; } if (n == 1...

2020-02-16 20:43:28

包管理原则

摘要坊间传闻java web开发人员写了那么多代码,但是其实一半代码都在处理NPE。总是在加班,却大部分时间都在处理包冲突,类加载不了的bug。这些问题总是让新老程序员都很抓狂,有很多的工具可以辅助我们解决这些问题(maven helper插件,arthas等)但是有没有一些原则可以遵循,在源头上避免这些问题的发生呢。问题经常遇到的问题有ClassNotFoundException通过C...

2020-02-15 13:23:31

DDD-CQRS的落地案例

摘要在之前的文章DDD-CQRS能解什么问题中,阐述了什么是CQRS。但是并没有业务需求可以应用CQRS。最近需要处理一个文本增量更新的业务,经过需求分析后,尝试使用CQRS来解这个问题问题分析一个文本页面编辑,对象很大,之前是全量保存。涉及到的网络传输对象比较大,经常超时OOM,所以交互改成,只保存修改的部分,也就是增量更新。之前业务中没法使用CQRS,在于使用CQRS后,数据的维护变得...

2020-02-11 20:17:33

身体是自己的

摘要在我25岁以前,几乎没去过医院,最近两年不知道为啥,一年总要去几次医院。以前我对就医这件事的记忆一直停留在某年的流感时期,感冒后去诊所挂个水,挂完3瓶,然后回校继续上学。最近两年,因为身边的人出了一些意外,不得已去了几次医院,补了些这方面的功课。抗拒就医不知道是个人的原因,还是大家都是这样。我对看病/去医院这件事很抗拒。不知道是因为无知,还是因为害怕。刚开始工作那一年工作体检,那也是我第...

2020-02-02 13:19:22

2019年终总结-坚持的力量

摘要上一次年终总结是2016-12-31。一晃3年过去了。我也从一个初出茅庐的新人变成了一个职场老鸟。年末了,总结一下过去,展望一下未来。关键词瓶颈、底层思考能力、坚持的力量瓶颈年纪越大,越发觉得人生的艰难,每个年龄段都有各自的焦虑与忧伤,只是程度不同,所以人生总是很难。工作久了,不再有当初那般的技术成长速度,升职加薪机会了。记得刚毕业那两年,这也不会,那也不会,拼命学,觉得很充实,...

2020-01-18 10:28:44

结婚这件大事

一个多月没更新文章,因为在忙一件人生中的大事:结婚。为了筹备结婚事宜,前前后后忙了2个月。为了不留遗憾,在知乎上翻阅了大量的资料。以至于我的知乎年度关键词【婚礼筹办】位于前列。都忙完了,终于有时间简单聊聊【婚礼筹办】这件大事吧。为什么要在杭州办对于在大城市工作的人来说办婚礼是件头疼的事,在大城市待久了,和老家的朋友联系少了,不想回老家办。但在大城市办的话,亲戚朋友少;加上现在人换工作频率...

2020-01-11 09:31:28

Hbase初识

简介数据模型相关数据库典型应用优势劣势key-valueRedis缓存快速查询存储数据缺乏结构化列族Cassandra,Hbase分布式的文件系统,大规模的数据存储易于分布式扩展功能受限documentMongo,CouchDB易用可扩展性差图Neo4J社交网络利用图结构相关算法不易扩展从NoSQL分类来说,Hba...

2019-12-04 20:38:31

最近读的书和一点感悟

摘要最近读完的书有《这里是中国》、《自卑与超越》、《商业的本质》、《打破自我的标签》。鉴于我目前的认知水平,对自然景观的欣赏还停留在牛逼,666的水平,《这里是中国》的地理美景介绍引起的思考比较少。对美的鉴赏能力我还是有自知之明,距离大众水平都很有一段距离,得慢慢来。其他几本有商业的,有心理,有自我认知的。简单谈一谈一些感悟吧。职业发展《商业的本质》这本书关于职场有个有意思的词,叫命运之域...

2019-11-09 11:33:14

居然要周末加班才解决这个问题

摘要万万没想到,最近的一个任务居然在一周没有解决,弄得周六在家忙了一天,还没完成,直到周日早上灵光一闪,才完成了。坦白讲,我已经好久没有过这种体验了,被一个技术问题困扰了好几天,如此这般茫然失措,不过好在最后问题解决了。虽然这个任务可能你不会遇到特别相似的,但是我还是想把问题的解决过程分享给大家,顺便聊聊如何解决技术问题。问题背景需要将一个开源的python项目接入到公司的微服务体系(主要是...

2019-10-30 22:10:55

一次关于聚合根的激烈讨论

背景之前有同事在分享DDD在闲鱼商品详情页的实践时,大家对闲鱼团队领域建模关于商品详情页的聚合根建模表示不认同。因为这是面向页面建模,不是面向领域建模,将微服务拆分和领域建模混为一谈了于是我以聚合根定义作为引子,结合组内在实践DDD过程中,聚合根随着业务查询复杂而导致聚合根不断膨胀的问题,提出借鉴CQRS读写分离的理念,来解这个问题。详见DDD-CQRS能解聚合根的问题吗引发了大家对...

2019-03-28 22:25:10

聊聊Mysql索引和redis跳表

摘要面试候选人关于mysql索引问题时,发现有些人能够涛涛不绝的说出B+树和B树,平衡二叉树的区别,却说不出B+树和hash索引的区别。这种一看就知道是死记硬背,没有理解索引的本质。本文旨在剖析这背后的原理,欢迎留言探讨问题如果对以下问题感到困惑或一知半解,请继续看下去,相信本文一定会对你有帮助mysql 索引如何实现mysql 索引结构B+树与hash有何区别。分别适用于什么场景数...

2019-04-09 22:28:56

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 技术圈认证(专家版)
    技术圈认证(专家版)
    博客专家完成年度认证,即可获得
  • 推荐红人
    推荐红人
    发布高质量Blink获得高赞和评论,进入推荐栏目即可获得
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。
  • 分享宗师
    分享宗师
    成功上传21个资源即可获取