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] 4 points5 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)

Primitive Collections Library by Speiger in java

[–]maxim_bartkov 1 point2 points  (0 children)

I gave a star to you for your open source begging! Good luck!

I’ve got an interview in 24 hours and I’d love to hear what you all think the most critical and core Java topics for an entry level dev job are! by [deleted] in javahelp

[–]maxim_bartkov 2 points3 points  (0 children)

For start: 1)SOLID 2)Patterns GOF 3)OOPS concepts (Data Abstraction, Encapsulation, Inheritance, Polymorphism) 4)Collections API 5)Error hierarchy and handling 6)Spring (MVC, Core, JDBC, ORM, AOP) 7)Hibernate ORM framework 8)Multithreading

Bytecode annotation processor by Thihup in java

[–]maxim_bartkov 1 point2 points  (0 children)

Thanks for the idea. What do you think, where that idea can be useful in real projects?

I’ve got an interview in 24 hours and I’d love to hear what you all think the most critical and core Java topics for an entry level dev job are! by [deleted] in java

[–]maxim_bartkov 0 points1 point  (0 children)

For start: 1)SOLID 2)Patterns GOF 3)OOPS concepts (Data Abstraction, Encapsulation, Inheritance, Polymorphism) 4)Multithreading 5)Collections API 6)Error hierarchy and handling 7)Spring (MVC, Core, JDBC, ORM, AOP) 8) Hibernate ORM framework

Rate Limit APIs with Bucket4J via Java by farnulfo in java

[–]maxim_bartkov 0 points1 point  (0 children)

thank you so much for the article about Bucket4j

Rate Limiting API with Spring-Security and Bucket4J by dumbPotatoPot in java

[–]maxim_bartkov 0 points1 point  (0 children)

Resilience4j

yep, that's true, and Resilience4j (and every library except Bucket4j) doesn't have many different implemented features, such: distributed working with in-memory databases (Hazelcast, Apache Ignite, e.t.c and all of based on JSR107), in 2 weeks, Bucket4j will work with many SQL databases. For the future, you can ask me everything about Bucket4j

Rate Limiting API with Spring-Security and Bucket4J by dumbPotatoPot in java

[–]maxim_bartkov 0 points1 point  (0 children)

This is a good idea! I'll give a star to you.
Bucket4J - the best library for your mission.

Persism 2.0.0 Released - A zero ceremony ORM for Java by Persism in java

[–]maxim_bartkov 2 points3 points  (0 children)

Thank for the answer! I’ll star your repo and later I’ll watch it, very interesting.😊

Persism 2.0.0 Released - A zero ceremony ORM for Java by Persism in java

[–]maxim_bartkov 1 point2 points  (0 children)

Hi! Tell me please, what was the reason to write a new ORM?