Load balancing is one of the core concepts required for building reliable distributed systems.
However, there is a lot of confusion on what it really is and most of the related information is not up-to-date. Take a look at this article to get a great overview about all the related concepts!
#architecture #middle #senior
https://blog.envoyproxy.io/introduction-to-modern-network-load-balancing-and-proxying-a57f6ff80236
However, there is a lot of confusion on what it really is and most of the related information is not up-to-date. Take a look at this article to get a great overview about all the related concepts!
#architecture #middle #senior
https://blog.envoyproxy.io/introduction-to-modern-network-load-balancing-and-proxying-a57f6ff80236
Medium
Introduction to modern network load balancing and proxying
It was brought to my attention recently that there is a dearth of introductory educational material available about modern network load…
Java (JVM) Memory Model – Memory Management in Java
Understanding JVM Memory Model, Java Memory Management is very important if you want to understand the working of Java Garbage Collection.
If you want to learn more about memory management in Java and the different parts of JVM Memory here is one very good tutorial for you! You can also find it helpful for understanding JVM memory and garbage collection process.
#java #jvm #jmm #middle #senior
https://www.journaldev.com/2856/java-jvm-memory-model-memory-management-in-java
Understanding JVM Memory Model, Java Memory Management is very important if you want to understand the working of Java Garbage Collection.
If you want to learn more about memory management in Java and the different parts of JVM Memory here is one very good tutorial for you! You can also find it helpful for understanding JVM memory and garbage collection process.
#java #jvm #jmm #middle #senior
https://www.journaldev.com/2856/java-jvm-memory-model-memory-management-in-java
JournalDev
Java (JVM) Memory Model – Memory Management in Java
Memory Management in Java. Java Memory Model. JVM Memory Model. Java memory allocation, Young Generation, Old Generation, Permanent Generation, Heap, Stack.
Log Management Refcard
In complex distributed systems a Centralized Log Management is invaluable especially when you need to find the root cause of an issue.
In this refacard you will get valuable information on how to build an efficient pipeline for collecting, processing and storing logs, e.g. how modern Log Management solutions work.
#logging #java #junior #middle #senior
https://dzone.com/refcardz/log-management
In complex distributed systems a Centralized Log Management is invaluable especially when you need to find the root cause of an issue.
In this refacard you will get valuable information on how to build an efficient pipeline for collecting, processing and storing logs, e.g. how modern Log Management solutions work.
#logging #java #junior #middle #senior
https://dzone.com/refcardz/log-management
dzone.com
Getting Started With Log Management - DZone Refcardz
Learn about the basic flow of a centralized log management strategy, key logging techniques, and detailed questions to consider when evaluating a log management solution.
Microservices for Java Developers: Performance and Load Testing
These days numerous frameworks and libraries make it is pretty easy to get from literally nothing to a full-fledged running application or service in a matter of hours. However, the decisions which frameworks make on your behalf (often called “sensitive defaults”) are far from being optimal (or even sufficient) in the context of the specific application or service.
In this tutorial you will get a great overview about performance and load testing, focusing on the tools to help you with achieving your goals and also highlight the typical areas of the application to tune.
#performance #testing #microservices #architecture #tools #middle #senior
https://www.javacodegeeks.com/2019/02/microservices-for-java-developers-performance-and-load-testing.html
These days numerous frameworks and libraries make it is pretty easy to get from literally nothing to a full-fledged running application or service in a matter of hours. However, the decisions which frameworks make on your behalf (often called “sensitive defaults”) are far from being optimal (or even sufficient) in the context of the specific application or service.
In this tutorial you will get a great overview about performance and load testing, focusing on the tools to help you with achieving your goals and also highlight the typical areas of the application to tune.
#performance #testing #microservices #architecture #tools #middle #senior
https://www.javacodegeeks.com/2019/02/microservices-for-java-developers-performance-and-load-testing.html
Java Code Geeks
Microservices for Java Developers: Performance and Load Testing - Java Code Geeks - 2022
Interested to learn more about Microservices? Then check out our detailed example on Microservices for Java Developers: Performance and Load Testing!
A Magic Around Spring Boot Externalized Configuration
There are some features that make Spring Boot really powerful, and one of them is an externalized configuration. Spring Boot allows you to configure your application in many ways. You have 17 levels of loading configuration properties into application.
See how you can make use of it in practice to make your application configurations more flexible and clear.
#java #spring #springboot #junior #middle #senior
https://piotrminkowski.wordpress.com/2019/03/11/a-magic-around-spring-boot-externalized-configuration/
There are some features that make Spring Boot really powerful, and one of them is an externalized configuration. Spring Boot allows you to configure your application in many ways. You have 17 levels of loading configuration properties into application.
See how you can make use of it in practice to make your application configurations more flexible and clear.
#java #spring #springboot #junior #middle #senior
https://piotrminkowski.wordpress.com/2019/03/11/a-magic-around-spring-boot-externalized-configuration/
Piotr's TechBlog
A Magic Around Spring Boot Externalized Configuration
There are some things I really like in Spring Boot, and one of them is an externalized (external) configuration. Spring Boot allows you to configure your application in many ways. You have 17 level…
How Do We Handle Failures in Microservices?
Dalia Borker explores the use of caching frameworks to improve resilience and performance in enterprise microservices systems with Redis, Pivotal Cloud Cache, and Hazelcast.
#microservices #architecture #redis #spring #hazelcast #middle #senior
https://www.infoq.com/presentations/failure-cache-redis-pcc-hazelcast
Dalia Borker explores the use of caching frameworks to improve resilience and performance in enterprise microservices systems with Redis, Pivotal Cloud Cache, and Hazelcast.
#microservices #architecture #redis #spring #hazelcast #middle #senior
https://www.infoq.com/presentations/failure-cache-redis-pcc-hazelcast
InfoQ
Enterprise Systems Built with Microservices are Designed to Expect Failures, But Then What? How Do We Handle Failures?
Dalia Borker explores the use of caching frameworks to improve resilience and performance in enterprise microservices systems with Redis, Pivotal Cloud Cache, and Hazelcast.
Scrum - The Most Popular Agile Methodology (Refcard)
Scrum is a framework that allows people to productively and creatively deliver products of the highest possible value. This refcard explores the details of Scrum, including theory, values, roles, and events. It also includes a sample of a popular approach to deliver Integrated Increments in a scaled environment.
#management #scrum #junior #middle #senior
https://dzone.com/refcardz/scrum
Scrum is a framework that allows people to productively and creatively deliver products of the highest possible value. This refcard explores the details of Scrum, including theory, values, roles, and events. It also includes a sample of a popular approach to deliver Integrated Increments in a scaled environment.
#management #scrum #junior #middle #senior
https://dzone.com/refcardz/scrum
dzone.com
Scrum - DZone Refcards
Scrum is an iterative, incremental software development framework commonly used with Agile software development. It uses one or more cross-functional, self-organizing teams of about seven people each. Scrum teams use fixed length iterations (called Sprints)…
Beware of Computation in static {} Initializer
It’s a quite common practice to prepare immutable data during class initialization and save the results in static final fields. In fact, this is exactly what static initializers are designed for.
However you should be careful using it as it can cause significant performance degradation in new JDK versions as shown in this article.
#java #bug #performance #middle #senior
https://pangin.pro/posts/computation-in-static-initializer
It’s a quite common practice to prepare immutable data during class initialization and save the results in static final fields. In fact, this is exactly what static initializers are designed for.
However you should be careful using it as it can cause significant performance degradation in new JDK versions as shown in this article.
#java #bug #performance #middle #senior
https://pangin.pro/posts/computation-in-static-initializer
pangin.pro
Beware of computation in static initializer
Even though it's a common practice to prepare data in static initializers in Java, this can have a dramatic performance impact.
Memory Footprint of the JVM
The JVM can be a complex beast. Thankfully, much of that complexity is under the hood, and we as application developers and deployers often don’t have to worry about it too much. With the rise of container-based deployment strategies, one area of complexity that needs some attention is the JVM’s memory footprint. In this post you can see the two kinds of memory, the differences between them, native memory areas, JVM sizing and what does this all mean for Spring, so be sure to check it out!
#jvm #performance #memory #spring #middle #senior
https://spring.io/blog/2019/03/11/memory-footprint-of-the-jvm
The JVM can be a complex beast. Thankfully, much of that complexity is under the hood, and we as application developers and deployers often don’t have to worry about it too much. With the rise of container-based deployment strategies, one area of complexity that needs some attention is the JVM’s memory footprint. In this post you can see the two kinds of memory, the differences between them, native memory areas, JVM sizing and what does this all mean for Spring, so be sure to check it out!
#jvm #performance #memory #spring #middle #senior
https://spring.io/blog/2019/03/11/memory-footprint-of-the-jvm
Memory footprint of the JVM
Level up your Java code and explore what Spring can do for you.
The Open-Closed Principle at an Architectural Level
If you are familiar with the SOLID principles for class design in OOP and if you have ever wondered if you can use them, for example the Open-Closed Principle, when designing the architecture of a system. The Open-Closed Principle, with microservices? Madness! Well, maybe not. Let's dive into it and check it out.
#architecture #middle #senior
https://dzone.com/articles/the-open-closed-principle-at-an-architectural-leve
If you are familiar with the SOLID principles for class design in OOP and if you have ever wondered if you can use them, for example the Open-Closed Principle, when designing the architecture of a system. The Open-Closed Principle, with microservices? Madness! Well, maybe not. Let's dive into it and check it out.
#architecture #middle #senior
https://dzone.com/articles/the-open-closed-principle-at-an-architectural-leve
DZone
The Open-Closed Principle at an Architectural Level
An architect gives a tutorial on how devs and architects can work with the Open-Closed Principle when designing the architecture of microservices-based system.
An Illustrated Guide to Kubernetes Networking
You’ve been running a bunch of services on a Kubernetes cluster and reaping the benefits. Or at least, you’re planning to. Even though there are a bunch of tools available to setup and manage a cluster, you’ve still wondered how it all works under the hood. And where do you look if it breaks? There are a lot of moving parts, and knowing how they all fit in and work together is a must, if you want to be ready for failures read this article!
#kubernetes #containers #middle #senior
https://morioh.com/p/ecb38c8342ba/an-illustrated-guide-to-kubernetes-networking
You’ve been running a bunch of services on a Kubernetes cluster and reaping the benefits. Or at least, you’re planning to. Even though there are a bunch of tools available to setup and manage a cluster, you’ve still wondered how it all works under the hood. And where do you look if it breaks? There are a lot of moving parts, and knowing how they all fit in and work together is a must, if you want to be ready for failures read this article!
#kubernetes #containers #middle #senior
https://morioh.com/p/ecb38c8342ba/an-illustrated-guide-to-kubernetes-networking
Morioh
Everything You Need to Know About Kubernetes Networking
Kubernetes networking allows Kubernetes components to communicate with each other and with other applications. Networking with Kubernetes allows administrators to move workloads across private, public, and hybrid cloud infrastructures. Kubernetes (sometimes…
Definitive Guide To Java 12
Java 12 will be released in a few days and here’s everything you need to know about it. Be it switch expressions, the teeing collector, improved start time thanks to the default CDS archive, or better memory usage due to garbage collection improvements – you will see each feature presented as well as migration options.
#java #java12 #middle #senior
https://blog.codefx.org/java/java-12-guide/
Java 12 will be released in a few days and here’s everything you need to know about it. Be it switch expressions, the teeing collector, improved start time thanks to the default CDS archive, or better memory usage due to garbage collection improvements – you will see each feature presented as well as migration options.
#java #java12 #middle #senior
https://blog.codefx.org/java/java-12-guide/
blog@CodeFX
Definitive Guide To Java 12 - blog@CodeFX
Detailed Java 12 guide: migration, versions; switch expressions, teeing collectors, indenting/transforming Strings (and more); default CDS, Shenandoah, G1.
Designing Event Driven Services
This is an amazing series of articles on how to deal with consistency in distributed systems, the right way. Don’t miss it.
Part 1: The Data Dichotomy: Rethinking the Way We Treat Data and Services
Part 2: Build Services on a Backbone of Events
Part 3: Using Apache Kafka for Service Architectures
Part 4: Chain Services with Exactly Once Guarantees
Part 5: Messaging as the Single Source of Truth
Part 6: Leveraging the Power of a Database Unbundled
Part 7: Building a Microservices Ecosystem with Kafka Streams and KSQL
#java #architecture #senior
This is an amazing series of articles on how to deal with consistency in distributed systems, the right way. Don’t miss it.
Part 1: The Data Dichotomy: Rethinking the Way We Treat Data and Services
Part 2: Build Services on a Backbone of Events
Part 3: Using Apache Kafka for Service Architectures
Part 4: Chain Services with Exactly Once Guarantees
Part 5: Messaging as the Single Source of Truth
Part 6: Leveraging the Power of a Database Unbundled
Part 7: Building a Microservices Ecosystem with Kafka Streams and KSQL
#java #architecture #senior
Confluent
Microservices: Rethinking the Way We Treat Data and Services | Confluent
For microservices, there is a tension between how we build services and how we approach the data that flows between them. Apache Kafka can help.
Java 12: Mapping with Switch Expressions
Java 12 comes with “preview” support for “Switch Expressions”. In this article, you will be looking at the new feature and how it can be used in conjunction with some common Stream operations. Jump in to learn how you can make your code even better with Streams and Switch Expressions!
https://www.javacodegeeks.com/2019/03/java-12-mapping-with-switch-expressions.html
#java #java12 #middle #senior
Java 12 comes with “preview” support for “Switch Expressions”. In this article, you will be looking at the new feature and how it can be used in conjunction with some common Stream operations. Jump in to learn how you can make your code even better with Streams and Switch Expressions!
https://www.javacodegeeks.com/2019/03/java-12-mapping-with-switch-expressions.html
#java #java12 #middle #senior
Java Code Geeks
Java 12: Mapping with Switch Expressions - Java Code Geeks - 2023
Interested to learn about Switch Expressions? Check our article looking at the new Java 12 feature “Switch Expressions” ..
Microservices Anti-Patterns
In this post, a developer talks about the microservices antipatterns that he's seen while working with clients of all sizes.
https://dzone.com/articles/microservices-anti-patterns
#microservices #architecture #senior
In this post, a developer talks about the microservices antipatterns that he's seen while working with clients of all sizes.
https://dzone.com/articles/microservices-anti-patterns
#microservices #architecture #senior
DZone
Microservices Anti-Patterns
An experienced developer discusses microservices anti-patterns and faux-pas he's witnessed working with clients over the course of his career.
20 Examples of Using Java’s CompletableFuture
Java 8's CompletableFuture is a versatile tool to have. Here are 20 examples of how you can use it in your code for the best effect. Be sure to check them out!
#java #java8 #middle #senior
https://dzone.com/articles/20-examples-of-using-javas-completablefuture
Java 8's CompletableFuture is a versatile tool to have. Here are 20 examples of how you can use it in your code for the best effect. Be sure to check them out!
#java #java8 #middle #senior
https://dzone.com/articles/20-examples-of-using-javas-completablefuture
DZone
20 Examples of Using Java’s CompletableFuture
For a better understanding of the CompletionStage API, let's look at 20 examples of CompletableFuture in action, both synchronously and asynchronously.
Continuous Profiling in Production: What, Why and How
Richard Warburton and Sadiq Jaffer talk about the ins and outs of profiling in a production system, the different techniques and approaches that help understand what’s really happening with a system. This helps solve new performance problems, regressions and undertake capacity planning exercises.
#tools #profiling #middle #senior
https://www.infoq.com/presentations/cotinuous-profiling-production
Richard Warburton and Sadiq Jaffer talk about the ins and outs of profiling in a production system, the different techniques and approaches that help understand what’s really happening with a system. This helps solve new performance problems, regressions and undertake capacity planning exercises.
#tools #profiling #middle #senior
https://www.infoq.com/presentations/cotinuous-profiling-production
InfoQ
Continuous Profiling in Production: What, Why and How
Richard Warburton and Sadiq Jaffer talk about the ins and outs of profiling in a production system, the different techniques and approaches that help understand what’s really happening with a system. This helps solve new performance problems, regressions…
Explore the New Java Garbage Collectors
The GC topic is still trendy especially considering the variety of Java application workloads and can have significant impact on performance.
The last two releases of Java introduced three new GCs. We'll take a look at each of them and what they add to the ecosystem.
#java #gc #middle #senior
https://dzone.com/articles/java-garbage-collection-3
The GC topic is still trendy especially considering the variety of Java application workloads and can have significant impact on performance.
The last two releases of Java introduced three new GCs. We'll take a look at each of them and what they add to the ecosystem.
#java #gc #middle #senior
https://dzone.com/articles/java-garbage-collection-3
DZone
Java Garbage Collection
Learn everything you need to know about the newest garbage collectors to the JVM, including the Epsilon GC, ZGC, and Shenandoah.
Excursions into Deduplication
For many workloads strings can be the most significant contributor to memory footprint.
When are Strings deduplicated? How can you find out whether they are of any benefit in your application? How much does it cost in terms of CPU?
This article will guide you how to easily find the answers to the questions above.
#java #jvm #middle #senior
https://www.javaspecialists.eu/archive/Issue270.html
For many workloads strings can be the most significant contributor to memory footprint.
When are Strings deduplicated? How can you find out whether they are of any benefit in your application? How much does it cost in terms of CPU?
This article will guide you how to easily find the answers to the questions above.
#java #jvm #middle #senior
https://www.javaspecialists.eu/archive/Issue270.html
www.javaspecialists.eu
[JavaSpecialists 270] - Excursions into Deduplication
When are Strings deduplicated? How can we find out whether they are of any benefit in our application? How much does it cost in terms of CPU? We try to show you how we can get this from the deduplication statistics provided by the JVM.
Nice overview of modern GCs
https://blogs.oracle.com/javamagazine/understanding-the-jdks-new-superfast-garbage-collectors
#java #gc #performance #middle #senior
https://blogs.oracle.com/javamagazine/understanding-the-jdks-new-superfast-garbage-collectors
#java #gc #performance #middle #senior
Oracle
Understanding the JDK’s New Superfast Garbage Collectors
ZGC, Shenandoah, and improvements to G1 get developers closer than ever to pauseless Java.