SOA简介

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

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

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

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

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


限流算法

1 . 令牌桶算法:

· 每秒会有r 个令牌被放人桶内,也就是说, 会以1/r 秒的平均速率向桶中依次
放人令牌(比如每秒共放人10 个令牌,那么每0 . 1 秒放人1 个令牌):
· 桶的容量是固定不变的,假设桶中最多只允许存放b 个令牌,如果桶满了再
放人令牌,则溢出(新添加的令牌被丢弃) ;
· 当一个n 字节的请求包到达时,将消耗n 个令牌,然后再发送该数据包;

· 若桶中的可用令牌数小于n ,则该数据包将会被执行限流处理(被抛弃或缓存)。

2. 漏桶算法:

·可以以任意速率向桶中流人水滴;
·桶的容量是固定不变的,如果桶满了则溢出(新流人的水滴被丢弃) I

·按照固定的速率从桶中流出水滴。

Guava 实现平均速率限流:

public void limit(){

final RateLimiter limit=RateLimit.create(5);//每秒向桶中存放5 个Token 

for(int i=0;i<10;i++){

double waitTime=limit.acquire();//获取一个Token

System.out.println(waitTime);

}}

public void limit () {
RateLimiter lim 工t = RateL 工miter . create(5) ;//每秒中向桶中存放5 个Token 
System.out.println(limit.acquire(5));//产生突发流量时, 一次从桶中获取5 个Token 

System.out.println(limit.acquire()) ;

}

除了标准的平均速率限流,如果希望系统在启动时的限流速率从慢速逐渐过渡
到平均速率,给系统一个缓冲时间,那么RateLimiter 也提供有相应的支持,只需要
在create()方法中设置缓冲时间即可:

RateLimiter .create(S, 1, TimeUnit.SECONDS);

在create(double permitsPerSecond, long warmupPeriod, Time Unit unit)方法中, 参

数“warmupPeriod”用于设置限流速率从慢速过渡到平均速率的缓冲时间,参数“unit”

则用于设置缓冲时间单位。在此需要注意,假设请求被执行限流后,我们不希望请
求一直处于等待状态获取Token ,而是直接丢弃或短暂等待,那么便需要使用

RateLimiter 提供的tryAcquire()方法:

boolean result = limit.tryAcquire() ;//尝试从桶中获取Token ,获取不到不等待立即返回false 
if (result ) {
System . out . println { ”成功获取到Token " ) ;
result= limit.tryAcquire(10, TimeUnit.MILLISECONDS) ;//尝试从桶中获取Token ,只等待10ms 
if (result) {

System . out . println { " 成功获取到Token " );

}

用Nginx 实现接入层限流:

http{
#定义每个IP的session空间大小
limit_zone one $binary_remote_addr 20m
#定义每个IP每秒允许发起的请求数
limit_req_zone $binary_remote_addr zone=req_one:20m rate=10r/s
#定义每个IP能够发起的并发连接数
limit_conn one=10
#缓存还没来得及处理的请求,存不下的就拒绝
limit_req zone=req_one burst=100
server{
listen 80;
server_name localhost;
location /{ 
stub_status on;
access_log off;
}
}

}

使用计数器算法实现商品抢购限流:

public boolean limit(List<String> skus) {
if (检测限流开关是否打开) {
if (null != skus && !skus.isEmpty()) {
/ * key 为SKU, value 为可抢购的剩余次数*/
Map<String, Integer> skuMap =获取被限流的SKU 名单;
synchronized (skuMap) {
try {
for (String sku : skus) {
/*检查目标SKU 是否包含在限流名单中*/
if (skuMap.containsKey(sku)) {
while_skus . add(sku);
/* 如果抢购次数达到阑值,则不允许下单*/
if (0 >= skuMap . get(sku))
return false;
}

}

for(String sku :while_skus){
    skuMap.put(sku,skuMap.get(sku)-1);
}
}finally{
if(!while_skus.isEmpty()){
while_skus.clear();
}
}}}}
return true;

}

基于时间分片的消峰方案:

所谓消峰,其实指的就是对峰值流量进行分散处理,避免在同一时间段内产生
较大的用户流量冲击系统,从而降低系统的负载压力。接下来笔者就为大家讲解如

何在业务上做调整来实现流量消峰。

活动分时段进行实现消峰;通过答题验证实现消峰




http://www.ppmy.cn/news/620643.html

相关文章

野三坡苟各庄晨雾(图)

苟各庄是野三坡境内具有完善旅游产业链条的民俗村之一&#xff0c;这个民俗村已脱离了原始的民俗&#xff0c;是一处具有徽派装饰风格&#xff0c;现代化的经营理念的住宿集中地。苟各庄村距离百里峡售票处1000多米&#xff0c;步行只需要大约10分钟左右即可到达。这里有风景如…

数商云:机械设备行业供应链数字化解决方案

行业机会 ●●● ▣ 1、加大逆周期调节力度&#xff0c;专项债下放速度加快 ▣ 2、 市场容量比预期大&#xff0c;机械设备销量保持长期的小幅稳定增长 ▣ 3、二手设备加快更新&#xff0c;“一带一路”建设等拉动机械设备行业增长 ▣ 4、国际环境和经济下行压力&#xff0c;机…

麒麟合盛(APUS)李涛:APUS云重新定义“云联邦”

北京2018年7月18日电 /美通社/ -- 信息化革命带来的社会结构变革和生产力发展超乎人们想象。 在谈及麒麟合盛&#xff08;以下简称“APUS”&#xff09;在未来云计算的布局时&#xff0c;APUS创始人兼CEO李涛引用美国未来主义学者尼葛洛庞帝提出的“数字化生存&#xff08;Bein…

如何看待华与华、蓝杉互动、欧赛斯三家品牌公司?

做品牌服务的这几年里&#xff0c;周边很多朋友都会问一些“选谁家好”、“公司排名”等问题。作为行业内的佼佼者&#xff0c;华与华、蓝杉互动和欧赛斯&#xff0c;被提及的次数也比较多。今天&#xff0c;以营销人的身份&#xff0c;来全方位阐述下这三家品牌公司&#xff0…

SOAR+EDR,打造更智能、高效的安全运营中心

一、背景介绍 近年来&#xff0c;随着互联网行业的高速发展&#xff0c;企业的业务安全也越来越依赖网络安全能力建设&#xff0c;同时&#xff0c;随着企业业务的日益增长&#xff0c;所要面临的安全问题也越来越多&#xff0c;传统的安全能力在面对日益增长的安全问题时显得…

华为技术有限公司-上海交通大学联合研究院成立!

转载于 软科 7月21日&#xff0c;华为技术有限公司-上海交通大学联合研究院成立暨战略协同研讨会在上海交通大学闵行校区举行。华为技术有限公司董事、战略研究院院长徐文伟&#xff0c;上海研究所所长董庆阳&#xff0c;全球技术合作副总裁艾超及有关部门负责人&#xff0c;上…

Solace简介

什么是Solace? Solace是一家加拿大注册的公司,总部设在安大略省渥太华. 成立于2001年. 这家公司一直致力于获取信息的艺术和科学&#xff0c;并提供世界上最灵活&#xff0c;最强大的数据移动平台。 背景 在信息爆炸的时代, 信息/数据已成为每个行业的生命线。如黑石收购汤…

赞奇出席2022华为全联接大会,数字智能化“云上”见真章

21世纪是人类社会全面走向智能化的时代&#xff0c;数字化、智能化是未来三十年社会发展的关键趋势。11月7日至11月9日&#xff0c;2022华为全联接线上大会火热正酣&#xff01;本届大会以"释放数字生产力"为主题&#xff0c;旨在分享行业数字化的发展方向和未来机遇…