• Tomcat集群Cluster实现原理


    一、Tomcat集群

            Tomcat集群的问题之一是如何处理Session,Session是有状态的,请求到了Tomcat,后续流传是要根据上下文(Context)来进行的。我们可以改造应用改为无状态的,但是这个对应用的要求比较高,或者有些就不可能这样实现。
     

    二、Session处理

            1、比较常规的做法是把Session存到Redis里面,集群里面的每台主机都能访问。
            2、把每台主机的Session复制给其他的主机。
     

    三、Tomcat原生处理方式

            Tomcat原生自带的处理方式就是把每台机器的Session复制给其他主机,或者优化处理了一下,指定一台备用机器,每台主机把Session都复制到备用机器,这样也能把Session同步到每一台机器
     

    四、具体实现方式

           这里面用到了网络中的组播技术,要理解组播,我们先看一下什么是单播、广播。组播是为了解决单播和广播的问题而出现的。

          1、单播在发送者和每一接收者之间实现点对点网络连接。如果一台发送者同时给多个的接收者传输相同的数据,也必须相应的复制多份的相同数据包。如果有大量主机希望获得数据包的同一份拷贝时,将导致发送者负担沉重、延迟长、网络拥塞;为保证一定的服务质量需增加硬件和带宽。

          2、广播指在IP子网内广播数据包,所有在子网内部的主机都将收到这些数据包。广播意味着网络向子网每一个主机都投递一份数据包,不论这些主机是否乐于接收该数据包。所以广播的使用范围非常小,只在本地子网内有效,通过路由器和网络设备控制广播传输。

          3、组播在发送者和每一接收者之间实现点对多点网络连接。如果一台发送者同时给多个接收者传输相同的数据,也只需复制一份相同的数据包。它提高了数据传送效率,减少了骨干网络出现拥塞的可能性。组播解决了单播和广播方式效率低的问题。当网络中的某些用户需求特定信息时,组播源(即组播信息发送者)仅发送一次信息,组播路由器借助组播路由协议为组播数据包建立树型路由,被传递的信息在尽可能远的分叉路口才开始复制和分发。

     

    五、总结

           感觉Tomcat选择组播来实现集群是一种比较实用的考虑,性价比挺高的,不需要额外的组件来支持,低配置两台机器就可以实现,基于已有的基础实施,网络中已经实现了组播功能,适合比较小型的,不是高并发的系统。
  • 相关阅读:
    android136 360 拖拽
    android134 360 07 归属地查询
    android133 360 06 一键锁频,清楚数据
    转载:必须收藏!50个最流行的免费Kubernetes工具集
    SQL Data Compare 对比 SQLserver数据
    PLSQL 使用ODBC 数据源导入来自SQLSERVER的数据
    PLSQL 使用技巧汇总贴(一个坑)
    简单的数据库备份语句--Oracle+SQLSERVER
    SQLSERVER 导出表数据为insert 语句
    Oracle 使用PLSQL 导出 一个表的insert 语句
  • 原文地址:https://www.cnblogs.com/EllisQian/p/15223575.html
Copyright © 2020-2023  润新知