- 博客(19)
- 收藏
- 关注
原创 Redis Stream做消息队列
消息队列用于应用间通信,“消息”是两个应用间传输的数据单位。今天介绍一款轻量级、用于小型项目间、相对可靠的队列——redis stream
2024-09-30 00:33:06 771
原创 一个中间层的思考
背景是这样的,有一个Java服务(客户端),用到了自研大模型(服务端)的调用,而这个Java程序和三个大模型在一台服务器上跑着,在正常数据量的情况下服务器倒也没什么问题,凡事都有二八定律,面对特定大数据量时,并行下调用大模型服务器有点吃不消,考虑在客户端和服务端加一层服务,将客户端的请求串行化,就是客户端多个请求进入队列排队等待,服务端一条一条的消化队列中的任务。总结,考虑的就是服务器性能问题,加入MQ消息队列会额外增加服务器的负担,表现甚至会不如现在,属于丢了西瓜捡芝麻,得不偿失。
2024-09-13 23:19:29 301
原创 Netty详解(四):Channel介绍
在Java NIO中,涉及到网络连接的通道有两个:一个是SocketChannel,负责连接的数据传输;提供了对网络连接的抽象,通过它你可以执行基本的读写操作,比如读取数据、写入数据、绑定端口等。它还负责触发各种I/O事件,比如连接建立、关闭、读取就绪等。文件通道,顾名思义,专门操作磁盘文件的通道。需要注意的地方,FileChannel为阻塞模式,不能设置为非阻塞模式。这个接口的设计是为了支持多路复用I/O操作,即在一个单独的线程中监控多个通道的I/O活动。读取DatagramChannel。
2024-09-11 09:24:23 866
原创 MySQL调优
数据库查询快慢是影响项目性能的一大因素,对于数据库,我们除了要优化SQL,更重要的是得先找到需要优化的SQL语句。MySQL数据库有一个“慢查询日志”功能,用来记录查询时间超过某个设定值的SQL,这将极大程度帮助我们快速定位到问题所在,以便对症下药。
2024-01-03 22:17:19 949
原创 Netty详解(三):Pipeline介绍
Pipeline是一条Netty管道流水线,一条管道需要很多Handler处理器来处理业务。Netty的业务处理器流水线ChannelPipeline是基于责任链设计模式(Chain of Responsibility)来设计的,内部是一个双向链表结构,能够支持动态地添加和删除Handler业务处理器。
2023-08-19 17:57:51 1062
原创 Netty详解(二):异步回调Future介绍
Netty源码中大量使用异步回调机制,不管是connect还是write,甚至bind操作都是异步回调。Netty的I/O操作都是异步的,这归功于Netty两大接口Future和Promise
2023-08-18 13:44:27 656
原创 Netty详解(一):ByteBuf介绍
每当需要传输数据时,就必须有一个buffer缓冲区。Java NIO API自带的ByteBuffer操作繁琐,没有自动回收机制。Netty的ByteBuf等同于JDK的ByteBuffer,在进行channel数据传输时,ByteBuf缓冲区组件相比于ByteBuffer更加快捷更加高效地操作内存缓冲区。
2023-08-15 04:27:07 532
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人