加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

从0到1,Java Web网站架构搭建的技能演进

发布时间:2017-11-01 13:07:34 所属栏目:建站 来源:52itstyle.com
导读:副问题#e# 注:事变也有几何年了,无论是身边碰着的照旧耳间听闻的,多几几何也积攒了本身的一些履历和思索,虽然,我并没有打仗太多高峻上的漫衍式架构实践,以是总结的履历相比拟力琐屑,接待各人随时增补。 俗话说得好,冰冻三尺非一日之寒,滴水穿石非

02、漫衍式 Session

各人都知道,处事一样平常分为有状态和无状态,而漫衍式 Session 就是针对有状态的处事。

漫衍式 Session 的几种实现方法:

  • 基于数据库的 Session 共享。

  • 基于 resin/tomcat web 容器自己的 Session 复制机制。

  • 基于 oscache/Redis/memcached 举办 Session 共享。

  • 基于 cookie 举办 Session 共享。

漫衍式 Session 的几种打点方法:

  • Session Replication 方法打点 (即 Session 复制)。

    简介:将一台呆板上的 Session 数据广播复制到集群中别的呆板上。

    行使场景:呆板较少,收集流量较小。

    利益:实现简朴、设置较少、当收集中有呆板 Down 掉时不影响用户会见。

    弱点:广播式复制到别的呆板有必然延时,带来必然收集开销。

  • Session Sticky 方法打点。

    简介:即粘性 Session、当用户会见集群中某台呆板后,逼迫指定后续全部哀求均落到此呆板上。

    行使场景:呆板数适中、对不变性要求不长短常苛刻。

    利益:实现简朴、设置利便、没有特殊收集开销。

    弱点:收集中有呆板 Down 掉时,用户 Session 会丢失、轻易造成单点妨碍。

  • 缓存齐集式打点。

    简介:将 Session 存入漫衍式缓存集群中的某台呆板上,当用户会见差异节点时先从缓存中拿 Session 信息。

    行使场景:集群中呆板数多、收集情形伟大。

    利益:靠得住性好。

    弱点:实现伟大,不变性依靠于缓存的不变性、Session 信息放入缓存时要有公道的计策写入。

今朝出产中行使到的:

  • 基于 Tomcat 设置实现的 Mem Cache 缓存打点 Session 实现(贫困)。

  • 基于 Os Cache 和 shiro 组播的方法实现(收集影响)。

  • 基于 Spring-Session+Redis 的方法实现(最得当)。

03、负载平衡计策

负载平衡计策的是非及着实现的难易水平有两个要害身分:负载平衡算法,对收集体系状况的检测方法和手段。

rr 轮询调治算法

顾名思义,轮询分发哀求。利益是实现简朴,弱点是不思量每台处事器的处理赏罚手段。

wrr 加权调治算法

我们给每个处事器配置权值 weight,负载平衡调治器按照权值调治处事器,处事器被挪用的次数跟权值成正比。利益是思量了处事器处理赏罚手段的差异。

sh 原地点散列

提取用户 IP,按照散列函数得出一个 key,再按照静态映射表,查出对应的 value,即方针处事器 IP。一单方针呆板超负荷,则返回空。

dh 方针地点散列

同上,只是此刻提取的是方针地点的 IP 来做哈希。利益是以上两种算法都能实现统一个用户会见统一个处事器。

lc 起码毗连

优先把哀求转发给毗连数少的处事器。利益是使得集群中各个处事器的负载越发匀称。

wlc 加权起码毗连

在 lc 的基本上,为每台处事器加上权值。算法为:(勾当毗连数*256+非勾当毗连数)÷权重 ,计较出来的值小的处事器优先被选择。利益是可以按照处事器的手段分派哀求。

sed 最短祈望耽误

sed 跟 wlc 相同,区别是不思量非勾当毗连数。算法为:(勾当毗连数+1)*256÷权重,同样计较出来的值小的处事器优先被选择。

nq 永不列队

改造的 sed 算法,我们想一下什么环境下才气“永不列队”,那就是处事器的毗连数为 0 的时辰,那么若是有处事器毗连数为 0,平衡器直接把哀求转发给它,无需颠末 sed 的计较。

LBLC 基于局部性的起码毗连

平衡器按照哀求的目标 IP 地点,找出该 IP 地点最近被行使的处事器,把哀求转发之,若该处事器超载,则回收起码毗连数算法。

LBLCR 带复制的基于局部性的起码毗连

平衡器按照哀求的目标 IP 地点,找出该 IP 地点最近行使的“处事器组”,留意,这里不是详细某个处事器,然后回收起码毗连数算法,从该组中挑出详细的某台处事器出来,把哀求转发之。

若该处事器超载,那么按照起码毗连数算法,从在集群的非本处事器组的处事器中,找出一台处事器出来,插手本处事器组,然后把哀求转发之。

读写疏散

MySQL 主从设置,读写疏散并引入中间件,开源的 MyCat,阿里的 DRDS 都是不错的选择。

假如是对高可用要求较量高,可是又没有响应的技能保障,提议行使阿里云的 RDS 可能 Redis 相干数据库,省事省力又省钱。

全文检索

假若有搜刮营业需求,引入 solr 可能 elasticsearch 也是一个不错的选择,不要什么都塞进相关型数据库。

缓存优化

引入缓存无非是为了减轻后端数据库处事的压力,防备其"停工"。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读