zoukankan      html  css  js  c++  java
  • nginx 与 tomcat 集群 一二事 (0)

    最近看了nginx以及tomcat的集群,通俗的做一下简单总结吧

    nginx 是一个http服务器,是由俄罗斯人发明的,目前主流的服务器,作为负载均衡服务器,性能非常好,最高支持5万个并发连接数,在淘宝被广泛使用(据说被淘宝的工程师优化到单机200万的并发,非常的厉害)

    单个tomcat最大支持的用户并发量默认是150,在测试过程中250左右开始会有性能的问题

    举个栗子,有3台tomcat,有N多请求同时经过nginx的时候,nginx作为一个路由,把请求分别分发给这3台tomcat,以此减少tomcat负重

    作为集群,当其中一台tomcat宕机,出现故障,那么nginx将会自动排除这个服务

    tomcat 与 nginx 之间通过ajp协议,这个协议提供很高的通信速度以及性能

    另外,nginx也能够存放静态资源,项目中会存在很多图片,以及静态页面,如果把这些静态资源放入nginx中,那么性能会提高,速度是毫秒级别的,非常快

    在动静分离的项目中,所有静态资源(HTML, CSS, JavaScript)都放入此服务器中,客户端请求到nginx,这样将会拦截大量的非动态请求,以此提高性能

    工作原理:

    在upstream bakend 中配置多个tomcat服务器,每个请求按照不同的时间顺序去请求不同的tomcat,如果在某一时段中有tomcat挂了,那么会被自动剔除

    ip_hash:主要用于解决session问题,使用后,每个用户访问的后端服务器就是固定的,session不会改变,这个也就是通常所说的粘性session,访问速度快,只与一个节点上的服务器通信,缺点就是如果这个节点挂了,用户的session信息也就没了

    *有粘性session那么就又非粘性session,非粘性session指的就是session在多个tomcat之间复制,节点挂了也能访问到,缺点就是在大并发的时候性能有影响

    粘性和非粘性session都是基于msm的,也就是Memcached Session Manager; 话说tomcat和memcached 是无缝对接的

    1   <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
    2  memcachedNodes="n1:host1.yourdomain.com:11211,n2:host2.yourdomain.com:11211"
    3     sticky="false"
    4     sessionBackupAsync="false"
    5     lockingMode="uriPattern:/path1|/path2"
    6     requestUriIgnorePattern=".*.(ico|png|gif|jpg|css|js)$"
    7  transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
    8     />

    sticky="false" 指定为非粘性session

    简单示意图

    简单架构配置可以参考如下

    这是针对nginx的一些简单总结,接下来的文章将会深入对nginx进行详细探讨。

  • 相关阅读:
    交汇的火力
    1.4.5 动态字段
    1.4.4 复制字段
    1.4.3 定义字段
    Maven-编译打包
    1.4.2 solr字段类型--(1.4.2.7)字段属性使用案例
    1.4.2 solr字段类型--(1.4.2.6)使用外部文件和程序
    1.4.2 solr字段类型--(1.4.2.5)使用枚举字段
    1.4.2 solr字段类型--(1.4.2.4)使用Dates(日期)
    1.4.2 solr字段类型--(1.4.2.3)使用货币和汇率
  • 原文地址:https://www.cnblogs.com/leechenxiang/p/5327086.html
Copyright © 2011-2022 走看看