自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 自己关于netty的一些学习笔记

连接建立:当客户端的SocketChannel通过open()和connect()方法成功连接到服务端时,服务端的ServerSocketChannel会接收到新的连接请求,并通过accept()方法创建一个新的SocketChannel来专门处理这个连接。服务端的工作主要是接收数据、处理(如果需要),然后可能向客户端响应数据。总之,缓冲区位于客户端和服务器的SocketChannel之间,是数据传输的必要组件,它使得数据在实际网络传输前后有一个暂存和处理的空间,保证了数据的可靠传递和高效处理。

2024-06-24 09:24:25 529

原创 es面试题

需要注意的是,上述查询过程是一个简化的描述,实际的查询过程可能因Elasticsearch的版本、配置和查询类型等因素而有所不同。Elasticsearch提供了多种查询性能优化策略,包括索引设计优化、查询DSL优化、性能调优参数调整、缓存和预热、硬件和网络优化以及集群规模和负载均衡等。协调节点接收查询请求后,根据请求的索引和文档ID(如果有的话)确定需要查询哪些分片。协调节点将查询请求广播到涉及索引的每个分片的某个副本(可能是主分片或副分片)上。协调节点合并所有分片返回的结果,形成一个全局的优先队列。

2024-06-03 20:40:32 166

原创 自定义线程池导致的问题

首先去查看了下Spring默认线程池的配置类,该类是一个自动配置类,该线程池Bean属于条件装配,在我们未配置线程池Bean类型的时候才会装配该默认线程池,同时该默认线程池Bean名称配置为applicationTaskExecutor还有一个别名叫做TaskExecutor,而这别名恰巧就是我们的自定义线程名。之前在搭建一个项目的基础框架的时候,有一个同事和我说我们的自定义线程池未生效,默认使用的是Spring默认线程池,于是看了下线程名称确实是用的是Spring默认线程池。

2024-05-21 21:20:07 271

原创 内存泄漏和内存溢出的解决思路

7、利用jmap -dump:live,format=b,file=heap.hprof[pid],下载dump文件在本地进行分析,使用像mat这样的工具进行打开。3、定位到具体的代码—MAT的thread overview,线程简介图,这个里面有方法的调用链信息和堆栈信息4。2、jstat -gc pid [interval]命令査看了java进程的GC状态,查看gc是否频繁。5、使用轻量级的在线分析,用jmap查看存活的对象情况(jmap-histo:ive [pid])。

2024-05-20 13:31:56 213

原创 一次线上redis 内存溢出

查看线上服务器日志,发现报错OOM command not allowedwhen used memory>‘maxmemory’,通过 redis 客户端命令info memory发现used memory>=maxmemory,线上redis 内存用的 8g,云redis,查看配置文件内存溢出策略,发现设置的是禁止写入,找到对应 key的业务,发现问题,这里是一个定时任务,会以每天的日期和一个固定字符串做 key 拉取其他部门的数据然后存redis,而实际用户命中的 redis 数据也只是。

2024-05-17 13:42:35 189

原创 java程序员面对hr的问题的回答

同时,我也计划进一步学习和掌握与Java相关的技术和工具,如Spring Boot、JPA、Hibernate等,以提升自己的技术栈和竞争力。同时,我也希望能够积累更多的项目经验和管理经验,提升自己的团队协作和领导能力。其次,我是一个善于沟通和协作的人。在Java程序员面试中,谈论自己的核心竞争力是一个重要的环节,它有助于向面试官展示你的独特价值和为什么你是这个职位的理想人选。在谈论自己的性格时,要确保你所描述的特点与你的实际行为和工作经验相符,并且这些特点对于Java程序员这个职位是有益的。

2024-05-11 15:38:52 579 1

原创 java 分布式事务

通过采用本地消息表和消息队列相结合的方式,我们可以实现分布式事务可靠消息最终一致性的解决方案。这种方案通过将分布式事务拆分为本地事务和消息传递两部分,并利用消息队列的可靠传递机制来确保消息的可靠传递和最终处理的一致性。同时,通过重试机制和补偿操作来应对可能出现的异常情况,从而提高了系统的可靠性和容错能力。

2024-05-03 08:39:38 26 1

原创 我的面试题

因为用户定义的方法可能包含不可预知的同步代码,这可能导致锁被意外地持有更长时间,增加了死锁的风险。使用并发工具类:Java并发库提供了许多高级并发工具类,如java.util.concurrent包中的Semaphore、CountDownLatch、CyclicBarrier等,它们可以帮助管理并发访问,减少死锁的可能性。减少锁的粒度:尽量使用细粒度的锁,只锁定需要同步的最小代码块或数据。这减少了线程之间的冲突,并提高了系统的并发性。使用无锁数据结构:

2024-04-29 10:28:42 555 2

空空如也

空空如也

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

TA关注的人

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