zoukankan      html  css  js  c++  java
  • 分布式系统系列--(一)单机系统的扩展以及负载均衡

    垂直扩展和水平扩展

    随着应用系统的业务量、用户量、数据量的增大,单机服务器的处理以及存储能力都会很有限,所以需要我们通过系统扩展的形式来提升应用系统的性能。而一般的提升系统性能的方式分为垂直扩展和水平扩展两种。

    垂直扩展

    垂直扩展,一般采用提升单机服务器的配置,比如CPU、内存、网卡、硬盘灯。但是由于摩尔定律发展缓慢的原因(也就是说硬件的更新速度难以匹配当前的应用服务器需求),以及我们通过垂直扩展所达到的效果它花费的金钱会更多的原因,我们一般会水平和垂直相结合的方式来进行系统扩展。

    摩尔定律:当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也提升一倍。
    同时对于JVM来说,我们要尽量避免GC时stop-the-world的时间,而JVM的性能又一定依赖于内存的大小。

    水平扩展

    在系统能够支持水平扩展的情况下,通过增加服务器的形式来对系统进行集群,从而提升系统性能。而水平扩展之后,当用户发出一个请求后,哪一台服务器来处理这个请求呢?这时就需要通过网络负载均衡的技术来对请求进行分发。

    负载均衡

    负载均衡(Load balancing)一种计算机技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或者其他资源中分配负载,以达到最优化资源使用、最大化吞吐率、最小化响应时间同时避免过载的目的

    特点--使用带有负载均衡的多个服务器组件,取代单一的组件,可以通过冗余提高系统可靠性。(负载均衡服务通常是由专用软件和硬件完成的)
    主要作用--将大量作业合理的分摊到多个操作单元上进行执行,用于解决互联网架构中的高并发和高可用的问题
    分类--分为**客户端负载均衡和服务端的负载均衡。
    目的

    • 高性能--高并发、快速响应
    • 高可靠--集群高可靠、故障切换、故障恢复和扩容
    • 高可用--可用性=平均无故障时间/(平均无故障时间+平均修复时间),衡量指标:99%、99.9%、99.99%...
    • 可伸缩--节点下线和扩容
    • 可防护

    实现方式

    • 硬件实现--(F5:BIG-IP、A10、Citrx:Netscaler等)
    • 软件实现--LVS、NGINX、HAPROXY

    协议层划分

    • 链路层 --LVS
    • 网络层 --LVS、路由
    • 传输层 --LVS、HAPROXY
    • 应用层 --HAPROXY、NGINX

    类型的技术选择

    • 功能需求--协议支持、调度算法、会话保持、SSL加速、可用性等
    • 性能需求--吞吐量(bps)、新建连接数(cps)、并发连接数
    • 成本--软硬件成本、人力成本、时间成本
    • 真实和未来需求
  • 相关阅读:
    20165319第五周java学习笔记
    20165319 20165335 结对学习创意照
    20165215 结对编程——四则运算第二周
    20165215 2017-2018-2 《Java程序设计》第八周学习总结
    2017-2018-2 20165215 实验二 Java面向对象程序设计
    20165215 结对编程——四则运算第一周
    20165215 2017-2018-2 《Java程序设计》第7周学习总结
    20165215 2017-2018-2 《Java程序设计》第6周学习总结
    20165215 实验一 Java开发环境的熟悉
    20165215 2017-2018-2 《Java程序设计》第5周学习总结
  • 原文地址:https://www.cnblogs.com/mr-ziyoung/p/13719788.html
Copyright © 2011-2022 走看看