SOA简介

本文介绍了SOA服务化架构改造的原因和好处,包括避免共享业务重复建设、资源连接瓶颈等问题。同时,阐述了微服务的概念。详细讨论了RPC调用过程,并分析了两种限流算法——令牌桶和漏桶算法。还提供了Guava库实现限流的示例,以及Nginx接入层限流配置。此外,提到了商品抢购限流的计数器算法和基于时间分片的消峰策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为什么需要实现服务化架构:随着用户规模逐渐庞大,需求更加复杂,我们一定会对藕合在一个Web 容器中

的业务系统进行垂直化改造,以业务功能为维度拆分出多个子系统,这样做就是为了能够更清晰地规划和体现出每个子系统的职责,降低业务稠合,以及提升容错性。但是在多元化的业务需求下,子系统中一定会存在较多的共享业务,这些共享业务肯定会被重复建设,产生较多的冗余业务代码。而且,业务系统中数据库连接之类的底层资源必然会限制业务系统所允许横扩的节点数量,因为在横扩过程中,连接数是机器数的平方。除了共享业务重复建设和资源连接受限,还有一个不容忽视的问题,当业务做大时,技术团队的人员规模也开始膨胀,太多人共同维护一个系统肯定会坏事,尤其是那些“手潮”的同学,经常会导致SVN 中的版本冲突。因此为了避免这些问题,服务化架构( SOA )改造刻不容缓。

SOA好处:原本共享的业务被拆分,形成可复用的服务,可以在最大程度上避免共享业务的重复建设、资源连接瓶颈等问题出现

什么是微服务:所谓的微服务架构,从宏观上来看,无非就是细化了服务拆分过程中的粒度,粒度越细,业务稠合越小,容错性越好,并且后期扩展会越容易

RPC调用过程:·1、底层的网络通信协议处理。2、解决寻址问题。3、请求/响应过程中参数的序列化和反序列化工作。RPC 的本质就是屏蔽上述复杂的底层处理细节,让服务提供方和服务调用方都能够以一种极其简单的方式(甚至简单到就像是在实现一个本地方法和调用一个本地方法一样)来实现服务的发布和调用,使开发人员只需要关注自身的业务逻辑即可


限流算法

1 . 令牌桶算法:

· 每秒会有r 个令牌被放人桶内,也就是说, 会以1/r 秒的平均速率向桶中依次
放人令牌(比如每秒共放人10 个令牌,那么每0 . 1 秒放人1 个令牌):
· 桶的容量是固定不变的,假设桶中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值