摘要: 一、netstat 系列 netstat -tn | awk '{print $6}' | sort | uniq -c 这个命令由几个部分组成,每一部分都完成特定的任务,最终的目的是统计网络连接的状态。我们可以将其分解成以下几部分: netstat -tn: netstat 是一个用于显示网络连接 阅读全文
posted @ 2024-08-27 11:05 Areis灬老四 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 简介 mybatis的启动入口一般有两个,在结合spring框架后由spring整合包下的SqlSessionFactoryBean启动 如果没有整合spring,则有XMLConfigBuilder启动 这两个启动入口都会初始化Configuration对象,该对象是mybatis配置文件的对象形 阅读全文
posted @ 2024-07-31 15:44 Areis灬老四 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。 为了确保分布式锁可用,至少要确保锁的实现同时满足以下四个条件: 互斥性。在任意时刻,只有一个客户端能持有锁。 不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能 阅读全文
posted @ 2024-07-31 14:27 Areis灬老四 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 连接成功建立后,客户端是如何向服务端发送请求的? 由于内部源码的调用过于复杂,我们只分析有代表性的代码。在 AbstractChannel 类中我们可以看到: wirte() 方法最后会把发送的数据 msg 放入 addMessage() 方法中,这个方法是做什么的呢? 原来把要发送数据放入一个缓冲 阅读全文
posted @ 2024-07-31 08:12 Areis灬老四 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 为了接收连接请求, Netty 服务端应该做些什么事情? 根据Java NIO 的知识,服务端在准备接收客户端连接之前做了下面几个工作,我们可以带着问题往下看。 服务端对连接请求是如何初始化的? 如何把用户定义的处理逻辑 childHandler 加入到 Netty 的处理流程里? 如何在 Sock 阅读全文
posted @ 2024-07-30 23:11 Areis灬老四 阅读(97) 评论(0) 推荐(0) 编辑
摘要: Java NIO VS Netty 有了 Java NIO,而且 Netty 也是基于 Java NIO 实现,那么为什么不能直接用 Java NIO 来实现网络通信模块呢? 接下来我解释一下原因。 如果我们用 Java NIO 来开发网络通信组件,势必会直接面对很多网络通信的问题。比如,网络连接异 阅读全文
posted @ 2024-07-30 22:01 Areis灬老四 阅读(421) 评论(1) 推荐(2) 编辑