Posts

Showing posts from 2020

Quick Refresh : Multi-threading : How to decide pool size for Thread Pools?

  How to decide pool size for Thread Pools? Thread pool is really an important topic to understand if you are developing an application, which is designed with multi-threading approaches. Thread pool is a pool of live worker threads. A worker thread is a thread that accepts a task, completes it, and comes back to the thread pool to accept another task. In such a way the application can use already exist threads multiple times instead of creating new threads every time. By using a thread pool in your application, you can boost its performance and utilize resources efficiently. But in this article, we are not talking about  how to create a thread pool and how does thread pool works . Here we will discuss how to decide pool size for thread pool? I mean, on which factors we could decide that how many threads, we should create in our thread pool for better time and resource utilization. Most of the time people don’t think about pool size for their thread pool and they create any number of t

Quick Refresh: Agile Mehtodology

Image
  Principles behind the Agile Manifesto   We follow these principles: 1.         Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.   2.         Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.   3.         Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.   4.         Business people and developers must work together daily throughout the project.   5.         Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.   6.         The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.   7.         Working software is the primary measure of progress.   8.         Agile processes promote sustainable development.  The sponsors, deve

Quick Refresh : Micro services : Declarative REST Client: Feign, Client Side Load Balancer: Ribbon, Service Discovery: Eureka Server, Eureka Client, Circuit Breaker: Hystrix, Hystrix Dashboard

Image
What Is a Feign Client? Netflix provides Feign as an abstraction over REST-based calls, by which microservices can communicate with each other, but developers don't have to bother about REST internal details. Why We Use Feign Client Earlier When one micro service communicated with another micro service, we programmatically constructed the URL of the dependent microservice,then called the service using RestTemplate, so we need to be aware of the RestTemplate API to communicate with other microservices, which is certainly not part of our business logic. The question is, why should a developer have to know the details of a REST API? Microservice developers only concentrate on business logic, so Spring addresses this issues and comes with Feign Client, which works on the declarative principle. We have to create an interface/contract, then Spring creates the original implementation on the fly, so a REST-based service call is abstracted from developers. Not only that — if you want to cus