自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 系统重构:从Jar包冲突搞到类加载机制,就是这么霸气

接手了一套比较有年代感的系统,计划把重构及遇到的问题写成系列文章,老树发新枝,重温一些实战技术,分享给大家。【重构01篇】,给大家讲讲Jar包冲突及原理。背景目前市面上项目管理要么是基于Maven,要么是基于Gradle,最近接手了一套纯手动添加jar包的项目。对于纯手动添加jar包的项目已经是多年前的方式了,现在工作三五年的技术人员可能都没有经历过。就是把项目中所需的jar包挨个找出来,添加到一个lib目录中,在IDE中再将jar包依赖手动添加上。这种方式来添加jar包依赖,不仅费事,而且

2021-11-12 14:54:59 153

原创 诡异的问题:Dubbo注册zookeeper协议时,出现了这种异常提示

遇到一个很诡异的问题,我在启动多个配置相同zookeeper的Dubbo项目时,其他项目都是正常启动,唯独有一个项目在启动过程中,Dubbo注册zookeeper协议时,竟然出现了这样的异常提示——Caused by: java.lang.IllegalStateException: zookeeper not connected at org.apache.dubbo.remoting.zookeeper.curator.CuratorZookeeperClient.<init>(Cu

2021-11-11 19:56:43 231

原创 这才是SpirngBoot轻松整合MybatisPlus多数据源的正确打开方式

有一个这样子的需求,线上正在跑的业务,由于业务发展需要,需重新开发一套新系统,等新系统开发完成后,需要无缝对接切换,当初具体设计见草图。添加依赖# <!--lombok--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId>

2021-11-11 19:55:40 98

原创 痛击面试官,CURD系统也能做出技术含量

引子很多朋友可能会因为自己做的工作不是特别核心或者业务简单而引起面试中没有自信。但是很多公司面试的时候是可以接受面试者之前岗位的并发量、交易量低一些的。比如我们要招聘和我们交易量同等级或者以上的出来的人才,业界本来就没有多少,但我们还是要招人的。所以很多时候更偏向于考察面试者的设计底蕴、思考和解决问题的能力。我建议面试时,面试者要争取主动权,主动引导面试。一般作为面试官也很乐意被面试者引导。因为面试官的职责是发现面试者的技术特长,为此我们绞尽脑汁地从简历中、自我介绍中去发掘。如果面试者可以自己有完整

2021-11-11 19:54:42 48

原创 Spring Cloud Alibaba使用Seata解决分布式事务全过程解析

为什么会产生分布式事务?#随着业务的快速发展,网站系统往往由单体架构逐渐演变为分布式、微服务架构,而对于数据库则由单机数据库架构向分布式数据库架构转变。此时,我们会将一个大的应用系统拆分为多个可以独立部署的应用服务,需要各个服务之间进行远程协作才能完成事务操作。在微服务项目中通常一个大项目会被拆分为N个子项目,例如用户中心服务,会员中心服务,支付中心服务等一系列微服务,在面临各种业务需求时难免会产生用户中心服务中需要调用会员中心服务,支付中心服务而产生调用链路;服务与服务之间通讯采用RPC远程调用技术,

2021-11-11 19:53:41 164

原创 4个实验,彻底搞懂TCP连接的断开

前言看到这个标题你可能会说,TCP 连接的建立与断开,这个我熟,不就是三次握手与四次挥手吗?且慢,脑海中可以先尝试回答这几个问题:四次挥手是谁发起的? 如果断电/断网了连接会断开吗? 什么情况下没有四次挥手连接也会断开?这不是面试,而是遇到了实际问题,至于是什么问题,容我先卖个关子,本文也不会解答,后面会有一篇专门的文章来说遇到的问题是啥,所以在讲实际问题之前,先弄懂理论。正常断开我们由浅入深,先了解正常情况下 TCP 连接是如何断开的,下图为 TCP 三次握手与四次挥手的经典图(来自

2021-11-11 19:52:24 183

原创 Spring 5 MVC 中的 Router Function 使用

Spring 5 发行已经好几年了,里面提出了好几个新点子。其中一个就是RouterFunction,这是个什么东西呢?Spring框架给我们提供了两种http端点暴露方式来隐藏servlet原理,一种就是这多年大家都在使用的基于注解的形式@Controller或@RestController以及其他的注解如@RequestMapping、@GetMapping等等。另外一种是基于路由配置RouterFunction和HandlerFunction的,称为“函数式WEB”。这...

2021-11-11 19:51:34 2905 2

原创 超赞的kafka可视化客户端工具,让你嗨皮起来

Kafka Tool是一个用于管理和使用Apache Kafka®集群的GUI应用程序。 Kafka Tool提供了一个较为直观的UI可让用户快速查看Kafka集群中的对象以及存储在topic中的消息,提供了一些专门面向开发人员和管理员的功能,主要特性包括:快速查看所有Kafka集群信息,包括其brokers, topics and consumers 查看分区中的消息内容并支持添加新消息 查看消费者偏移量,支持查看Apache Storm Kafka Spout消费者偏移量 以pretty-pr

2021-11-11 19:50:31 207

原创 阅读 redis 源码,学习缓存淘汰算法 W-TinyLFU

所有 IT 从业者都接触过缓存,一定了解基本工作原理,业界流行一句话:缓存就是万金油,哪里有问题哪里抹一下。那他的本质是什么呢?上图代表从 cpu 到底层硬盘不同层次,不同模块的运行速度,上层多加一层 cache, 就能解决下层的速度慢的问题,这里的慢是指两点:IO 慢和 cpu 重复计算缓存中间结果但是 cache 受限于成本,cache size 一般都是固定的,所以数据需要淘汰,由此引出一系列其它问题:缓存一致性、击穿、雪崩、污染等等,本文通过阅读 redis 源码,学习主流淘汰算..

2021-11-11 19:49:03 71

原创 反超 PowerDesigner,这个国产数据库建模工具很强

大家好,我是 Guide!今天给小伙伴们分享一个我平时经常使用的国产数据库建模工具,非常好用!这个数据库建模工具的名字叫做CHINER[kaɪˈnər] 。可能大部分小伙伴都没有听过这个工具,不过,相信大部分小伙伴应该都听说过 CHINER 的前身PDMan。CHINER 是 CHINESE Entity Relation 的缩写,翻译过来就是国产实体关系图工具,中文名称为:元数建模,也作:"CHINER[元数建模]"公开使用。CHINER 对 PDMan 的架构设计进行了大幅改善,并对..

2021-11-11 19:47:27 1211

原创 你管这破玩意叫操作系统源码 | 第一回 最开始的两行代码

从这一篇开始,您就将跟着我一起进入这操作系统的梦幻之旅!别担心,每一章的内容会非常的少,而且你也不要抱着很大的负担去学习,只需要像读小说一样,跟着我一章一章读下去就好。话不多说,直奔主题。当你按下开机键的那一刻,在主板上提前写死的固件程序BIOS会将硬盘中启动区的 512 字节的数据,原封不动复制到内存中的 0x7c00这个位置,并跳转到那个位置进行执行。启动区的定义非常简单,只要硬盘中的 0 盘 0 道 1 扇区的 512 个字节的最后两个字节分别是0x55和0xaa,那么...

2021-11-11 19:26:18 873

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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