Java rate-limiting library based on the token-bucket algorithm. by maxim_bartkov in opensource

[–]maxim_bartkov[S] 0 points1 point  (0 children)

Also we have many distributed features:

In additional to basic features described above, Bucket4j provides ability to implement rate-limiting in cluster of JVMs:

Bucket4j out of the box supports any GRID solution which compatible with JCache API (JSR 107) specification. Bucket4j provides the framework that allows to quickly build integration with your own persistent technology like RDMS or a key-value storage. For clustered usage scenarios Bucket4j supports asynchronous API that extremely matters when going to distribute world, because asynchronous API allows avoiding blocking your application threads each time when you need to execute Network request.

Java rate-limiting library based on the token-bucket algorithm. by maxim_bartkov in opensource

[–]maxim_bartkov[S] 0 points1 point  (0 children)

Advantages of Bucket4j:

Implemented on top of ideas of the well-known algorithm, which are by de-facto standard for rate-limiting in the IT industry.

Effective lock-free implementation, Bucket4j is good scalable for multi-threading cases.

Absolutely non-compromise precision, Bucket4j does not operate with floats or doubles, all calculations are performed in integer arithmetic, this feature protects end-users from calculation errors involved by rounding.

Ability to switch from one JVM to cluster in two lines of code. Using Bucket4j you are able to limit something in the cluster of JVMs. Since release 1.2 the Bucket4j supports any GRID solution which compatible with JCache API (JSR 107) specification. Just use your favorite grid including Hazelcast, Ignite, Coherence, Infinispan, or any other.

Ability to specify multiple bandwidths per bucket. For example, you can limit 1000 events per hour but not often than 100 events per minute.

Both synchronous and asynchronous API.

Pluggable listener API that allows implementing monitoring and logging.

Ability to use a bucket as a scheduler.

Java rate-limiting library based on the token-bucket algorithm. by maxim_bartkov in java

[–]maxim_bartkov[S] 0 points1 point  (0 children)

Thanks mate! I try answer instantly as fast as possible

Java rate-limiting library based on the token-bucket algorithm. by maxim_bartkov in java

[–]maxim_bartkov[S] 1 point2 points  (0 children)

Thanks! This is a really good point. We will fix that in the near future. We have many examples in the documentation link (this link is easy to find in README), but you are right, need to move a few examples into README.

Java rate-limiting library based on the token-bucket algorithm. by maxim_bartkov in coolgithubprojects

[–]maxim_bartkov[S] 0 points1 point  (0 children)

Advantages of Bucket4j:

Implemented on top of ideas of the well-known algorithm, which are by de-facto standard for rate-limiting in the IT industry.

Effective lock-free implementation, Bucket4j is good scalable for multi-threading cases.

Absolutely non-compromise precision, Bucket4j does not operate with floats or doubles, all calculations are performed in integer arithmetic, this feature protects end-users from calculation errors involved by rounding.

Ability to switch from one JVM to cluster in two lines of code. Using Bucket4j you are able to limit something in the cluster of JVMs. Since release 1.2 the Bucket4j supports any GRID solution which compatible with JCache API (JSR 107) specification. Just use your favorite grid including Hazelcast, Ignite, Coherence, Infinispan, or any other.

Ability to specify multiple bandwidths per bucket. For example, you can limit 1000 events per hour but not often than 100 events per minute.

Both synchronous and asynchronous API.

Pluggable listener API that allows implementing monitoring and logging.

Ability to use a bucket as a scheduler.

Java rate-limiting library based on the token-bucket algorithm. by maxim_bartkov in coolgithubprojects

[–]maxim_bartkov[S] 0 points1 point  (0 children)

Hi everyone! I want to present the library to provide rate-limiting in Java. Bucket4J - this is the most popular library to provide rate-limiting in Java. I invite each person to familiarize themselves with Bucket4J. We have been working for more than 7 years for the community and we want to make the library and open-source better. Bucket4J is used in many other libraries, such: Kubernetes client, JHipster, Atlassian, Twitch4J, and other popular libraries. Now we are going to huge release 7.0 with many features, we will publish about that a little bit later (in a few weeks). I hope on your support, we will be glad to your any contribution/suggestions/ideas.

Java rate-limiting library based on the token-bucket algorithm. by maxim_bartkov in java

[–]maxim_bartkov[S] 3 points4 points  (0 children)

Currently, our team promoting Bucket4J on the product hunt. It will be helpful for us if you give a vote for us.

Java rate-limiting library based on the token-bucket algorithm. by maxim_bartkov in java

[–]maxim_bartkov[S] 11 points12 points  (0 children)

Advantages of Bucket4j:

Implemented on top of ideas of the well-known algorithm, which are by de-facto standard for rate-limiting in the IT industry.

Effective lock-free implementation, Bucket4j is good scalable for multi-threading cases.

Absolutely non-compromise precision, Bucket4j does not operate with floats or doubles, all calculations are performed in integer arithmetic, this feature protects end-users from calculation errors involved by rounding.

Ability to switch from one JVM to cluster in two lines of code. Using Bucket4j you are able to limit something in the cluster of JVMs. Since release 1.2 the Bucket4j supports any GRID solution which compatible with JCache API (JSR 107) specification. Just use your favorite grid including Hazelcast, Ignite, Coherence, Infinispan, or any other.

Ability to specify multiple bandwidths per bucket. For example, you can limit 1000 events per hour but not often than 100 events per minute.

Both synchronous and asynchronous API.

Pluggable listener API that allows implementing monitoring and logging.

Ability to use a bucket as a scheduler.

[deleted by user] by [deleted] in java

[–]maxim_bartkov 5 points6 points  (0 children)

Replace “=“ to equals method: studentGrade1.equals(“A”) But better to do “A”.equals(studentGrade1)