当前位置: 首页 > 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://www.dtcms.com/wzjs/59849.html

相关文章:

  • 专业做室内设计的网站有哪些方面网络优化的基本方法
  • 省级网站建设标准成人职业培训机构
  • 河南企业网站优化外包网站关键词快速优化
  • 程序员做网站如何赚钱怎么做个网站
  • 新冠北京最新消息seo怎么做最佳
  • 工作指令双桥seo排名优化培训
  • 做本地生活圈网站好吗交换友链
  • 东莞个人网站设计宁波seo排名公司
  • 网站建设服务费做什么分录怎么自己做网站推广
  • 做外贸月薪3万要多久合肥seo网站建设
  • 深圳福田网站建设专业公司百度学术免费查重入口
  • 织梦做的网站打不开网页中国的搜索引擎有哪些
  • 重庆教育网站建设免费外链网站seo发布
  • 那些网站用不着做优化属于b2b的网站有哪些
  • asp动态网站开发基础教程河源今日头条新闻最新
  • 银川网站建设哪家好网络营销的方式有哪些
  • 国际 网站制作公司百度灰色关键词排名推广
  • 如何注册个做电影的网站江苏短视频seo搜索
  • 90设计手机站湛江百度网站快速排名
  • 网站制作对公司的作用爱站网官网查询域名
  • ppt模板免费下载素材网站广州百度推广优化排名
  • 网站建设-信科网络seo 是什么
  • 咸阳企业网站建设企业为何选择网站推广外包?
  • 网上做网站怎么赚钱吗百度问答一天能赚100块吗
  • 企业网站ppt怎么做广州网站推广
  • 南昌大型网站制作百度爱采购平台官网
  • 微信外部链接网站典型的口碑营销案例
  • 智能建造工程seo优化网站的注意事项
  • 江门h5模板建站seo在线培训课程
  • 哈尔滨口碑好的网站建设google网站入口