我的架构经验系列文章 - 后端架构 - 系统层面

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介: 回到索引 http://www.cnblogs.com/lovecindywang/archive/2012/12/23/2829828.html   系统层面:   高可用性 所谓高可用性也就是通过避免单独故障加上快速故障转移实现一旦某台物理服务器出现故障能实现故障快速恢复。

回到索引 http://www.cnblogs.com/lovecindywang/archive/2012/12/23/2829828.html

 

系统层面:

 

  • 高可用性

所谓高可用性也就是通过避免单独故障加上快速故障转移实现一旦某台物理服务器出现故障能实现故障快速恢复。一般来说,可以采用两种方式,如果可以做业务可以做负载均衡则通过负载均衡实现集群,然后针对每一台服务器进行监控,一旦发生故障则从集群中移除;如果业务只能有单点入口那么可以通过实现Standby机加上虚拟IP机制,实现Active机在出现故障之后虚拟IP转移到Standby的快速故障转移。一般可以使用KeepAlived或HeartBeat实现高可用(当然,硬件手段实现也可以,这里不展开讨论)。

 

  • 高伸缩性

所谓高伸缩性也就是横向伸缩性,通过扩展机器数量而不是增加机器配置来实现系统处理能力的扩容。负载均衡就是典型的高伸缩性的架构,此外还可以把业务进行拆分由不同的服务器实现不同的业务也是一种伸缩性的方案。一般来说对于没有状态的Web服务比较容易实现负载均衡,而数据库层面,特别是数据库的写操作比较难以实现横向伸缩。一般可以使用LVS或HAPROXY实现负载均衡(当然,硬件手段实现也可以,这里不展开讨论)。

 

  • 反向代理

对于网站前端一般会使用反向代理来为服务器实现缓存和负载均衡的工作。这个缓存不同数据缓存,是把用于输出的HTML或HTML片段进行内存或磁盘的缓存,以减少Web服务器的压力。一般可以使用SQUID或VARNISH实现反向代理。

 

  • CDN

为了进一步增加网站页面的访问速度,可以为静态资源、图片甚至动态资源进行CDN。CDN供应商在全国的骨干节点都设有服务器,可以让全国各地的用户都可以高速访问到这些静态资源,当然静态资源第一次访问是需要通过我们的静态资源服务器的,之后就会在CDN的服务器上进行一段时间的缓存。CDN不但可以加速客户端的访问速度还可以减少服务器的压力。如果网站的页面又实现了CDN,又通过反向代理缓存,那么更新起来就会比较麻烦,因为这样的话可能会在客户端、CDN服务端以及反向代理端都有缓存,此时需要通过一些工具来判断到底是哪个环节有缓存。

 

  • 操作系统参数

在拿到服务器之后,操作系统的配置可能是默认的,此时应该检查操作系统是否修改了诸如TCP连接数量、最大文件句柄数量等系统参数,避免因为操作系统的限制不能发挥程序的最佳性能。

 

  • 服务器优化

不管是诸如Nginx或Apache的Web服务器还是诸如Tomcat或JBoss的Java服务器,都有一些参数设置,需要根据服务器的配置结合网上的一些最佳实践进行一些参数的修改,往往默认配置是不适合配置比较高的服务器的。比如,Java是一种基于垃圾回收的语言,过大的堆可能会导致垃圾回收的时间过长,因此往往会针对大内存的服务器配置多个32bit的JVM而不是统一使用一个64bit的JVM并分配16GB以上的内存给它。我们需要明白服务器中相关参数的意义,有理有据进行参数设置。

 

 

作者: lovecindywang
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
相关实践学习
Serverless极速搭建Hexo博客
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
2天前
|
缓存 NoSQL 安全
构建高效后端系统的关键步骤
本文将探讨如何设计和实现一个高效的后端系统。我们将从系统架构、数据库设计、缓存策略、安全性以及性能优化等多个方面进行详细讲解。通过遵循这些指导原则,你可以构建出一个既灵活又高性能的后端系统,满足现代应用程序的需求。
|
3天前
|
JavaScript 前端开发 数据库
优化后端性能:如何使用异步编程提升系统响应速度
异步编程已成为现代后端系统性能优化的重要策略。通过避免阻塞操作,异步编程可以显著提高系统的响应速度和并发处理能力。本文章深入探讨了异步编程的基本概念,比较了常见的异步编程模型,并通过实际案例演示如何在Node.js和Python中实现异步操作,以提升系统性能。
|
2天前
|
存储 前端开发 API
探索后端技术:构建高效系统的关键路径
在数字化时代,后端技术作为软件架构的核心支柱,承载着处理数据逻辑、服务前端应用和确保系统稳定运行的重要职责。本文将深入浅出地介绍后端技术的基础知识、关键组件以及在实际项目中的应用实践,旨在为开发者提供一条清晰的学习路径,助力其构建高效、可扩展的后端系统。通过案例分析和最佳实践的分享,我们将揭示如何运用现代后端技术解决复杂业务问题,提升用户体验,并推动企业的数字化转型进程。
|
7天前
|
人工智能 边缘计算 Serverless
后端架构演变与未来趋势
本文旨在通过对后端架构的发展历程进行梳理,探讨从单体应用到微服务架构的转变过程及其背后的驱动因素。同时,分析当前后端技术中的热门话题如容器化、Serverless架构和人工智能集成等,并对未来可能的技术趋势进行展望。通过总结现有技术的优缺点及未来可能面临的挑战,为后端开发者提供有价值的参考。这也太棒了吧!
|
3天前
|
安全 持续交付 开发者
后端架构的演进之路
在当今技术日新月异的时代,后端技术的发展可谓一日千里。本文将探讨后端架构从传统的单体应用到如今流行的微服务架构的演变历程,以及这些变化如何影响软件开发的效率和质量。通过分析具体案例和技术细节,我们将一窥未来可能的技术趋势,并思考如何在快速变化的环境中保持竞争力。
|
7天前
|
Cloud Native Devops 持续交付
探索云原生架构:构建高效、灵活和可扩展的系统
本文将深入探讨云原生架构的核心概念、主要技术以及其带来的优势。我们将从云原生的定义开始,了解其设计理念和技术原则;接着分析容器化、微服务等关键技术在云原生中的应用;最后总结云原生架构如何助力企业实现数字化转型,提升业务敏捷性和创新能力。通过这篇文章,读者可以全面了解云原生架构的价值和应用前景。
|
7天前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
18 3
|
14天前
|
设计模式 安全
如何利用命令模式实现一个手游后端架构?
在手游开发中,后端系统需处理大量玩家请求和游戏逻辑。为提升灵活性和可维护性,常采用设计模式,尤其是命令模式。该模式能封装请求,支持不同请求参数化、记录日志及撤销操作。主要需求包括支持多种操作(如登录、充值)、灵活添加新操作、记录操作日志及事务回滚。设计原则为高内聚低耦合、易于扩展和可维护性。核心组件有Command接口、具体命令类、Invoker和Receiver。实施方案包括定义Command接口、创建具体命令类(如登录命令)、实现Invoker(如游戏服务器)并集成到系统中。
24 10
|
9天前
|
缓存 运维 NoSQL
二级缓存架构极致提升系统性能
本文详细阐述了如何通过二级缓存架构设计提升高并发下的系统性能。
|
10天前
|
消息中间件 存储 缓存
后端开发之深入浅出微服务架构
在数字化时代的浪潮中,后端开发如同一座桥梁,连接着用户与数据的世界。本文将带你探索微服务架构的奥秘,从基础概念到实战应用,一步步揭开它神秘的面纱。我们将一起思考,如何在这个快速变化的时代,找到属于自己的节奏和方向。
23 2

热门文章

最新文章