zoukankan      html  css  js  c++  java
  • cometd使用-bayeux协议(读法:贝叶)

    bayeux.createChannelIfAbsent("/**",  new ServerChannel.Initializer() {
    
                @Override
                public void configureChannel(ConfigurableServerChannel channel) {
                    // TODO Auto-generated method stub
                    
                }
                
            });

    自动创建channel,并使用配置

    解决问题:

    1.自动创建隧道

    2.告诉cometd何时销毁这些隧道。

    bayeux.addExtension(new TimesyncExtension());

    解决问题:防止服务器长时间闲置。计时。

    Bayeux规范定义了三种类型的通道:元隧道、服务隧道和广播隧道。

    /meta/前缀的是元隧道 Cometd实现创建meta通道;应用程序无法创建新的元通道

    /service/前缀的是服务隧道 应用程序创建服务通道,在客户端和服务器之间的通信请求/响应风格的情况下使用(而不是发布/订阅广播频道的通信方式,见下文)

    其他的为广播隧道。

    cometd有三种会话:

    客户端会话

    服务端会话

    本地会话

    客户端发送消息过程:

    发送消息-》选择隧道-》是否有extension拦截过滤消息-》转换为json对象-》使用http或者websocket等传输到服务器端 -》 bayeux服务器处理

    服务器处理消息过程:

    1.检查服务器扩展拦截

    2.检查会话扩展拦截

    3.检查授权扩展拦截

    4.如果是service或者广播消息,消息通过bayeux扩展发送。

    5.调用server端的lisener,最后一次修改消息的机会。(如果是广播的话)

    Tomcat Connector三种运行模式(BIO, NIO, APR)的比较和优化

     
    Tomcat Connector的三种不同的运行模式性能相差很大,有人测试过的结果如下:
    这三种模式的不同之处如下:
    • BIO:
    一个线程处理一个请求。缺点:并发量高时,线程数较多,浪费资源。
    Tomcat7或以下,在Linux系统中默认使用这种方式。
    • NIO:
    利用Java的异步IO处理,可以通过少量的线程处理大量的请求。
    Tomcat8在Linux系统中默认使用这种方式。
    Tomcat7必须修改Connector配置来启动:
    <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" 
             connectionTimeout="20000" redirectPort="8443"/> 
    • APR:
    即Apache Portable Runtime,从操作系统层面解决io阻塞问题。
    Tomcat7或Tomcat8在Win7或以上的系统中启动默认使用这种方式。
    Linux如果安装了apr和native,Tomcat直接启动就支持apr。(安装方法:http://my.oschina.net/lsw90/blog/181161
  • 相关阅读:
    mysql查看所有的数据库
    查看/杀死mysql进程
    PL/SQL 保存页面布局
    Linux 隐藏文件和目录,显示隐藏的文件和目录
    win10插入U盘多显示了一个盘符
    Linux安装rz和sz命令
    PL/SQL链接Oracle出现乱码
    解决Tomcat: Can't load IA 32-bit .dll on a AMD 64-bit platform问题
    Eclipse集成Tomcat的配置步骤实例
    搭建Eclipse+MyEclipse开发环境
  • 原文地址:https://www.cnblogs.com/guochunyi/p/5731678.html
Copyright © 2011-2022 走看看