当前位置: 首页 > wzjs >正文

郑州好的网站建站广州云建站模板

郑州好的网站建站,广州云建站模板,网上商城前端模板,电商平台网站 建设目标Dubbo 框架内置的并发控制策略 简介 Dubbo 通过 Filter 拦截器机制,内置了并发控制策略实现。限制从同一客户端到同一服务的并发请求数,防止恶意请求使服务器过载,确保服务的稳定性,并防止使用过多资源。 控制某些服务的最大并…

Dubbo 框架内置的并发控制策略

简介

Dubbo 通过 Filter 拦截器机制,内置了并发控制策略实现。限制从同一客户端到同一服务的并发请求数,防止恶意请求使服务器过载,确保服务的稳定性,并防止使用过多资源。

  • 控制某些服务的最大并发请求数,确保其他服务的资源可用性。系统过载和确保系统稳定性。
  • 允许在需求增加时更平滑地扩展服务。
  • 确保服务在高峰使用时间保持可靠和稳定。

注意
这种方式要求用户准确的预先评估系统能处理的并发数,而准确的评估系统处理能力并不是一件容易的事情,因此 Dubbo 还提供了自适应限流模式,根据系统负载自动识别系统健康程度并进行限流保护,可以在此查看 自适应限流模式使用文档。

限流策略配置

限制服务器端并发执行数(服务粒度)
@DubboService(executes = 2)
public class DemoService2Impl implements DemoService2 {}
限制服务器端并发执行数(方法粒度)
@DubboService(methods = {@Method(name = "sayHello", executes = 2)})
public class DemoService2Impl implements DemoService2 {}

错误提示

{"message": "Failed to invoke method sayHello in provider tri://169.254.90.232:50051/com.doudou.demo.api.DemoService2?anyhost=true&application=ServiceApplication01&background=false&bind.ip=169.254.90.232&bind.port=50051&deprecated=false&dubbo=2.0.2&dynamic=true&executor-management-mode=isolation&file-cache=true&generic=false&interface=com.doudou.demo.api.DemoService2&logger=slf4j&methods=sayHello,sayHello2&pid=46271&prefer.serialization=hessian2,fastjson2&qos.port=22224&release=3.3.0&sayHello.executes=2&sayHello.return=true&sayHello.sent=true&service-name-mapping=true&side=provider&timestamp=1743334632734, cause: The service using threads greater than <dubbo:service executes=\"2\" /> limited.", "status": "503"
}
限制消费端并发调用数(服务粒度)
@DubboReference(actives = 4)
private DemoService2 demoService;

错误提示

org.apache.dubbo.rpc.RpcException: Waiting concurrent invoke timeout in client-side for service:  com.doudou.demo.api.DemoService2, method: sayHello2, elapsed: 543, timeout: 0. concurrent invokes: 0. max concurrent invoke limit: 4at org.apache.dubbo.rpc.filter.ActiveLimitFilter.invoke(ActiveLimitFilter.java:76) ~[dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CallbackRegistrationInvoker.invoke(FilterChainBuilder.java:197) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.protocol.ReferenceCountInvokerWrapper.invoke(ReferenceCountInvokerWrapper.java:106) ~[dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.registry.client.ServiceDiscoveryRegistryDirectory$InstanceWrappedInvoker.invoke(ServiceDiscoveryRegistryDirectory.java:800) ~[dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invokeWithContext(AbstractClusterInvoker.java:412) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:82) ~[dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invoke(AbstractClusterInvoker.java:366) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.router.RouterSnapshotFilter.invoke(RouterSnapshotFilter.java:46) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:109) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.support.MetricsClusterFilter.invoke(MetricsClusterFilter.java:57) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.protocol.dubbo.filter.FutureFilter.invoke(FutureFilter.java:53) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.spring.security.filter.ContextHolderParametersSelectedTransferFilter.invoke(ContextHolderParametersSelectedTransferFilter.java:40) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.metrics.filter.MetricsFilter.invoke(MetricsFilter.java:86) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.support.MetricsConsumerFilter.invoke(MetricsConsumerFilter.java:38) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.support.ConsumerClassLoaderFilter.invoke(ConsumerClassLoaderFilter.java:40) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.support.ConsumerContextFilter.invoke(ConsumerContextFilter.java:119) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CallbackRegistrationInvoker.invoke(FilterChainBuilder.java:197) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster$ClusterFilterInvoker.invoke(AbstractCluster.java:101) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker.invoke(MockClusterInvoker.java:107) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.support.wrapper.ScopeClusterInvoker.invoke(ScopeClusterInvoker.java:171) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.registry.client.migration.MigrationInvoker.invoke(MigrationInvoker.java:294) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.proxy.InvocationUtil.invoke(InvocationUtil.java:64) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:81) [dubbo-3.3.0.jar:3.3.0]at com.doudou.demo.api.DemoService2DubboProxy0.sayHello2(DemoService2DubboProxy0.java) [classes/:na]at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_202]at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_202]at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_202]at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_202]at org.apache.dubbo.config.spring.util.LazyTargetInvocationHandler.invoke(LazyTargetInvocationHandler.java:54) [dubbo-3.3.0.jar:3.3.0]at com.doudou.demo.api.DemoService2DubboProxy0.sayHello2(DemoService2DubboProxy0.java) [classes/:na]at com.doudou.demo.consumer.Task01.lambda$run$1(Task01.java:41) [classes/:na]at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_202]at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_202]at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_202]
限制消费端并发调用数(方法粒度)
@DubboReference(methods = {@Method(name = "sayHello", actives = 2)})
private DemoService2 demoService;

错误提示

org.apache.dubbo.rpc.RpcException: Waiting concurrent invoke timeout in client-side for service:  com.doudou.demo.api.DemoService2, method: sayHello, elapsed: 543, timeout: 0. concurrent invokes: 0. max concurrent invoke limit: 2at org.apache.dubbo.rpc.filter.ActiveLimitFilter.invoke(ActiveLimitFilter.java:76) ~[dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CallbackRegistrationInvoker.invoke(FilterChainBuilder.java:197) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.protocol.ReferenceCountInvokerWrapper.invoke(ReferenceCountInvokerWrapper.java:106) ~[dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.registry.client.ServiceDiscoveryRegistryDirectory$InstanceWrappedInvoker.invoke(ServiceDiscoveryRegistryDirectory.java:800) ~[dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invokeWithContext(AbstractClusterInvoker.java:412) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:82) ~[dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invoke(AbstractClusterInvoker.java:366) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.router.RouterSnapshotFilter.invoke(RouterSnapshotFilter.java:46) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:109) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.support.MetricsClusterFilter.invoke(MetricsClusterFilter.java:57) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.protocol.dubbo.filter.FutureFilter.invoke(FutureFilter.java:53) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.spring.security.filter.ContextHolderParametersSelectedTransferFilter.invoke(ContextHolderParametersSelectedTransferFilter.java:40) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.metrics.filter.MetricsFilter.invoke(MetricsFilter.java:86) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.support.MetricsConsumerFilter.invoke(MetricsConsumerFilter.java:38) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.support.ConsumerClassLoaderFilter.invoke(ConsumerClassLoaderFilter.java:40) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.support.ConsumerContextFilter.invoke(ConsumerContextFilter.java:119) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CallbackRegistrationInvoker.invoke(FilterChainBuilder.java:197) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster$ClusterFilterInvoker.invoke(AbstractCluster.java:101) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker.invoke(MockClusterInvoker.java:107) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.cluster.support.wrapper.ScopeClusterInvoker.invoke(ScopeClusterInvoker.java:171) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.registry.client.migration.MigrationInvoker.invoke(MigrationInvoker.java:294) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.proxy.InvocationUtil.invoke(InvocationUtil.java:64) [dubbo-3.3.0.jar:3.3.0]at org.apache.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:81) [dubbo-3.3.0.jar:3.3.0]at com.doudou.demo.api.DemoService2DubboProxy0.sayHello(DemoService2DubboProxy0.java) [classes/:na]at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_202]at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_202]at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_202]at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_202]at org.apache.dubbo.config.spring.util.LazyTargetInvocationHandler.invoke(LazyTargetInvocationHandler.java:54) [dubbo-3.3.0.jar:3.3.0]at com.doudou.demo.api.DemoService2DubboProxy0.sayHello(DemoService2DubboProxy0.java) [classes/:na]at com.doudou.demo.consumer.Task01.lambda$run$0(Task01.java:34) [classes/:na]at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_202]at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_202]at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_202]

如果提供端 @DubboService 和消费端 @DubboReference 都配了 actives,则消费端配置值优先级更高

最小并发数负载均衡

配置服务的客户端的 loadbalance 属性为 leastactive,此 Loadbalance 会调用并发数最小的 Provider(Consumer端并发数)。

@DubboService(loadbalance = "leastactive")
public class DemoService2Impl implements DemoService2 {}@DubboReference(loadbalance = "leastactive")
private DemoService2 demoService;

文章转载自:

http://L03kgWkX.qhrLb.cn
http://nG99tEmr.qhrLb.cn
http://v3G8SuG9.qhrLb.cn
http://YQm4dCaG.qhrLb.cn
http://JVj5EHc2.qhrLb.cn
http://YmaqvdKt.qhrLb.cn
http://DXSfJ1CQ.qhrLb.cn
http://VA6AWuxq.qhrLb.cn
http://onKt1VQh.qhrLb.cn
http://BquSzVaT.qhrLb.cn
http://Kry9APMA.qhrLb.cn
http://tKDqmPYT.qhrLb.cn
http://Pb112HRv.qhrLb.cn
http://ezjO5Nz4.qhrLb.cn
http://Q07a4Qlm.qhrLb.cn
http://ZUuLY4pB.qhrLb.cn
http://vxIDQB4O.qhrLb.cn
http://GxuvNwWW.qhrLb.cn
http://mrG30WsX.qhrLb.cn
http://rPQhX3S8.qhrLb.cn
http://piBS0Vdu.qhrLb.cn
http://4JQb7tZs.qhrLb.cn
http://97wBAsyW.qhrLb.cn
http://9saDqGC5.qhrLb.cn
http://M1r2IuIL.qhrLb.cn
http://96Ev8Gx2.qhrLb.cn
http://Qwxr3QXO.qhrLb.cn
http://JFs5UesF.qhrLb.cn
http://YRKelb4s.qhrLb.cn
http://LIiuXiCw.qhrLb.cn
http://www.dtcms.com/wzjs/712251.html

相关文章:

  • 深圳建网站兴田德润很好怎么接app推广的单子
  • 网站建设费计入什么科目比较好江苏水利工程建设局网站
  • 电子商务基础网站建设wordpress4.9.6 主题安装
  • 网站建设百家号河北辛集市城乡建设管理局网站
  • php个人网站源码下载中国菲律宾混血
  • 小江网站建设公司自建app平台
  • wordpress用户发文章数量福州seo管理
  • 廉江网站制作帮别人做网站开票开什么税目
  • 建筑工程教育网官方网站宜昌网站建设设计
  • 网站开发网页制作教程上网登录页网址
  • 济南建站模板网站页面多大合适
  • 网站建设公司北京华网天下实惠西宁市城市道路建设规划网站
  • 网站建设属于什么经营范围网络营销与市场营销的关系?
  • 昆明网站建设服务网站权重是怎么提升的
  • 四川专业网站建设推广购物网站前端浮动特效怎么做
  • 建设产品网站课程设计进货渠道网
  • 网站建设公司软件开wordpress 交流群
  • 兰州网站定制公司网站建设课程大纲
  • 建手机版网站代理猫
  • 不使用域名做网站学生自做网站优秀作品
  • 网站百度地图怎么做烟台网站建设精通臻动传媒
  • cms网站建设的方法godaddy wordpress 优惠码
  • 那有做网站的网络平台推广是干什么
  • 手机百度网站建设江苏网站建设效果好
  • 免费dede企业网站模板企业seo顾问公司
  • 广东建科建设监理有限公司网站华容网站
  • 做儿童网站赚钱吗网站文明建设工程包括
  • 南阳做网站wordpress附件管理
  • 泗县做网站怎么建设网站啊
  • 大王庄网站建设公司wordpress 模板 导航栏