摘要: 我们讨论网络编程中的IO模型时,需要先明确什么是IO以及IO操作为什么在程序开发中是很关键的一部分,首先我们看下IO的定义。 IO的定义 IO操作(Input/Output操作)是计算机系统中的一种重要操作,用于数据的输入和输出,通常涉及到计算机与外部设备(如硬盘、网卡、键盘、鼠标、打印机等)之间的 阅读全文
posted @ 2023-12-18 12:23 DaFanJoy 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 在之前的文章《网络编程杂谈之TCP协议》中,我们阐述了TCP协议的基本概念,TCP作为一种可靠的、面向连接的数据传输协议,确保了数据在发送和接收之间的可靠性、顺序性和完整性,特点可以概括如下: 1、面向连接:在进行数据传输之前,TCP需要客户端和服务器之间建立一个连接,这个连接包括一系列的握手和协商 阅读全文
posted @ 2023-10-03 10:06 DaFanJoy 阅读(640) 评论(0) 推荐(2) 编辑
摘要: JDK21 计划23年9月19日正式发布,虽然一直以来都是“版本随便出,换 8 算我输”,但这么多年这么多版本的折腾,如果说之前的 LTS版本JDK17你还觉得不香,那 JDK21还是有必要关注一下,因为会有一批重要更新发布到生产环境中,特别是千呼万唤的虚拟线程,虽然说这东西我感觉不需要的用不到,需 阅读全文
posted @ 2023-09-18 10:14 DaFanJoy 阅读(5841) 评论(19) 推荐(8) 编辑
摘要: CopyOnWriteArrayList是一个线程安全的List实现,其在对对象进行读操作时,由于对象没有发生改变,因此不需要加锁,反之在对象进行增删等修改操作时,它会先复制一个对象副本,然后对副本进行修改,最后将修改后的副本对象写回,从而保证操作的线程安全,下面我们看一下具体的代码实现。 构造函数 阅读全文
posted @ 2022-12-05 16:19 DaFanJoy 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 19年写的一个基础的TCP服务框架,内置了一个简单IOC容器,当时的目标是一方面能作为组件供第三方集成实现TCP通讯相关功能,另一方面作为提供一种服务框架范式。所以框架核心点主要还是通过适度的封装,隐藏底层的通讯细节,最终调用者接受到的是经过合包分包处理的字节数组,不涉及具体的协议解析,大家如果使用 阅读全文
posted @ 2022-10-08 10:02 DaFanJoy 阅读(1044) 评论(0) 推荐(0) 编辑
摘要: 建设目标 平台接口建设规范旨在为接口开发、测试、使用划定一个框架边界,明确技术目标与要求,并要求提供完备的接口文档说明,为自有平台与第三方平台提供数据及服务支持。 建设标准 接口规范 命名规范 在标准的RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词。 阅读全文
posted @ 2022-04-30 19:02 DaFanJoy 阅读(1426) 评论(0) 推荐(1) 编辑
摘要: 引用计数是一种常用的内存管理机制,是指将资源的被引用次数保存起来,当被引用次数变为零时就将其释放的过程。Netty在4.x版本开始使用引用计数机制进行部分对象的管理,其实现思路并不是特别复杂,它主要涉及跟踪某个对象被引用的次数。在Netty具体代码中需要通过引用计数进行内存管理的对象,会基于Refe 阅读全文
posted @ 2021-12-30 10:03 DaFanJoy 阅读(802) 评论(0) 推荐(0) 编辑
摘要: 在日常的架构设计与开发中,常用的负载均衡算法主要分为静态和动态两类。静态负载算法以固定的频率分配任务不考虑服务器的状态信息,如轮询法、随机法等;动态负载均衡算法以服务器的实时负载状态信息来决定任务的分配,如最小链接法等,下面简单对其中几种算法原理进行基本说明: 1、轮询法会将收到的请求循环分配到服务 阅读全文
posted @ 2021-10-07 11:09 DaFanJoy 阅读(577) 评论(0) 推荐(0) 编辑
摘要: 数据分片技术作为目前架构设计中处理大数据的一种常规手段,当前被广泛用于缓存、数据库、消息队列等中间件的开发与使用当中,例如在数据量较大的项目当中,系统的性能瓶颈主要来自于与数据库的交互,而通过合理的设计数据库分片规则,可将系统中的数据分布在不同的物理数据库中,平衡了单点的数据量与访问压力,达到提升应 阅读全文
posted @ 2021-08-04 10:22 DaFanJoy 阅读(1228) 评论(0) 推荐(2) 编辑
摘要: 在实际项目开发中我们会经常使用到设计模式,设计模式是否能够正确、合理、灵活的运用到项目当中,是评判你开发能力的重要指标之一, 这一方面需要你打下牢固的编程基础,同时也需要积累大量的项目经验。这个过程并不是一蹴而就的,可能需要大量时间与项目的磨炼。本篇文章旨在汇总设计模式中的一些概念性知识,起到一个总 阅读全文
posted @ 2021-07-04 09:28 DaFanJoy 阅读(998) 评论(0) 推荐(1) 编辑