[
https://issues.apache.org/jira/browse/ZOOKEEPER-2736?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15939611#comment-15939611
]
ASF GitHub Bot commented on ZOOKEEPER-2736:
-------------------------------------------
Github user eribeiro commented on a diff in the pull request:
https://github.com/apache/zookeeper/pull/205#discussion_r107824547
--- Diff:
src/java/main/org/apache/zookeeper/server/NIOServerCnxnFactory.java ---
@@ -607,9 +618,28 @@ public static ByteBuffer getDirectBuffer() {
// sessionMap is used by closeSession()
private final ConcurrentHashMap<Long, NIOServerCnxn> sessionMap =
new ConcurrentHashMap<Long, NIOServerCnxn>();
- // ipMap is used to limit connections per IP
- private final ConcurrentHashMap<InetAddress, Set<NIOServerCnxn>> ipMap
=
- new ConcurrentHashMap<InetAddress, Set<NIOServerCnxn>>( );
+ // ipMap is used to limit connections and connection rate per IP
+ private final ConcurrentHashMap<InetAddress, IpCnxns> ipMap
+ = new ConcurrentHashMap<InetAddress, IpCnxns>();
+
+ // for each IP, we keep a RateLimiter to limit connection rate,
+ // as well as a set of connections to limit total number of connections
+ private static class IpCnxns {
--- End diff --
Eventually, we need to implement same logic for NettyServerCnxnFactory so
better to up this class to ServerCnxnFactory or make it a top level class. The
former is fine, imho.
> Add a connection rate limiter
> -----------------------------
>
> Key: ZOOKEEPER-2736
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2736
> Project: ZooKeeper
> Issue Type: Improvement
> Components: server
> Affects Versions: 3.4.9, 3.5.2
> Reporter: Vincent Poon
> Attachments: ZOOKEEPER-2736.v1.patch
>
>
> Currently the maxClientCnxns property only limits the aggregate number of
> connections from a client, but not the rate at which connections can be
> created.
> This patch adds a configurable connection rate limiter which limits the rate
> as well.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)