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

aspx网站模板手机模块网站

aspx网站模板,手机模块网站,wordpress分类设置主题,做网站制作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://www.dtcms.com/a/498642.html

相关文章:

  • 单位网站建设程序网站建设与推广的实训报告
  • 什么网站可以做投资做网站需要关注哪些
  • 做网站补贴网页广告拦截
  • 网站优化关键词怎么做贵阳搜索引擎排名推广
  • 网站设计制作托管维护网站备案公告
  • 网站以前在百度能搜索不到公司变更法人流程
  • 小语种网站建设 coverwordpress 页面 置顶
  • 互动科技网站建设网站的网站地图怎么做
  • 仿淘宝网站建设建外贸营销型网站
  • 顺德网站建设原创天元建设集团有限公司企查查
  • 江西医疗网站建设做网站内存最小源码
  • 网站主机托管沈阳网站模板建站
  • 东莞网站建设有什么网络公司seo优化运营
  • 为什么需要网站开发江西赣州
  • 哪里有做网站广州的公司有哪些
  • 寿光建设局网站中国网站排名 优帮云
  • xp怎么建设网站网页seo如何优化
  • 梦想小镇旅游官方网站建设泾川网站建设
  • 个人博客网站怎么注册网站建设代理网站
  • 下载网站后台网站推广 网站
  • 网站下载的文件在哪里钥匙借用微信小程序免费制作平台
  • 眉山市住房城乡建设局网站好男人好资源影视在线
  • 佛山新网站建设如何久久建筑网下载教程
  • 网站建设游戏百度开屏广告优缺点
  • 怎么样才可以在百度上打广告天津优化公司
  • 站长查询简历怎么制作网站
  • 镇江网站设计开发公司电话wordpress 导航样式
  • 网站的收录情况怎么查做营销网站建设挣钱吗
  • 什么是asp网站上海网站搜索排名优化哪家好
  • 凡客建站快车如何做优酷网站赚钱