netty channelPool连接池怎么使用
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,本篇内容介绍了"netty channelPool连接池怎么使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够
千家信息网最后更新 2025年01月24日netty channelPool连接池怎么使用场景:当我们作为客户端 向服务端发起连接时,做数据传输时 如果目标服务端只有一个或者可能同时会有多个请求使用channel[多种不同业务数据]。那我们对服务端的channel connect 可以进行池化。方便提高channel 利用率。
本篇内容介绍了"netty channelPool连接池怎么使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
场景:当我们作为客户端 向服务端发起连接时,做数据传输时 如果目标服务端只有一个或者可能同时会有多个请求使用channel[多种不同业务数据]。那我们对服务端的channel connect 可以进行池化。方便提高channel 利用率。
如果流数据推送【持续不断的数据 向服务端进行推送 没有必要使用channelPool。也没有必要释放channel】
核心接口:ChannelPool
public ChannelPool newPool(Bootstrap bootstrap) { return new FixedChannelPool(bootstrap, iridiumClientChannelHandler, protocolOptions.getMaxConnections()); }}
核心实现类:
public class FixedChannelPool extends SimpleChannelPool
一个抽象类
public abstract class AbstractChannelPoolHandler implements ChannelPoolHandler { @Override public void channelAcquired(@SuppressWarnings("unused") Channel ch) throws Exception { // NOOP } @Override public void channelReleased(@SuppressWarnings("unused") Channel ch) throws Exception { // NOOP }}
Channel.close() 不是断开连接 是 从eventLoop 移除 注销
关于channelPool 健康检查:仅仅是获取连接前
ChannelHealthChecker 这个类可以判定连接池中的chanel 是否有效
public interface ChannelPoolHandler {
/**
* Called once a {@link Channel} was released by calling {@link ChannelPool#release(Channel)} or
* {@link ChannelPool#release(Channel, Promise)}.
*
* This method will be called by the {@link EventLoop} of the {@link Channel}.
*/
void channelReleased(Channel ch) throws Exception;
/**
* Called once a {@link Channel} was acquired by calling {@link ChannelPool#acquire()} or
* {@link ChannelPool#acquire(Promise)}.
*
* This method will be called by the {@link EventLoop} of the {@link Channel}.
*/
void channelAcquired(Channel ch) throws Exception;
/**
* Called once a new {@link Channel} is created in the {@link ChannelPool}.
*
* This method will be called by the {@link EventLoop} of the {@link Channel}.
*/
void channelCreated(Channel ch) throws Exception;
}
/* 当链接创建的时候添加channelhandler,只有当channel不足时会创建,但不会超过限制的最大channel数*/
@Override
protected void initChannel(Channel ch) throws Exception {
channelPoolHandler.channelCreated(ch);
}
}
"netty channelPool连接池怎么使用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
数据
服务
必要
内容
只有
更多
核心
知识
推送
不同
实用
最大
有效
健康
学有所成
接下来
不断
业务
会创
利用率
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库设计产品库存管理系统
幼儿园网络安全事件应急演练方案
白银市历史数据库
财政局网络安全防护工作总结
进销存软件开发实例
丰台区软件开发服务电话
好铃声软件开发
网络安全硬件措施
顶级网络安全顶会有哪些
软件开发如何保证代码外泄
浙江网络安全硬件设备厂家
串口服务器可以接两个交换机吗
软件开发dell笔记本电脑
数据条覆盖了数据库
江西三套直播网络安全
网络安全大作业 信息化建设
深圳市海云安网络技术
将自己电脑作为服务器
服务器几u
虎符网络安全吗
厦门天气预报软件开发
数据库视图存在哪儿
胡杨网络技术有限公司
杭州erp软件开发
杭州冷库软件开发
江苏服务器维修哪家好
网络安全清明祭英烈的作文
寻找软件开发投资商说说
每个人都是网络安全守护者吗
数据库连接无法启动