美文网首页
dubbo 并发控制和连接控制

dubbo 并发控制和连接控制

作者: 钟mh | 来源:发表于2018-11-14 17:23 被阅读0次

并发控制

            actives参数

                        CONSUMER端配置, ActiveLimitFilter里, count.wait(remain); 线程wait方式,  配合 timeout 配置,   需要配置 actives 参数才会开启 ActiveLimitFilter,应该是为了性能考虑

            executes参数

                        PROVIDER端配置,ExecuteLimitFilter里,信号量的方式,限制方法级别的并发调用

                        如果要统计调用数呢?

                                    RpcStatus.SERVICE_STATISTICS 记录了service级别的计数

                                    RpcStatus.METHOD_STATISTICS 记录了method级别的计数

                        需要配置 executes 参数才会开启 ExecuteLimitFilter,应该是为了性能考虑

                    todo: Semaphore.tryAcquire(), 并没有使用 tryAcquire(long timeout, TimeUnit unit) ,超时怎么控制

挑2个不太好的地方

1. RpcStatus.METHOD_STATISTICS = new ConcurrentHashMap<String, ConcurrentMap<String, RpcStatus>>();

String = dubbo://10.1.9.55:20800/com.alibaba.boot.dubbo.service.IHelloService

如果是 dubbo://10.1.9.55:20800/com.alibaba.boot.dubbo.service.IHelloService/consumser 会不会好点,  一个项目有provider,也有consumser,这样就分开了

2. 泛化调用, method key = '$invoke' , 也可以改进

连接控制

服务端配置 accepts参数

        TomcatHttpServer 里

tomcat.getConnector().setProperty(

                "maxConnections", String.valueOf(url.getParameter(Constants.ACCEPTS_KEY, -1)));

NettyServer里

            if (accepts > 0 && channels.size() > accepts) {

            logger.error("Close channel " + ch + ", cause: The server " + ch.getLocalAddress() + " connections greater than max config " + accepts);

            ch.close();

            return;

        }

客户端配置 connections 参数

1.DubboProtocol . getClients

2. RestProtocol 里 connectionManager.setMaxTotal(url.getParameter(Constants.CONNECTIONS_KEY, 20));

3. ThriftProtol  里 new ExchangeClient[connections];


总结

1. 并发控制和连接控制只需要配置1种就好,并发控制较好一些

2. 并发控制配置时注意cluster的配置

相关文章

  • dubbo 并发控制和连接控制

    并发控制 actives参数 CONSUMER端配置, ActiveLimitFilter里, count.wai...

  • Dubbo剖析-并发控制

    一、前言 前面讲解了Dubbo的服务降级,本节我们来讲解dubbo中的并发控制,并发控制分为客户端并发控制和服务端...

  • Dubbo 并发控制

    消费端并发控制 在服务消费方设置接口中每个方法并发请求个数,通过设置actives参数。 在服务消费方设置接口中的...

  • Dubbo 并发控制

    前言 大家好,今天开始给大家分享 — Dubbo 专题之 Dubbo 并发控制。在前一个章节中我们介绍了 Dubb...

  • Dubbo 连接数控制

    客户端连接控制 限制客户端服务使用连接不能超过 10 个。 如果

  • 数据库并发控制——悲观锁、乐观锁、MVCC

    三种并发控制:悲观并发控制、乐观并发控制、多版本并发控制。 悲观并发控制(又名“悲观锁”,Pessimistic ...

  • 25.Dubbo并发控制

    消费端控制并发个数 此设置针对GreetingService接口中的所有方法,每个方法最多同时并发请求10个。 针...

  • 乐观锁与悲观锁

    乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段 悲观并发控制(悲观锁) 它可以阻止一个...

  • 分布式服务框架Dubbo总结-0x02 dubbo常用配置

    常用功能配置 线程池 详细点这里 并发控制 服务提供端 服务消费端 如果

  • 《分布式_Dubbo》_DubboAdmin和配置中心汇总

    admin后台监控的简单使用和配置中心zk以及redis简单汇总 Dubbo控制管理后台使用 Dubbo 控制后台...

网友评论

      本文标题:dubbo 并发控制和连接控制

      本文链接:https://www.haomeiwen.com/subject/awwjfqtx.html