自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

方丈的寺院

技术是人生基石/https://github.com/FS1360472174/

原创 我开通了微信公众号

2011年7月在csdn写了第一篇文章,恍惚间已经过去了8年。基本保持着每月1篇的节奏,期间从未间断。 我的个人博客地址https://fangzhang.blog.csdn.net/。 我的博客主要记录web开发相关的问题,包括不限于java,spring,mybatis,分布式,以及数据库相关...

2019-03-24 11:51:51

阅读数 1605

评论数 1

原创 2019年终总结-坚持的力量

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

2020-01-18 10:28:44

阅读数 2236

评论数 2

原创 结婚这件大事

一个多月没更新文章,因为在忙一件人生中的大事:结婚。为了筹备结婚事宜,前前后后忙了2个月。 为了不留遗憾,在知乎上翻阅了大量的资料。以至于我的知乎年度关键词【婚礼筹办】位于前列。 都忙完了,终于有时间简单聊聊【婚礼筹办】这件大事吧。 为什么要在杭州办 对于在大城市工作的人来说办婚礼是件头疼的事,...

2020-01-11 09:31:28

阅读数 3577

评论数 9

原创 Hbase初识

简介 数据模型 相关数据库 典型应用 优势 劣势 key-value Redis 缓存 快速查询 存储数据缺乏结构化 列族 Cassandra,Hbase 分布式的文件系统,大规模的数据存储 易于分布式扩展 功能受限 document Mongo,CouchDB 易用 可...

2019-12-04 20:38:31

阅读数 256

评论数 0

原创 最近读的书和一点感悟

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

2019-11-09 11:33:36

阅读数 453

评论数 3

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

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

2019-10-30 22:10:55

阅读数 3799

评论数 7

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

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

2019-10-22 22:03:42

阅读数 905

评论数 0

原创 聊聊Mysql索引和redis跳表

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

2019-10-22 22:03:06

阅读数 1194

评论数 0

原创 http服务端架构演进

摘要 在详解http报文相关文章中我们介绍了http协议是如何工作的,那么构建一个真实的网站还需要引入组件呢?一些常见的名词到底是什么含义呢? 什么叫正向代理,什么叫反向代理 服务代理与负载均衡的差别 有了nginx,为啥还需要LVS 都有哪些负载均衡的方式 服务端演进 在前面文章中我们介...

2019-10-20 20:44:18

阅读数 1451

评论数 0

原创 guava缓存批量获取的一个坑

摘要 Guava Cache是Google开源的Java工具集库Guava里的一款缓存工具,一直觉得使用起来比较简单,没想到这次居然还踩了一个坑 背景 功能需求抽象出来很简单,就是将数据库的查询sthMapper.findById(Long id)的结果缓存起来。但同时还有批量请求,为了提高效率...

2019-10-14 21:45:19

阅读数 426

评论数 0

原创 详解http报文(2)-web容器是如何解析http报文的

摘要 在详解http报文一文中,详细介绍了http报文的文本结构。那么作为服务端,web容器是如何解析http报文的呢?本文以jetty和undertow容器为例,来解析web容器是如何处理http报文的。 在前文中我们从概览中可以了解到,http报文其实就是一定规则的字符串,那么解析它们,就是解...

2019-10-09 22:05:13

阅读数 1782

评论数 9

原创 详解http报文

摘要 作为一个web开发者,每天都在使用者Http协议,却总是一知半解。本文参看Http RFC7230规范,梳理了http报文部分。 http 报文构成 start-line: 起始行,描述请求或响应的基本信息 *( header-field CRLF ): 头 CRLF [ message-b...

2019-09-30 21:30:04

阅读数 6319

评论数 1

原创 2019秋-走的太久忘记了为什么出发

其实我一直都是敏感的人,没事就爱琢磨生活,思考人生的,完了还要用文字记录下来,用来回味复盘。这就像敏捷开发中的retro,2个星期一个迭代,就得做一次复盘,总结下过去的二周做的好与不好。 但是这篇文档纠结了很久到底要不要写,先说说纠结的原因吧。 内心纠结 我一直是个纯粹的人,或者企图保持纯...

2019-09-29 21:36:11

阅读数 566

评论数 5

原创 2014元旦-走着瞧

2013,于我注定是个重要的年份,人生道路上的岔路口。因为在这一年,我要告别单身的大学四年生活,迎来无限期的光棍职业生涯。这个场景在我的脑海了出现过无数次,可是不管我多么不愿意,终究还是来了。我什么也没做,他就这么静悄悄的来了。 没进入社会,没踏入职场,永远不要说职场是怎么样,道听途说不可信。在2...

2019-09-28 09:16:32

阅读数 476

评论数 1

原创 2013夏-一篇杂文

不知道是什么时候发现这个规律:在我被某个或某些想法困注,无法自拔,开始问自己一些诸如“活着究竟有什么意义”,“我到底是个 什么样的人”的问题,然后经过一番磨难,想通后或者严格意义上来说悦纳了自己,我就会写下一篇日志,模仿着那些大师教我的隐喻的手 法,将这种情感表达出来,自己乐在其中,而外人又浑然不...

2019-09-28 09:02:42

阅读数 274

评论数 3

原创 2013春-春天里的故事

手机写日志真心辛苦,写到一半没思路,睡觉,改日重写。

2019-09-28 09:00:03

阅读数 51

评论数 0

原创 2012冬-我想和生活谈谈

2012这一年国家发生了很多大事,世界也发生了很多的变化,我也从一件一件的琐事中走到了现在。 我还记得这一年我是刷着林书豪的疯狂的数据来到了学校,小宇宙的爆发让林一下子吸引了全世界的眼球,每个人都期待着于平凡中瞩目,并为之默默的奋斗。有的人成功了,有的人放弃了,有的人忘记了。这一切都不重要,重要的...

2019-09-28 08:58:58

阅读数 457

评论数 3

原创 2012秋-大三恐惧症

此时此刻已经是开学的第二个礼拜了,可晚上依旧是无法入睡。想来自己一向是极其适应生活的,可不知为什么最近就没有静下心来好好听过一节课,看过一本书,思考过一个问题。一切都源于内心,作为一个工科男,我有必要就此进行深入分析,走进自己的灵魂深处,探询事情的起源。 一、 大三于我意味着什么呢?开学时,大家...

2019-09-28 08:55:41

阅读数 259

评论数 0

原创 2012夏-南京的夏天有点忙

当我感到胸闷气喘,大脑晕乎,四肢无力,吃不下饭的时候,南京的夏天就来了,不打一丝招呼。 南京号称‘四大火炉’城市之一,每个生活在南京的人心里都深深的烙下了这句话。 去年的自己,还是年少轻狂,自以为是,激情四射,那时自己是怎么着都不想回家,执意留在南京,那个夏天,我去南京各个地方兼职,发传单,跑楼。...

2019-09-28 08:53:38

阅读数 209

评论数 1

原创 2012春-晨间杂想

小时候我玩游戏的时候并没有被他华丽的界面吸引,而是在想是什么做出了这界面,后来我知道了编程这个概念,可是我还有着高考。我总是对自己说:大学就好了,那时候我的梦想是程序员。大学了什么条件都有了,我似乎离梦想近了。大一时我想转去网络工程。考虑了很久,其实是权衡了很久,最终放弃了。在这条走向梦想的道路上...

2019-09-28 08:51:02

阅读数 54

评论数 0

原创 2011-这个冬天有点冷

这个冬天有点冷,来南京一年多了,还是没能摸透南京诡异的天气,寝室也被搬到了小山后,孤僻,阴冷,最近晚上还能看到对面小山上熄灯后鬼鬼祟祟的不明物体。当然也有好处,与被窝相处的时间随着日子的一天天过,也慢慢延长了,有时是一上午,有时或许至一下午。。。。。 这个冬天我开始背着书包了,像个好学的中学生一样...

2019-09-28 08:47:16

阅读数 74

评论数 0

原创 如何做一个职业的程序员-《麦肯锡方法》读书笔记

摘要 这本书主要讲的是如何系统的解决问题,也就是方法论这种玄乎的东西。那么到底实不实用的呢,还是说只是顶着麦肯锡这个世界知名的咨询公司的光环,来贩卖知识了,这得看过才知道。 这本书讲了什么 这本书很薄,先根据目录索引,了解下大致讲了什么。 重点 前三部分讲了如何系统性的解决问题。 第一部分是是道...

2019-09-19 21:37:57

阅读数 582

评论数 0

原创 完整剖析SpringAOP的自调用

摘要 spring全家桶帮助java web开发者节省了很多开发量,提升了效率。但是因为屏蔽了很多细节,导致很多开发者只知其然,不知其所以然,本文就是分析下使用spring的一些注解,不能够自调用的问题。因为本身这类文章很多,所以有些地方不会详述,直接引用其他文章。 问题 使用了Spring中哪...

2019-09-16 20:05:11

阅读数 213

评论数 0

原创 深入分析Mybatis 使用useGeneratedKeys获取自增主键

摘要 我们经常使用useGenerateKeys来返回自增主键,避免多一次查询。也会经常使用on duplicate key update,来进行insertOrUpdate,来避免先query 在insert/update。用起来很爽,但是经常踩坑,还不知为何。本篇就是深入分析获取自增主键的原理...

2019-09-07 13:33:27

阅读数 580

评论数 0

原创 微服务API通过ip可访问,域名不可访问问题分析

摘要 经常会有同学遇到api通过ip可以访问,但是通过域名却不可以访问。本篇文章总结了造成这种情况可能的原因。 因为与具体技术的选型、规则配置有关,所以没有深入讨论,只是列出可能性,仅供参考。 分析 问题 通过域名访问不到的请求表现的现象有 接口返回404 一个错误页面 提示method typ...

2019-08-26 20:46:40

阅读数 222

评论数 0

原创 深入分析Elastic Search的写入过程

摘要 之前写过一篇ElasticSearch初识之吐槽,不知觉竟然过去了两年了。哎,时光催人老啊。最近又用到了ES,想找找过去的总结文档,居然只有一篇,搞了半年的ES,遇到那么多的问题,产出只有这么点,真是说不过去啊。只好又重新捡起ES,发现ES槽点依然很多,不兼容的更新太多了,各个版本之间的差异...

2019-07-27 12:08:19

阅读数 153

评论数 0

原创 以Spring Cache扩展为例介绍如何进行高效的源码的阅读

摘要 SpringCache的介绍 扩展点 功能的实现 扩展,如何实现metric监控 http://ylzheng.com/2018/01/24/use-prometheus-monitor-your-spring-boot-application/

2019-07-16 21:50:19

阅读数 791

评论数 0

原创 几种获取类的扩展方式

摘要 在日常开发过程中经常需要获取类的扩展集。即获取类的子类集(抽象类),或者接口实现类。比如说状态模式中,状态构建类,策略模式中的,策略构造方式。本文介绍几种获取方式。 实现 以策略模式为例 定义了2种策略 @Getter @AllArgsConstructor public enum Stra...

2019-06-27 20:51:08

阅读数 460

评论数 4

原创 可落地的DDD(5)-战术设计

摘要 本篇是DDD的战术篇,也就是关于领域事件、领域对象、聚合根、实体、值对象的讨论。也是DDD系列的完结篇。 这一部分在我们团队争论最多的,也有很多月经贴,比如对资源库的操作应该放在领域服务还是领域对象中。 聚合根应不应该暴露给外部,还是要转成DTO。这些问题我们讨论了大半年,最后大家基本达成了...

2019-06-23 13:27:51

阅读数 2461

评论数 0

原创 SQL IN 一定走索引吗?

摘要 IN 一定走索引吗?那当然了,不走索引还能全部扫描吗?好像之前有看到过什么Exist,IN走不走索引的讨论。但是好像看的太久了,又忘记了。哈哈,如果你也忘记了MySQL中IN是如何查询的,就来复习下吧。 问题 问题要从之前的统计店铺数关注人数说起 SELECT shop_id, count(...

2019-06-16 20:12:33

阅读数 1681

评论数 1

原创 一次和前端的相互甩锅的问题记录

背景 我们在APP上有个功能,需要获取用户当前定位,然后当用户关闭了GPS后,没有获取到用户定位,会触发一个bug,弹窗内容如下。 问题分析 这个问题的直接原因就是移动端的值取不到,导致没有给变量赋值,就将"undefined"传给了后端,后端的这个值定义的Integer,类...

2019-06-07 10:21:16

阅读数 6101

评论数 31

原创 可落地的DDD(4)-如何利用DDD进行微服务的划分(2)

摘要 在前面一篇介绍了如何通过DDD的思想,来调整单体服务内的工程结构,为微服务的拆分做准备。同时介绍了我们在进行微服务拆分的时候踩过的一些坑。 这篇介绍下我们最终的方案,不一定对,欢迎留言讨论。 微服务划分 问题分析 上篇介绍过我们一开始的服务划分标准 一个领域一个服务的规则去拆分, 同时为...

2019-06-02 12:38:55

阅读数 3838

评论数 2

原创 可落地的DDD(3)-如何利用DDD进行微服务的划分

摘要 前面两篇介绍了DDD的目标管理、DDD的工程结构调整。这篇讨论微服务的划分。微服务是目前后端比较流行的架构体系了,那么如何做好一个微服务的划分?一个微服务的粒度应该是多大呢?这篇主要介绍如何结合DDD进行领域划分。 工程结构代码 上篇介绍了可落地的DDD的(2)-为什么说MVC工程架构已经过...

2019-05-30 23:11:53

阅读数 2225

评论数 2

原创 可落地的DDD的(2)-为什么说MVC工程架构已经过时

摘要 mcv是一种软件设计模式,最早由Trygve Reenskaug在1978年提出,他有效的解决了表示层,控制器层,逻辑层的代码混合在一起的问题,很好的做到了职责分离。但是在实际的编码实践过程中,你会发现这个模式随着服务的扩展, mvc的问题 通常一个前后端分离的系统,后端工程系统结构图通常下...

2019-05-21 22:36:17

阅读数 1508

评论数 3

原创 我们团队是如何落地DDD的(1)

最近发现文章老是被窃取,有些平台举报了还没有用。请识别我的id方丈的寺院。 摘要 DDD领域驱动设计,起源于2004年著名建模专家Eric Evans发表的他最具影响力的著名书籍:Domain-Driven Design –Tackling Complexity in the Heart of S...

2019-05-19 11:20:50

阅读数 2018

评论数 3

原创 搬了十次家,总算搬进了自己的家

摘要 改革春风吹满地,今天是个好日子,经历了在包邮区的5年折腾,辗转了3个城市,搬了十次家,我总算搬进了自己的家。把我的经历分享给大家,希望能给在外漂泊的你们一点鼓励。 搬家经历 南京 我是14年在南京毕业,怀着对南京的无限热爱,留在了南京工作。记得租的第一个房子是双龙大道的一个地下室,房租55...

2019-05-12 11:45:15

阅读数 472

评论数 7

原创 微服务化后缓存怎么做

摘要 最近接手的代码中遇到几个缓存的问题,存在一些设计原则的问题,这里总结一下,希望可以对你有帮助 问题 问题1: 店铺数据的获取,将用户关注的数据放在店铺信息一起返回 对外提供的接口 List<Shop> getPageShop(final Query query,final Boo...

2019-05-06 21:59:08

阅读数 1885

评论数 0

原创 你真的懂线程池吗

摘要为什么需要线程池呢,没想明白这个问题,看再多线程池的源码都没有用,先要知道线程池技术解决了什么问题,才能看的懂源码,因为所有的代码都是为了解决实际的工程问题。问题抛几...

2019-05-04 16:08:08

阅读数 122

评论数 0

原创 线程池管理(1)-为什么需要线程池

摘要 为什么需要线程池呢,没想明白这个问题,看再多线程池的源码都没有用,先要知道线程池技术解决了什么问题,才能看的懂源码。因为所有的代码都是为了解决问题 问题 抛几个问题,看看你是否知道,不知道的话,可能你对线程池的理解还不够深入,还是一知半解。 ...

2019-05-04 15:51:46

阅读数 1309

评论数 10

原创 微服务间的调用和应用内调用有啥区别

目前大部分的系统架构都是微服务架构,就算没有注册中心、服务管理,也肯定是多个服务,单体服务比较少了。 大家平时写rpc接口也比较多,那么有没有思考过微服务之间的调用和应用内直接调用有什么区别呢?

2019-04-17 23:50:11

阅读数 870

评论数 0

提示
确定要删除当前文章?
取消 删除