当前位置: 首页 > news >正文

做自适应网站设计搜索引擎优化的技巧有哪些

做自适应网站设计,搜索引擎优化的技巧有哪些,学做网站论坛熊掌,新手学做网站推荐软件Netty是一款用于创建高性能网络应用程序的高级框架。Netty的核心组件如下: Channel回调Future事件和ChannelHander Channel channel是Java NIO的一个基本构造。可以把Channel看作是传入或传出数据的载体。它可以被打开或关闭,连接或断开连接。 回调 …

Netty是一款用于创建高性能网络应用程序的高级框架。Netty的核心组件如下:

  • Channel
  • 回调
  • Future
  • 事件和ChannelHander

Channel

channel是Java NIO的一个基本构造。可以把Channel看作是传入或传出数据的载体。它可以被打开或关闭,连接或断开连接。

回调

Netty在内部使用了回调来处理事件:当一个回调被触发时,相关的事件可以被一个ChannelHandler的实现处理。
如:

public class ContentHandler extends ChannelInboundHandlerAdapter {public void channelActive(ChannelHandlerContext ctx) throws Exception {System.out.println("client " + ctx.channel().remoteAddress() + " connected");}
}

Future

Future提供了另一种在操作完成时通知应用程序的方式。这个对象可以看作是一个异步操作的结果的占位符,它将在未来的某个时刻完成,并提供对其结果的访问。
JDK预置了java.util.concurrent.Future,但是其所提供的实现只允许手动检查对应的操作是否已经完成,或者一直阻塞直到它完成。Netty提供了它自己的实现——ChannelFuture,用于在执行异步操作的时候用。每个Netty的io操作都将返回一个ChannelFuture,也就是说它们都不会阻塞。Netty是完全异步和事件驱动的。
使用方法如下:

	Channel channel = ... ;ChannelFuture future = channel.connect(new InetSocketAddress("192.168.0.1", 25));future.addListener(new ChannelFutureListener() {public void operationComplete(ChannelFuture future) {if(future.isSuccess()) {ByteBuf buffer = Unpooled.copiedBuffef("Hello", Charset.defaultCharset());ChannelFuture wf = future.channel().writeAndFlush(buffer);} else {future.cause().printStackTrace();	}}});

事件和ChannelHandler

Netty使用不同的事件来通知我们状态的改变或操作的状态。这使得我们能够根据已经发生的事件来触发适当的动作。Netty是一个网络编程框架,所以事件是按照它们与入站或出站数据流的相关性进行分类的。可能由入站数据或者相关的状态更改而触发的事件包括:

  • 连接已被激活或连接失活

  • 数据读取

  • 用户事件

  • 错误事件
    出站事件是未来将会触发的某个动作的操作结果,这些动作包括:

  • 打开或关闭到远程节点的连接

  • 将数据写到或冲刷到套接字

每个事件都可以被分发给ChannelHandler类中的某个用户实现的方法。下图展示了一个事件是如何被一个这样的ChannelHandler链处理的。
在这里插入图片描述
你可以认为每个ChannelHandler的实例都类似于一种为了响应特定事件而被执行的回调。

合在一起

Future、回调和ChannelHandler

Netty的异步编程模型是建立在Future和回调的概念之上的,而将事件派发到ChannelHandler的方法则发生在更深的层次上。结合在一起,这些元素就提供了一个处理环境,使你的应用程序逻辑可以独立于任何网络操作相关的顾虑而独立地演变。这也是Netty的设计方式的一个关键目标。
拦截操作以及高速地转换入站数据和出站数据,都只需要你提供回调或利用操作返回的Future。这使得链接操作变得既简单又高效,并且促进了可重用的通用代码的编写。

选择器、事件和EventLoop

Netty通过触发事件将Selector从应用程序中抽象出来,消除了所有将需要手动编写的派发代码。在内部,为每个Channel分配一个EventLoop,用以处理所有事件,包括:

  • 注册感兴趣的事件
  • 将事件派发给ChannelHandler
  • 安排进一步的动作

EventLoop本身只由一个线程驱动,其处理了一个Channel的io事件,并且在该EventLoop的整个生命周期内都不会改变。这个简单而强大的设计消除了你所有可能有的在ChannelHandler实现中需要进行同步的任何顾虑,因此你可以专注于提供正确的逻辑,用来在有感兴趣的数据要处理的时候执行。

http://www.ritt.cn/news/21079.html

相关文章:

  • 中小企业建网站网址最新连接查询
  • 网站换主推关键词会怎么样长沙大型网站建设公司
  • 响应式网站建设平台网站推广的途径和方法
  • 淘宝做网站建设靠谱吗线上推广的渠道有哪些
  • 金蝶网站建设公司案例搜索引擎推广步骤
  • 建网站做点什么好seo网络优化招聘
  • 至高建设集团 网站口碑营销的优势
  • 网站建设的优势与不足服务器ip域名解析
  • 杭州网站建站平台万网阿里云域名查询
  • 泰州网站建设报价太原seo建站
  • 做暧暧暖网站欧美网络营销的12种手段
  • 建设银行网站怎么开通手机短信线下推广
  • 抖音代运营合同模板免费完整版搜索引擎营销优化策略有哪些
  • 最近中文字幕mv在线视频广州百度快速优化排名
  • 网站运营小白可以做吗宁德市人社局官网
  • 简答网站建设流程有哪些桌面百度
  • 如何自己做网站推广淘宝客百度手机浏览器下载
  • wordpress限制登陆页纯手工seo公司
  • 杭州网站建设网站制作四川刚刚发布的最新新闻
  • 重庆建设工程信息网站网站seo入门基础教程
  • 建设网站的意义东莞网站推广营销网站设计
  • 上海建网站的公司优化设计六年级下册语文答案
  • 深圳网站制作公司 讯推广优化网站
  • 网站系统繁忙怎么办seo做得比较好的公司
  • 网站做非经营性广告需备案中国去中心化搜索引擎
  • 宁波建设监理协会网站seo点击器
  • 国内 免费 云服务器关键词优化意见
  • 合肥公司门户网站制作seo网站监测
  • 高新网站建设多少钱有别人的交易链接怎么交易
  • 如何做本地网站快速优化seo