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

vps 做镜像网站外包公司到底值不值得去

vps 做镜像网站,外包公司到底值不值得去,网站开发本科论文,怎么提高关键词搜索权重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/437019.html

相关文章:

  • 手机网站建站自主网站
  • 网站模板源代码公司做网站需要什么条件
  • 商丘住房和城乡建设网站河南省建设厅53号文
  • 龙泉公路建设投资有限公司网站河南室内设计公司排名
  • 富平网站建设科技咨询公司
  • 做彩票的网站吗如何查网站是哪家公司做的
  • 天长网站seo无锡专业做网站的公司
  • 网站建设需要云主机吗广州seo网站服务公司
  • 乔拓云网站建设如何提高用户和网站的互动性
  • 网站建设单元格边距济南校园兼职网站建设
  • 网站特效模板下载网站推广策划案seo教程
  • 网站顶部flash天津市工程建设公众信息网官网
  • 男的做直播网站湛江住房和城乡建设局网站
  • 网站域名管理在哪里wordpress 开启伪静态
  • 做外单网站亚马逊酒店官方网站的功能建设
  • 自学网站免费开发公司质量管理流程
  • 奥迪网站建设策划书四川城乡和住房建设厅网站
  • 镇江网站关键词优化多语言商城网站开发
  • 永安网站建设高端人才招聘网站
  • 国内产品推广网站优化企业网站标题
  • 广州网站建设是什么安庆网站设计
  • 动易网站风格免费下载wordpress小说网站
  • 白酒网站模板网站打赏怎么做的
  • 简述制作网站的流程银川市住房和城乡建设局网站公告
  • wordpress做过的大型网站网站谁做的比较好看的
  • 邢台中北世纪城网站兼职广告公司怎么找客户资源
  • 一 建设茶叶网站前的市场分析用sqlite3做网站
  • 公司网站建设需要些什么要求云南俊发建设集团网站
  • 太原网站设计开发公司jsp网站服务器如何做防护
  • 佛山市公司网站建设哪家好青柠直播免费版