使用“微服务+云架构”轻松应对系统扩容!

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 不知道大家打开本文,有没有留意文章所在的分类节点:云计算。其实我的本意,是要将微服务跟云架构归类在一起。因为他们都有着一个相同的存在目的:方便扩容!  扩容。对于遇到过系统瓶颈,需要扩容的系统,恭喜你,你的系统一定是快速发展,遇到了访问量上升的情况!【云架构,系统扩容案例】先说下我个人的经历:我是做GPS防盗器系统的,硬件需要给后台服务器回发数据,所以硬件产品销售的越好,我的系统就需要面对越来越多的压力挑战。

不知道大家打开本文,有没有留意文章所在的分类节点:云计算。其实我的本意,是要将微服务跟云架构归类在一起。因为他们都有着一个相同的存在目的:方便扩容!  

扩容。对于遇到过系统瓶颈,需要扩容的系统,恭喜你,你的系统一定是快速发展,遇到了访问量上升的情况!


【云架构,系统扩容案例】

先说下我个人的经历:我是做GPS防盗器系统的,硬件需要给后台服务器回发数据,所以硬件产品销售的越好,我的系统就需要面对越来越多的压力挑战。感谢经历了这样的一个过程,让我深刻意识到了系统扩容架构设计的巨大价值。我的项目里,经历过这么三个阶段:

第一阶段:单机阶段

单机应用,单进程应用,事实证明只能承载几百设备并发。

通过改造多线程,IOCP设计模型,可以承载20000以上的并发

瓶颈点:难以突破单机应用的并发能力,每次遇到难点都得重构。在我的案例里,就是可以增加到30000负载,增加不到50000万负载!

第二阶段:手动拆分多服务器阶段

手动分布式分离设计,网站,socket接收程序,缓存,数据库,使用自建机房独立运行。事实证明,可以承载几十万设备并发

瓶颈点:自建机房防火墙设备有并发数限制,CISCO ASA 5515防火墙最大允许25万连接。

第三阶段:云架构阶段

云架构设计,通过修改系统,实现自动扩容。这个时候,客户端设备数再多也没事,因为阿里云SLB之后的ECS服务器数量可以随时添加和减少,目前已经达到了100多万的设备并发连接无压力。

瓶颈点:仅限于我,将来数据库压力还需要进一步优化,但是目前并发设备数上百万毫无压力,不过阿里云的分布式数据库DRDS似乎也能解决我的难点。


【微服务,模块化应用案例】

我的案例下,重点解释了云架构的作用,没有重点介绍微服务的作用。但是实际上,在几次改造过程中,已经使用了一点点微服务的功能:

模块化功能,刚才我的案例都是基于整体系统拆分,实际上还有个优化空间就是改造成微服务。“微服务应用”举例:

登录系统功能:目前同时登陆用户最多也就几百人。登陆功能代码跟着网站整体发布,负载均衡下需要一下子维护起来一下子更新几十台web机器,显然太多余。如果登陆功能这个“微服务”组件单独发布,那么只用2台web机器(“登录功能专用服务器”)专门负载登陆功能戳戳有余。将来这部分系统压力增加,只需要增加一台“登陆服务器”即可。

查询定位功能:每个人的定位页面都在高频率刷新访问,虽然只有几百人登陆,但是造成的访问次数却高达上万次。怎么办?专门拿出十几台web服务器,用于“定位查询服务器”。这样,如果监控到定位功能有问题,只需要从这十几台“定位查询服务器”中排查问题!

结论:微服务的目的在于软件开发层面的功能化拆分。对于使用微服务:小项目用起来费力,大项目用起来省心。

所以导致现在观点多种:

没接触过大项目的人觉得微服务就是个累赘;

接触过大项目的人承认微服务的价值,却不建议小项目使用微服务进行“高射炮打蚊子”

一直做大流量项目的人,提倡使用微服务。


【结论】

微服务的价值:在于将来访问量上升时,精准调控某一个瓶颈点的功能,主要属于开发层面的储备

云架构的价值:在于访问量上升时,直接增加服务器数量扩大系统承载阈值,主要属于运维层面的储备

微服务+云架构:大型系统的重要组合!


原文地址: https://www.opengps.cn/Blog/View.aspx?id=279 文章的更新编辑依此链接为准。欢迎关注源站原创文章!
目录
相关文章
|
4天前
|
敏捷开发 监控 数据管理
构建高效微服务架构的五大关键策略
【4月更文挑战第20天】在当今软件开发领域,微服务架构已经成为一种流行的设计模式,它允许开发团队以灵活、可扩展的方式构建应用程序。本文将探讨构建高效微服务架构的五大关键策略,包括服务划分、通信机制、数据管理、安全性考虑以及监控与日志。这些策略对于确保系统的可靠性、可维护性和性能至关重要。
|
4天前
|
消息中间件 监控 持续交付
构建高效微服务架构:后端开发的进阶之路
【4月更文挑战第20天】 随着现代软件开发的复杂性日益增加,传统的单体应用已难以满足快速迭代和灵活部署的需求。微服务架构作为一种新兴的分布式系统设计方式,以其独立部署、易于扩展和维护的特点,成为解决这一问题的关键。本文将深入探讨微服务的核心概念、设计原则以及在后端开发实践中如何构建一个高效的微服务架构。我们将从服务划分、通信机制、数据一致性、服务发现与注册等方面入手,提供一系列实用的策略和建议,帮助开发者优化后端系统的性能和可维护性。
|
14天前
|
Kubernetes 安全 Java
构建高效微服务架构:从理论到实践
【4月更文挑战第9天】 在当今快速迭代与竞争激烈的软件市场中,微服务架构以其灵活性、可扩展性及容错性,成为众多企业转型的首选。本文将深入探讨如何从零开始构建一个高效的微服务系统,覆盖从概念理解、设计原则、技术选型到部署维护的各个阶段。通过实际案例分析与最佳实践分享,旨在为后端工程师提供一套全面的微服务构建指南,帮助读者在面对复杂系统设计时能够做出明智的决策,并提升系统的可靠性与维护效率。
|
1天前
|
监控 API 持续交付
构建高效微服务架构:后端开发的新趋势
【4月更文挑战第23天】 随着现代软件开发实践的不断演进,微服务架构已经成为企业追求敏捷、可扩展和弹性解决方案的首选。本文深入探讨了如何构建一个高效的微服务架构,涵盖了关键的设计原则、技术选型以及实践建议。通过分析微服务的独立性、分布式特性和容错机制,我们将揭示如何利用容器化、服务网格和API网关等技术手段,来优化后端系统的可维护性和性能。文章旨在为后端开发人员提供一套全面的指南,以应对不断变化的业务需求和技术挑战。
|
6天前
|
机器学习/深度学习 运维 Prometheus
探索微服务架构下的系统监控策略
【4月更文挑战第18天】在当今快速迭代和持续部署盛行的软件工程实践中,微服务架构因其灵活性和可扩展性受到企业青睐。然而,随着服务的细粒度拆分和网络通信的增加,传统的监控手段已不再适用。本文将探讨在微服务环境中实施有效系统监控的策略,包括日志聚合、性能指标收集、分布式追踪以及异常检测等关键技术实践,旨在为读者提供构建稳定、可靠且易于维护的微服务系统的参考指南。
10 0
|
6天前
|
监控 持续交付 开发者
构建高效微服务架构:后端开发的新趋势
【4月更文挑战第18天】在数字化转型的浪潮中,微服务架构已成为企业提升系统灵活性、加速产品迭代的关键。此文深入探讨了构建高效微服务架构的实践方法,包括服务划分原则、容器化部署、持续集成/持续部署(CI/CD)流程以及监控与日志管理等关键技术点。通过分析具体案例,揭示了微服务在提高开发效率、降低维护成本及促进团队协作方面的显著优势。
|
7天前
|
负载均衡 Java 开发者
细解微服务架构实践:如何使用Spring Cloud进行Java微服务治理
【4月更文挑战第17天】Spring Cloud是Java微服务治理的首选框架,整合了Eureka(服务发现)、Ribbon(客户端负载均衡)、Hystrix(熔断器)、Zuul(API网关)和Config Server(配置中心)。通过Eureka实现服务注册与发现,Ribbon提供负载均衡,Hystrix实现熔断保护,Zuul作为API网关,Config Server集中管理配置。理解并运用Spring Cloud进行微服务治理是现代Java开发者的关键技能。
|
8天前
|
监控 JavaScript 安全
构建微服务架构下的API网关
【4月更文挑战第15天】在微服务架构中,API网关扮演着至关重要的角色。它作为系统的唯一入口,不仅负责请求的路由、负载均衡和认证授权,还涉及到监控、日志记录和服务熔断等关键功能。本文将探讨如何构建一个高效且可靠的API网关,涵盖其设计原则、核心组件以及实现策略,旨在为后端开发人员提供一套实用的指导方案。
22 4
|
9天前
|
监控 负载均衡 API
构建高性能微服务架构:后端开发的最佳实践
【4月更文挑战第14天】 在当今快速发展的软件开发领域,微服务架构已成为构建可扩展、灵活且容错的系统的首选方法。本文深入探讨了后端开发人员在设计和维护高性能微服务时需要遵循的一系列最佳实践。我们将从服务划分原则、容器化部署、API网关使用、负载均衡、服务监控与故障恢复等方面展开讨论,并结合实际案例分析如何优化微服务性能及可靠性。通过本文的阅读,读者将获得实施高效微服务架构的实用知识与策略。
|
11天前
|
运维 监控 自动驾驶
构建可扩展的应用程序:Apollo与微服务架构的完美结合
构建可扩展的应用程序:Apollo与微服务架构的完美结合
32 10