分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

rocketmq中的NettyRemotingClient类的简单分析

发布时间:2023-09-06 02:20责任编辑:白小东关键词:暂无标签


rocketmq中的NettyRemotingClient类的简单分析
???????Bootstrap handler = this.bootstrap.group(this.eventLoopGroupWorker).channel(NioSocketChannel.class)
???????????.option(ChannelOption.TCP_NODELAY, true)
???????????.option(ChannelOption.SO_KEEPALIVE, false)
???????????.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, nettyClientConfig.getConnectTimeoutMillis())
???????????.option(ChannelOption.SO_SNDBUF, nettyClientConfig.getClientSocketSndBufSize())
???????????.option(ChannelOption.SO_RCVBUF, nettyClientConfig.getClientSocketRcvBufSize())
???????????.handler(new ChannelInitializer<SocketChannel>() {
???????????????@Override
???????????????public void initChannel(SocketChannel ch) throws Exception {
???????????????????ChannelPipeline pipeline = ch.pipeline();
???????????????????if (nettyClientConfig.isUseTLS()) {
???????????????????????if (null != sslContext) {
???????????????????????????pipeline.addFirst(defaultEventExecutorGroup, "sslHandler", sslContext.newHandler(ch.alloc()));
???????????????????????????log.info("Prepend SSL handler");
???????????????????????} else {
???????????????????????????log.warn("Connections are insecure as SSLContext is null!");
???????????????????????}
???????????????????}
???????????????????pipeline.addLast(
???????????????????????defaultEventExecutorGroup,
???????????????????????new NettyEncoder(),
???????????????????????new NettyDecoder(),
???????????????????????new IdleStateHandler(0, 0, nettyClientConfig.getClientChannelMaxIdleTimeSeconds()),
???????????????????????new NettyConnectManageHandler(),
???????????????????????new NettyClientHandler());
???????????????}
???????????});
???????
???????????????分析:一个是initChannel是抽象方法,ChannelInitializer是一个抽象类,这里是对抽象类进行实现,创建了一个匿名类;
???????????????这里的把匿名类通过handle方法进行赋值给AbstractBootstrap的handle属性,后面会使用到该对象,并调用该对象的initChannnel方法;
???????????????其实,这里你可以看做是一种注册的结构,这样给客户端更多的开放接口,让客户端自己来控制一些内部的逻辑;
???????????????

rocketmq中的NettyRemotingClient类的简单分析

原文地址:https://www.cnblogs.com/big1987/p/9888525.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved