
Java
文章平均质量分 94
刘什么洋啊Zz
小刘要当架构师!!!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
剖析IO原理和零拷贝机制
当用户进程调用该select,select会监听所有注册好的IO,如果所有IO都没注册好,调用进程就阻塞。在IO模型中,select函数是一个非常重要的系统调用,它允许一个程序同时监视多个文件描述符(通常是套接字描述符),以查看它们中的任何一个是否可以进行I/O操作(例如读、写或异常条件)。事件驱动的,即如果某个流准备好了,会以事件通知,知道具体是哪个流,因此不需要遍历,函数的时间复杂度为O(1)。当有数据准备好时,无法感知具体是哪个流OK了,所以需要一个一个的遍历,函数的时间复杂度为O(n)。原创 2025-02-24 00:06:38 · 1245 阅读 · 0 评论 -
JVM基础
描述:所有的新生代首先会在Eden区进行内存分配,当Eden区满时会进行一次Minor GC操作,将Eden区进行回收,此时判断存活的对象会被复制进入Survivor from区(年龄加1),对于大对象直接进入老年代,实际上是为了保证Eden区具有充足的空间可用的一种策略,采用-XX:PretenureSizeThreshold参数可以设置多大的对象可以直接进入老年代内存区域。Java编译器会在编译时直接把这个变量出现的地方替换成它的值,因此即使程序使用该静态变量,也不会导致该类的初始化。原创 2023-05-19 16:58:47 · 162 阅读 · 1 评论 -
分布式定时任务调度Quartz
Quartz 是 OpenSymphony 开源组织在任务调度领域的一个开源项目,完全基于 Java 实现。该项目于 2009 年被 Terracotta 收购,目前是 Terracotta 旗下的一个项目。原创 2023-05-19 16:49:42 · 4004 阅读 · 2 评论 -
Kafka的架构解析
B服务消费消息队列的消息,更新offset,如果处理的不及时,消息就会堆积在队列里,如果B服务重启,消息就都丢失了!如果B服务消费情况较差,可以增加消费者,增大消息队列的消费速度,与此同时可以增加生产者的数量,提高消息的吞吐量。所以我们的数据不应该放在内存里,应该放在磁盘上,即使服务挂了,重启服务后也可以从磁盘中读取数据。组件过多,每个组件都有自己的数据和状态,所以需要有个组件来统一维护这些状态信息,于是我们有了。,获取Kafka状态,以此判断,是不是有broker挂了,某些消费组消费到哪里了。原创 2025-02-10 19:53:58 · 1166 阅读 · 0 评论 -
RocketMQ及和Kafka的区别
但是当topic变多了,Kafka下的partition也会增多,对应的segment文件也会变多,同时写多个topic下的partition就相当于写多个文件,不同的topic下的文件存放在磁盘的不同地方,这样的话即使segment内部是顺序写,但是针对于不同topic下的文件是随机写。消费消息是有可能失败的,失败后一般可以设置重试,如果多次重试失败,RocketMQ会将消息放在一个专门的队列中,方便我们单独做处理,这种专门存放失败消息的队列就是死信队列,kafka不支持,需要程序员实现。原创 2025-02-10 21:24:29 · 2553 阅读 · 0 评论 -
Cookie介绍及使用场景
Cookie 是一种小型文本文件,通常由网站服务器发送到用户的浏览器,并保存在用户的计算机硬盘或内存中。它们用于存储一些特定的信息,以便服务器能够识别并记住用户的数据,如用户偏好、登录状态、购物车内容等。原创 2025-02-17 15:03:11 · 1151 阅读 · 0 评论 -
Session介绍及使用场景
Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从用户注册进入系统到注销退出系统之间所经过的时间,这段时间内用户的操作空间也被包括在内。在Web开发中,Session是一种用于跟踪用户状态的重要机制,它允许服务器在多个请求之间识别和记住特定的用户,从而实现个性化的用户体验和安全的用户认证。原创 2025-02-17 15:44:20 · 923 阅读 · 0 评论