自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Java】readUnsignedShort()与readShort()

主要区别在于他们处理读取的两个字节的方式以及返回值类型和范围。readShort() 计算过程如下。假设我们从流中读取两个字节,由于short是有符号类型,计算过程如下,返回值为。

2025-03-25 21:53:50 180

原创 【网络】手机PUSH消息发送自建IM通道实现方案

‌状态判断‌:通过自建IM长连接实时监测用户在线状态(ONLINE/OFFLINE),离线时触发自有通道消息缓存并启动重试机制‌。‌隐私保护‌:遵循最小化数据采集原则,传输过程使用端到端加密(TLS 1.3),用户身份信息脱敏处理,符合《隐私保护协议》要求‌。‌动态容灾‌:采用多级熔断机制,根据通道健康度(如响应延迟、成功率)动态切换传输路径,确保服务可用性>99.9%‌。‌监控体系‌:集成消息发送成功率、端到端延迟、用户点击率等指标,支持按业务标签多维分析,快速定位异常节点‌。

2025-03-25 21:20:57 185

原创 【Netty】长连接与短连接的不同实现

【代码】【Netty】长连接与短连接的不同实现。

2025-03-21 17:23:43 296

原创 【Netty】心跳

对于服务端来说,不需要实现断线重连,因为服务端是等待客户端连接的一方;服务端需要关注服务的持续运行、真确处理客户端断开事件、等待客户端重连;重连的职责由客户端来完成。不完全一样的,ConnectionHandler 管理连接集合;HeartbeatHandler 负责连接活性检测,两者可以互相配合,保证连接的可靠性。

2025-03-21 17:04:29 219

原创 【Netty】客户端功能完善

【代码】【Netty】客户端功能完善。

2025-03-19 16:37:48 264

原创 【java】 Too many open files

最终,在排查完项目中所有socket相关操作后发现,发现在使用苹果push消息推送的时,在出现推送异常后,虽然有进行错误异常捕获,但是没有执行客户端的close方法,导致大量的文件句柄被占用。犯罪现场已经被破坏,无法查询到在重启之前服务使用了多少文件描述符, 因为已经排除了并发量大导致出现问题的可能,在重启推送服务后,其他服务也可以正常运行,所以怀疑是文件描述符泄漏导致的问题。因为项目整体并发量很大,初步怀疑是否因为并发量很高导致出现的问题,但查询日志后发现,初次出现。文件操作时,没有正确的关闭文件流。

2025-03-18 20:55:23 505

原创 【Netty】消息分发处理方式

检索平台,使用长链接的方式与外部系统进行交互;因平台使用的的自定义二进制交互协议,因此需要针对每个接口请求与响应都要进行编解码, 因此需要一种针对不同消息的分发处理。

2025-03-18 20:51:51 155

原创 【Netty】fireChannelRead责任链模式的使用

责任链模式的核心方法之一。它的主要作用是将消息传递给。

2025-03-18 17:43:35 284

原创 【Netty】SimpleChannelInboundHandler如何根据数据类型处理消息

【代码】【Netty】SimpleChannelInboundHandler如何根据数据类型处理消息。

2025-03-18 17:26:37 169

原创 【Netty】ChannelInboundHandlerAdapter与SimpleChannelInboundHandler的区别

1.如果你需要将消息传递给下一个处理器,应该使用。2.如果你是消息的最终处理者,推荐使用。3 如果你需要处理特定类型的消息,使用。

2025-03-18 16:43:27 123

原创 【Netty】自定义消息协议优化

【代码】【Netty】自定义消息协议优化。

2025-03-17 09:44:08 183

原创 【优化】系统性能优化步骤

Micrometer + Prometheus + Grafana: 用于实时监控和可视化。JMeter: 用于进行负载测试并确定基本的吞吐量数值。JProfiler: 用于深入分析代码中的热点区域。火焰图:用于识别CPU密集型方法。

2025-03-13 16:23:15 163

原创 【AI】docker安装dify镜像下载失败

【代码】【AI】docker安装dify镜像下载失败。

2025-03-10 22:44:06 142

原创 【Docker】windows 11 安装docker

Windows 11:WSL 2 安装和管理指南,3 种方法任你选docker汉化包地址安装过程

2025-02-15 20:03:49 187

原创 【Elasticsearch】邮件数据存储优化分析

在邮件系统中,为了高效管理和检索个人邮件索引,我们采用了基于邮件哈希值取模计算的方式来确定每封个人邮件的具体存储位置。这种方法帮助我们将邮件数据均匀分布到多个索引中,避免了所有邮件都集中存储在一个索引里,从而提高了系统的扩展性和性能。一封邮件可能有多个接收者,这意味着相同的邮件内容可能会被多个用户检索。在这种情况下,为了减少对相同邮件数据的重复存储,同时确保不同接收者能够对其邮件进行全文检索,我们需要优化Elasticsearch(ES)中的数据索引设置。

2025-02-14 14:53:58 745

原创 【ES】IK分词器下载地址

版本

2025-01-07 11:26:15 189

原创 【JAVA】为什么不推荐使用mybatis二级缓存

公众号文章

2025-01-02 13:57:31 125

原创 【mysql】按照号码去重统计数据

【代码】【mysql】按照号码去重统计数据。

2024-10-28 17:27:43 159

原创 【JAVA】管程与协程

管程是一种高层次的同步机制,用于控制对共享资源的访问。它结合了互斥锁和条件变量的特性。

2024-10-15 10:57:14 255

原创 【JAVA】读取JSON文件中指定部分数据

【代码】【JAVA】读取JSON文件中指定部分数据。

2024-10-14 15:01:35 457 1

原创 【JVM】记一次生产内存溢出问题

推送了大量push信息后,厂商会回调我们的接口,推送回执信息(批量),在使用mongo处理大量回执信息时,mongo数据库CPU使用率100%,回执服务内存溢出,导致服务瘫痪。经过堆栈数据分析,可以看出PowerOfTwoBufferPool对象,在内存经过FGC后,依然没有得到释放,长期占用内存;同时分析了回执处理代码,中间也存在很多问题,比如一次查询很多无用数据,使用大量串行化处理。

2024-04-29 11:47:44 564 1

原创 【java】GC指标

元空间(Metaspace)的容量 (KB)压缩类空间垃圾回收消耗的时间 (秒)第一个幸存区已使用空间 (KB)第二个幸存区已使用空间 (KB)Eden 区已使用空间 (KB)年轻代垃圾回收消耗的时间 (秒)老年代垃圾回收消耗的时间 (秒)压缩类空间已使用空间 (KB)总的垃圾回收消耗的时间 (秒)第一个幸存区的容量 (KB)第二个幸存区的容量 (KB)Eden 区的容量 (KB)老年代已使用空间 (KB)元空间已使用空间 (KB)压缩类空间的容量 (KB)压缩类空间垃圾回收次数。

2024-04-25 16:00:43 297 1

原创 【java】获取真实用户IP地址

【代码】【java】获取真实用户IP地址。

2024-03-11 13:39:33 473 1

原创 【java】GRPC与HTTP对比

gRPC和HTTP是两种不同的通信协议,它们在设计目标、特点和使用场景上有一些区别。

2024-01-23 16:38:35 2551 2

原创 【网络】内网穿透工具

luckyfatedier

2024-01-23 15:03:43 371 1

原创 【spring】代码中如何获取ApplicationContext

【代码】【spring】代码中如何获取ApplicationContext。

2024-01-12 17:49:56 448 1

原创 【spring boot】HttpServlet 方法的init 在spring boot 项目中 为什么没有执行

注解的 HttpServlet 类时,它会将该类注册为 Spring Bean。但是,Spring 容器不会自动调用 HttpServlet 类的 init 方法。HttpServlet 方法的 init 方法在 Spring Boot 项目中没有执行,是因为 Spring Boot 使用了。如果要手动调用 HttpServlet 类的 init 方法,可以使用。方法中,可以调用 HttpServlet 类的 init 方法。注解的类,并将它们注册为 Spring Bean。

2023-12-22 11:59:02 736

原创 【kafka】重置消费的offset

此命令将重置所有分区的消费者偏移量。此命令将将分区数增加到 3。此命令将将分区的副本数设置为 1、2 和 3。

2023-12-06 15:20:00 1537 2

原创 【linux】如何检索压缩包中内容

如果你想要在多个zip文件中进行检索,你可以使用通配符来指定文件名的模式。来匹配当前目录下的所有zip文件。

2023-11-22 17:54:46 2709

原创 【kafka】基础指令

from-beginning 参数表示从最早的可用偏移量开始消费, --max-messages 1 参数表示只消费一条消息。

2023-10-24 13:52:36 347

原创 EasyExcel 导出文件增加文件密码

【代码】EasyExcel 导出文件增加文件密码。

2023-10-10 16:46:25 997 1

原创 【Java】POI导出文件,设置密码

【代码】【Java】POI导出文件,设置密码。

2023-09-18 13:51:45 1496

原创 时间字段转换JSON格式问题

【代码】时间字段转换JSON格式问题。

2023-07-12 16:50:26 141 1

原创 【SQL】查询当前表一次都没成功的数据

【代码】【SQL】查询当前表一次都没成功的数据。

2023-07-12 15:09:41 142 1

原创 【SQL】查询当前表一次都没成功的数据

【代码】【SQL】查询当前表一次都没成功的数据。

2023-06-13 14:23:15 110 1

原创 使用lamda表达式实现行转列

【代码】使用lamda表达式实现行转列。

2023-06-12 17:34:09 289 1

原创 【内存泄漏】Java程序内存泄漏,导致GC频繁,CPU飙升不下

这是因为内存泄漏会占用一些内存,而这些内存没有被正确释放,使得垃圾回收器无法回收这些内存,从而导致了内存的浪费。因此,尽管内存使用率很低,但由于内存泄漏导致了内存占用的浪费,垃圾回收仍然可能频繁发生。如果存在内存泄漏,应该定位并修复它们,以避免内存占用浪费和频繁的垃圾回收。Java虚拟机会定期扫描堆内存中的对象,当发现某个对象没有任何引用时,就会将其标记为垃圾,然后由垃圾回收器进行回收。2.当程序创建了大量的临时对象,且这些对象生命周期很短,一旦它们的作用域结束就会成为垃圾,会由Minor GC回收。

2023-05-06 15:50:55 1841 1

原创 Excel添加水印

【代码】Excel添加水印。

2023-03-21 16:46:02 682

空空如也

空空如也

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

TA关注的人

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