Posts

Showing posts with the label MIcroservices

Demystifying Service Mesh: How it Works and Why You Need It

 Introduction: In the ever-evolving landscape of modern application development and deployment, the concept of a "Service Mesh" has gained significant traction. As a tech blogger with over 12 years of experience, I'm here to provide a comprehensive update on this crucial topic. In this article, we'll delve into what a Service Mesh is, how it works, and why it has become an indispensable tool for managing complex microservices architectures. What is a Service Mesh? A Service Mesh is a dedicated infrastructure layer designed to facilitate communication between the microservices that make up an application. It acts as a transparent, language-agnostic network of interconnected components, providing essential functionalities such as service discovery, load balancing, security, and observability. The primary goal of a Service Mesh is to enhance the reliability, security, and manageability of microservices-based applications. How Does it Work? Now, let's dive deeper into...

Streaming Spring boot logs to ELK stack

Image
In my previous blog , we have done ELK installation on windows 10 and we have even tried to push messages from input console to Elastic Search and finally viewed on Kibana Server. I will write a separate blog on why do we need ELK? In this blog, I’ll show you how can we push spring boot application log directly to Elastic search using Logstash which we can analyze on Kibana and If you don’t know how to install ELK on windows 10 then you can refer my previous blog and start Elastic Search and Kibana server. Prerequisite Elastic Search and Kibana running on your machine Basic knowledge of Spring boot application If you don’t want to start your application from scratch then you can download one spring boot application from my GitHub repository as well. I am assuming that the Elastic Search and Kibana server are running on your machine and you have a fair idea of how to start the Logstash server and what is Logstash conf file. So, to push spring boot logs cont...

MicroServices: Spring cloud ribbon with Discovery Server

Image
In this article, I am going to share my knowledge on Spring Cloud Ribbon and how can we use Ribbon with RestTemplate as well as with Feign Client. We will also see how Enabling discovery Sever will improve the scalability of Microservice. Before jumping into Spring Cloud, I am assuming you must be having knowledge of Eureka Server, Feign Client, and Client-Side load balancer. If not then read my below blog before jumping to Spring Cloud ribbon. Also, I am going to use my existing code to implement Ribbon . URLs: Declarative REST Client: Feign Microservices: Service Registry and Discovery Netflix Hystrix Circuit Breaker In my previous blog, I have already talked about the Eureka Server and how other applications are taking advantages of Eureka Server to fetch the host/port of client application. We have seen that three microservices application are up and running i.e. Discovery Server Product Service Price Service Where Product and Price service will register themselves to...

Declarative REST Client: Feign

Image
We already know that how microservices communicate with each other using RestTemplate. In this blog, we will see that how this can happen using Feign Client as well.  What is a Feign Client? Feign is an abstraction over REST based call. It makes writing web service clients easier. It Is as easy as creating interface and then annotate it. It has pluggable annotation support including Feign annotations and JAX-RS annotations. It also supports pluggable encoders and decoders and has supports for Spring MVC annotation. Using Feign, microservices can easily communicate with each other and developers don't have to bother about REST internal details and can only concentrate on business logic. Implementation. I am going to use my previous applications to demonstrate the working of Feign Client. So before starting feign-client application. Make sure all the below three applications are already up and running.  Discovery-server Product-server Price-server Feign Client Impl...

Microservices: Service Registry and Discovery

Image
In my previous blog, I have already talked about Netflix Hystrix Circuit Breaker Microservices and explained it by creating two applications i.e. Product Service and Price Service. In this post, I’ll use both applications to explain what is the Service Registry and Discovery Server. Circuit Breaker and Microservices Architecture Netflix Hystrix Circuit Breaker   What is Service Registry and Discovery and why do we need it in the first place? In our monolithic application, mostly service invoke one another through language methods or procedure calls and even in traditional distributed system deployment, services run at fixed, well-known locations (hosts and ports) and so can easily call one another using HTTP/REST. Over here the network locations of service instances are relatively static. With the microservice architecture system, this is a much more difficult problem as service instances have dynamically assigned network locations. Service instances change dynamicall...

Netflix Hystrix Circuit Breaker

Image
Netflix Hystrix Circuit Breaker In one of my previous blogs, I have already discussed the Circuit breaker pattern and its usage, Today, we will see how can we implement it in our application using Spring Cloud Netflix Hystrix . In this document, I’ll walk you through the process of applying circuit breakers to potentially-failing method calls using the Netflix Hystrix fault tolerance library. Hystrix is watching methods for failing calls to related services. If there is such a failure, it will open the circuit and forward the call to a fallback method. To understand it in a better way, I’ll take the same problem statement that I have already discussed in my previous blog i.e. E-commerce Portal.  I am assuming you must be aware of Spring boot framework as this implementation is completely based on it. As per problem statement, we need two applications i.e. Product Service & Price Service but in this tutorial, I’ll talk about just Product Service as Price Service ...