`
crazier9527
  • 浏览: 1013388 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SNA架构的几种实现方式

阅读更多

参考资料:
Shared Nothing Architecture与PHP的童话
Shared Nothing Architecture

   以往集群架构都采用Session共享模式进行设计,而后PHP等方面提出了SNA架构,主张Session不共享。SNA架构思想,无论对企业应用还是大型互联网站,极大提高了web应用的吞吐量和性能。
   一般SNA架构以集成分布式Cache例如 memcached 的方案居多,此处姑且称为 Cache模式。


   我结合公司电信项目的情况,以及思考,总结另一种方案,供参考。
   SNA思想的关键就是每个集群内web server实例不互相共享session,Cache模式主张session数据都放到分布式缓存中,意味着,逻辑上集群内还是要共享session信息;这种考虑源于负载均衡时,同一个IP发来的两个请求,可能走到不同的 Web Server上。

   因此,只要同一IP的两个请求转发到同一个 Web  server实例,那么就可以不需要全局的 session信息缓存。
   1) 我所在的移动项目下,采用 F5硬件负载均衡器,使用IP记忆机制实现了这一点。因此,各 web server实例的session无需共享,仍然保存在自己的session内存中,节省了网络开销和Cache命中查找时间。
   F5很贵,因此对于网站一般负担不起,但可以采用软件负载来做到这一点。

   切分模式的SNA架构:
   2) IP Memory(IP记忆):负载服务器记录 客户端IP -> ServerID 的关系,模拟F5;
   3) (Dispatch by Rule)按规则转发:IP记忆需要维护一张路由table, 因此,需要消耗一定内存,以及映射关系查找的时间;
      我们将客户端的所有IP看作一个集合 IP Set,按固定规则将其平均分配集群的server实例上去,这样就可以节省路由table的开销。 关键是分配算法,可以考虑的有:
      2.1) 简单数值法: IP各节加总 = X, 假定集群实例个数为 N,编号1-N, 那么每次请求选择的目标server id = X mod N。
      2.2) hash值法: 有的系统可能想基于 userid 进行请求分配, 那么可以采用 X = hashCode(userid), serverID = X mod N;
      具体情况下, 可以灵活选择使用那个数据项判断请求分配的逻辑。这个思想参考了  memcached 的集群管理思想。
   

   4) stickySession方式。
      一般apache等采用这种方式做负载均衡。但必须结合 jvmRoute。 第一次被分配的 web server必须返回一个 jvmRoute在response中,并由 apache 送到客户端浏览器,第二次请求发起时,request信息中将包含 JSESSIONID 和 对应的 jvmRoute, apache根据次找到对应的 server,完成 stickySession机制。


结论: 切分模式的SNA架构,基于规则进行请求转发,可以省去分布式Cache的使用,更进一步的提升系统吞吐量和响应性。

分享到:
评论

相关推荐

    SNA on linux 管理手册

    - **System Network Architecture (SNA):** SNA是IBM开发的一种网络架构,用于在大型机和其他计算机之间建立连接。它提供了一种灵活且高效的方式来管理不同类型的网络资源。 - **LU (Logical Unit):** LU是在SNA网络...

    网络游戏-SNA网络体系下交互数据的传输方法及装置.zip

    在网络游戏领域,SNA(System Network Architecture,系统网络架构)是一种传统的网络通信协议集,主要用于IBM大型机系统。然而,随着技术的发展,SNA的概念也被借鉴到其他领域,包括网络游戏中的数据传输。本文将...

    JavaEye论坛热点月报 总第8期

    - **SNA架构的几种实现方式**:探讨了系统网络架构(SNA)的不同实现方式,以及它们在现代网络环境中的应用和优缺点。 4. **项目实战** - **山寨开心网停车外挂开发**:分享了一个基于社交网络游戏的外挂开发案例...

    CCDP 640-025

    这是因为FEP在SNA架构中起到了桥接主机和终端设备的作用,而一个独立的FEP没有连接外围设备时,可以看作是一个相对独立的单元或“子区域”。 ### 知识点四:主域信任关系 在多域环境中,主域之间的信任关系是至关...

    基于Spark图计算的社会网络分析系统的设计和实现——顶点分析1

    8. **系统设计与实现**:详述了系统架构的设计,包括数据输入、处理流程、结果输出等模块,以及如何在实际环境中部署和运行该系统。 通过这样的系统,研究人员和分析师可以更有效地探索社会网络中的模式、趋势和...

    -CSDN云服务器音乐

    音乐文件SNA.wav和WIN.wav是两种常见的音频格式,WAV是一种无损音频格式,它保留了原始录音的所有细节,但文件通常较大。这种格式适用于专业音频编辑和高质量的音乐播放。另一方面,如果没有更多上下文,SNA可能是...

    网络协议图

    本文将详细解析标题所提及的几种网络协议,并基于描述中提到的TCP/IP、NOVELL、IBM、ISO、DEC、APPLETALK等协议进行深入探讨。 首先,我们来了解一下OSI(开放系统互连)模型,这是描述网络通信的一个通用框架。它...

    网络管理\路由技术介绍

    本文将详细介绍几种关键的技术,包括串行隧道(Serial Tunnel)、通道接口处理器(Channel Interface Processor, CIP)、DLSw(Data Link Switching)技术、MIP(Multiprotocol Interface Processor)的E1接口特性...

    JHMI综合布线英文文档

    文档进一步讨论了几种当前流行和未来可能广泛使用的通信技术,包括: 1. **ISDN (Integrated Services Digital Network)**:一种能够同时传输语音和数据信号的数字通信标准,适用于高质量的语音通话和数据传输。 2....

    IBM_AIX RS/6000培训教材

    - AIX支持多种网络协议,如TCP/IP和SNA,能够轻松实现与其他系统的互联互通。 - **1.1.4 终端支持:** - 提供了丰富的终端支持功能,允许用户通过多种方式接入系统。 **1.2 AIX系统架构** - AIX基于微内核架构...

    计算机网络复习习题与答案

    1. **模拟信号与数字信号**:模拟信号是连续变化的信号,而数字信号则是离散的信号,只取有限的几种值。模拟信号和数字信号在传输过程中的特点和适用场景有所不同。 2. **频分复用与时分复用**:频分复用是将不同...

    路由器配置和桌面协议

    在现代网络架构中,路由器与桥接技术扮演着至关重要的角色,尤其是在实现不同网络间的互连互通方面。本文档旨在深入解析《路由器配置和桌面协议》中的关键概念——透明桥接技术。这一技术对于构建高效、稳定的网络...

    OSI七层模型详解

    本节简要介绍几种商用网络体系结构及其特点。 ##### 1. SNA(System Network Architecture) SNA是由IBM公司在1974年推出的,主要用于构建以大型主机为中心的集中式网络架构。SNA协议同样分为七层,但与OSI模型在...

    IBM的SAN交换机

    在SAN架构中,交换机扮演着核心角色,它们可以是交换式网络或共享式网络,如FC-AL(Fibre Channel Arbitrated Loop)环网。交换式网络通过多个交换机组成的光纤通道交换矩阵,允许数千个节点相互连接,提供更高的可...

    计算机网络技术自考试题.pdf

    1. **通信复用技术**:在题目中提到了几种不同的复用技术,如频分多路复用(FDM)、时分多路复用(TDM)、波分多路复用(WDM)以及码分多址(CDMA)。T1信道是时分多路复用的实例,它将一个信道划分为多个时间片,每...

    zigbee primer

    - **网络架构**:Zigbee网络包括三种设备类型:协调器(Coordinator)、路由器(Router)和终端设备(End Device)。其中,协调器负责创建和维护网络;路由器用于转发数据;终端设备则只进行数据交换。 - **通信方式...

    Cisco路由器手册

    AAL类型根据所传输数据的特点被细分为几种不同的标准: 1. **AAL1 (AAL Type 1)**:设计用于传输固定比特率(CBR)的流量,如音频和视频信号,同时也支持基于时分复用(TDM)的电路仿真,例如DS1和E1电路。 2. **AAL2...

    数据通信:4-网络基础.pdf

    数据通信和网络基础是信息技术领域的核心概念,涵盖了网络的架构、功能、传输媒介以及通信协议等方面。本篇文档主要讨论了以下几个关键知识点: 1. **差错控制**:在数据通信中,差错控制是为了确保数据在传输过程...

Global site tag (gtag.js) - Google Analytics