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

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月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
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
目录
打赏
0
0
0
0
4
分享
相关文章
Java 事件驱动架构设计实战与 Kafka 生态系统组件实操全流程指南
本指南详解Java事件驱动架构与Kafka生态实操,涵盖环境搭建、事件模型定义、生产者与消费者实现、事件测试及高级特性,助你快速构建高可扩展分布式系统。
27 0
如何开发供应商管理系统中的通知公告板块(附架构图+流程图+代码参考)
供应商管理系统中的通知公告模块是企业信息传递的关键环节。本文探讨了如何构建高效的通知公告板块,涵盖公告发布、管理、处理流程及数据分析,并提供开发技巧与常见问题解答,助力企业实现信息高效传达。
用系统架构思维,告别“意大利面条式”系统提示词
本文作者分享了自己在研究如何编写强大且可维护的系统级提示词时的经历。
开源赋能双碳:MyEMS 能源管理系统的架构与实践价值
在全球碳中和趋势与“双碳”目标推动下,能源管理趋向精细化与智能化。MyEMS是一款基于Python开发的开源能源管理系统,具备灵活适配、功能全面的优势,覆盖工厂、建筑、数据中心等多元场景。系统支持能源数据采集、分析、可视化及设备管理、故障诊断、AI优化控制等功能,提供“监测-分析-优化”闭环解决方案。遵循“国家+省级+接入端”三级架构,MyEMS在重点用能单位能耗监测中发挥关键作用,助力实现能源效率提升与政策合规。开源模式降低了技术门槛,推动“双碳”目标落地。
64 0
如何开发一套设备管理系统?(附架构图+流程图+代码参考)
随着企业对生产效率和设备安全的重视,设备管理系统成为企业运营的重要工具。该系统可实现设备的全生命周期管理,涵盖点检、巡检、报修、维修、保养及备件管理等功能,提升设备使用率,降低运营成本。通过自动化管理与实时数据记录,系统为企业提供高效、可靠的管理支持。本文详解系统开发流程,并提供代码示例,帮助理解实现过程。
如何开发供应商管理系统中的物料管理板块(附架构图+流程图+代码参考)
供应商管理系统中的物料管理板块是企业供应链管理的核心部分,涉及物料采购、库存、资质及价格管理。它通过标准化、自动化管理,降低采购成本,提高供应链透明度与合规性,确保企业物资供应稳定、高效。本文详细解析物料管理的架构设计、核心功能与业务流程,并提供代码示例与开发技巧,助力企业快速构建高效物料管理系统。
如何开发供应商管理系统中的外协生产板块(附架构图+流程图+代码参考)
本文详细介绍了供应商管理系统中外协生产板块的构建与开发,涵盖功能设计、业务流程、开发技巧及优化策略,助力企业提升外协生产的管理效率与质量控制能力。
如何开发供应商管理系统中的质量协同板块(附架构图+流程图+代码参考)
供应商管理系统中的质量协同板块,连接采购、质检与供应商,实现来料检验、退货处理与问题改善的数字化协作。通过“来料检验单”、“采购退货单”和“8D改善报告”三大实体,详解功能设计、业务流程及开发实现,助力企业提升供应链稳定性与质量管理水平。
如何开发供应商管理系统中的库存管理板块(附架构图+流程图+代码参考)
供应商管理系统(SMS)是企业供应链管理的核心工具,通过信息化手段实现从采购、入库、出库到库存盘点的全流程管理。系统以供应商为中心,整合订单、发货、验收、库存等环节,提升供应链协同效率。库存管理作为关键模块,通过入库单、出库单、调拨单和盘点等功能,实现库存数据的实时更新与可视化监控,有效避免缺货或积压风险。结合现代技术如Spring Boot、Vue3、MySQL等,系统具备高可用性与灵活扩展性,助力企业提升库存周转率与运营效率。
如何开发供应商管理系统中的发货协同板块(附架构图+流程图+代码参考)
本文讲述了老王因供应商发货信息不同步导致客户投诉的经历,引出供应商管理系统中“发货协同”模块的重要性。文章结合实际案例,详细介绍了该模块的功能设计、业务流程、技术实现及开发技巧,并通过上线效果展示其对发货效率和客户满意度的显著提升。最后提供常见问题的解决方案,助力企业实现发货全流程透明化管理。