当前位置:首页 >> 核电技术聚变聚能设备 >> 【SpringCloud】设计原则之围绕业务构建与并发流量控制,xperia go

【SpringCloud】设计原则之围绕业务构建与并发流量控制,xperia go

cpugpu芯片开发光刻机 核电技术聚变聚能设备 1
文件名:【SpringCloud】设计原则之围绕业务构建与并发流量控制,xperia go 【SpringCloud】设计原则之围绕业务构建与并发流量控制 一、设计原则之围绕业务构建

正所谓,“不围绕业务构建的架构就是耍流氓”

微服务应当聚焦于某一特定的业务功能,并确保完成它 

其实这给需求管理也带来了挑战,需求需要切分将更加精细,以满足系统业务的不断变化 

在传统的方式中,一般是产品人员进行需求调研,然后经过整理后提交给开发团队,这种方式在微服务的环境下需要重新定义,即产品核实需求后,需要提交给开发团队之前进行评审,评审需要开发团队的人员参与,确认无误后在提交给开发团队 

从技术上说,微服务不应该局限于某个技术栈或后端存储,可以非常灵活,以便于解决业务问题 

这一点在非微服务系统设计时,可能导致我们做一些妥协 

而微服务可以让你用你认为最合适的方式解决问题 

这和上面的统一框架并不冲突,统一是指构建团队的过程中,尽量保持统一的架构,从而降低交互和沟通所带来的额外成本 

系统可以根据业务切分为不同的子系统,子系统又可以根据重要程序切分为核心和非核心子系统 

切分的目的就是当出现问题时,保证核心业务模块正常运行,不影响业务的正常操作 

同时解决各个模块子系统间的耦合、维护和扩展性 

方便单独部署,确保当一个系统出现问题时,不会出现连锁反应而导致整个系统瘫痪 

各个系统间合理地使用消息队列,解决系统或模块间的异步通信,实现高可用、高性能的通信系统

 

二、设计原则之并发流量控制 

大流量一般的衡量指标就是系统的 TPS(每秒事务量)和 QPS(每秒请求量) 

其实这个没有一个绝对的标准,一般都是根据机器的配置情况而定的,如果当前配置不能应对请求量,那么就视为大流量了 

 

一般的应对方案包括:

缓存

预先准备好数据,减少对数据库的请求 

降级 

如果不是核心链路,那么就把这个服务降级,保证主干通畅 

限流 

在一定时间内把请求限制在一定范围内,保证系统不被冲垮,同时尽可能提升系统的吞吐量 

限流的方式有几种,最简单的就是使用计数器,在一段时间内,进行计数,与阈值进行比较,到了时间临界点,将计数器清零 

 

应对并发,很重要的一点就是区分 CPU 密集型和 I / O 密集型 

CPU 密集型(CPU-bound) 

CPU 密集型也叫计算密集型,指的是系统的硬盘、内存性能相对 CPU 要好很多 

此时,系统运作大部分的状况是 CPU Loading 100%,CPU 要读 / 写 I / O(硬盘 / 内存),I / O 在很短的时间就可以完成,而 CPU 还有许多运算要处理,CPU Loading 很高

CPU bound 的程序一般而言 CPU 占用率很高 

这可能是因为任务本身不太需要访问 I / O 设备,也可能是因为程序是多线程实现,因此屏蔽掉了等待 I / O 的时间 

I / O 密集型(I / O bound)

I / O 密集型指的是系统的 CPU 性能相对硬盘、内存要好很多

此时,系统运作大部分的状况是 CPU 在等 I / O(硬盘 / 内存)的读 / 写操作,此时 CPU Loading 并不高 

I / O bound 的程序一般在达到性能极限时,CPU 占用率仍然较低 

这可能是因为任务本身需要大量 I / O 操作,而 pipeline 做得不是很好,没有充分利用处理器能力 

在微服务架构下,如果涉及不同类型的业务,需要根据资源的使用情况选用合适的处理资源 

 

参考资料:《微服务架构实战》—— 张锋 

 

一  叶  知  秋,奥  妙  玄  心 

协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接