Hystrix | fault tolerance library designed to isolate points | Architecture library

 by   Netflix Java Version: v1.5.18 License: No License

kandi X-RAY | Hystrix Summary

Hystrix is a Java library typically used in Architecture applications. Hystrix has no bugs, it has no vulnerabilities, it has build file available and it has medium support. You can download it from GitHub, Maven.
Hystrix is a latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd party libraries, stop cascading failure and enable resilience in complex distributed systems where failure is inevitable.
    Support
      Quality
        Security
          License
            Reuse
            Support
              Quality
                Security
                  License
                    Reuse

                      kandi-support Support

                        summary
                        Hystrix has a medium active ecosystem.
                        summary
                        It has 23263 star(s) with 4682 fork(s). There are 1658 watchers for this library.
                        summary
                        It had no major release in the last 12 months.
                        summary
                        There are 342 open issues and 681 have been closed. On average issues are closed in 348 days. There are 52 open pull requests and 0 closed requests.
                        summary
                        It has a neutral sentiment in the developer community.
                        summary
                        The latest version of Hystrix is v1.5.18
                        Hystrix Support
                          Best in #Architecture
                            Average in #Architecture
                            Hystrix Support
                              Best in #Architecture
                                Average in #Architecture

                                  kandi-Quality Quality

                                    summary
                                    Hystrix has 0 bugs and 0 code smells.
                                    Hystrix Quality
                                      Best in #Architecture
                                        Average in #Architecture
                                        Hystrix Quality
                                          Best in #Architecture
                                            Average in #Architecture

                                              kandi-Security Security

                                                summary
                                                Hystrix has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
                                                summary
                                                Hystrix code analysis shows 0 unresolved vulnerabilities.
                                                summary
                                                There are 0 security hotspots that need review.
                                                Hystrix Security
                                                  Best in #Architecture
                                                    Average in #Architecture
                                                    Hystrix Security
                                                      Best in #Architecture
                                                        Average in #Architecture

                                                          kandi-License License

                                                            summary
                                                            Hystrix does not have a standard license declared.
                                                            summary
                                                            Check the repository for any license declaration and review the terms closely.
                                                            summary
                                                            Without a license, all rights are reserved, and you cannot use the library in your applications.
                                                            Hystrix License
                                                              Best in #Architecture
                                                                Average in #Architecture
                                                                Hystrix License
                                                                  Best in #Architecture
                                                                    Average in #Architecture

                                                                      kandi-Reuse Reuse

                                                                        summary
                                                                        Hystrix releases are available to install and integrate.
                                                                        summary
                                                                        Deployable package is available in Maven.
                                                                        summary
                                                                        Build file is available. You can build the component from source.
                                                                        summary
                                                                        Installation instructions, examples and code snippets are available.
                                                                        summary
                                                                        Hystrix saves you 43535 person hours of effort in developing the same functionality from scratch.
                                                                        summary
                                                                        It has 51393 lines of code, 4306 functions and 439 files.
                                                                        summary
                                                                        It has medium code complexity. Code complexity directly impacts maintainability of the code.
                                                                        Hystrix Reuse
                                                                          Best in #Architecture
                                                                            Average in #Architecture
                                                                            Hystrix Reuse
                                                                              Best in #Architecture
                                                                                Average in #Architecture
                                                                                  Top functions reviewed by kandi - BETA
                                                                                  kandi has reviewed Hystrix and discovered the below as its top functions. This is intended to give you an instant insight into Hystrix implemented functionality, and help decide if they suit your requirements.
                                                                                  • Serialize command metrics .
                                                                                    • Initialize metrics .
                                                                                      • Executes a fallback or throws an exception
                                                                                        • Returns the current bucket .
                                                                                          • Executes the batch if not already started .
                                                                                            • Gets the executed commands as a string .
                                                                                              • Configures the servo monitors .
                                                                                                • Adds the command to the queue .
                                                                                                  • Perform a new update .
                                                                                                    • Gets information about method signature .
                                                                                                      Get all kandi verified functions for this library.
                                                                                                      Get all kandi verified functions for this library.

                                                                                                      Hystrix Key Features

                                                                                                      Hystrix is a latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd party libraries, stop cascading failure and enable resilience in complex distributed systems where failure is inevitable.

                                                                                                      Hystrix Examples and Code Snippets

                                                                                                      Initialize Hystrix configuration .
                                                                                                      javadot imgLines of Code : 15dot imgLicense : Permissive (MIT License)
                                                                                                      copy iconCopy
                                                                                                      
                                                                                                                                          @PostConstruct private void setup() { this.config = HystrixCommand.Setter.withGroupKey(HystrixCommandGroupKey.Factory.asKey(groupKey)); this.config = config.andCommandKey(HystrixCommandKey.Factory.asKey(key)); this.commandProperties = HystrixCommandProperties.Setter(); this.commandProperties.withExecutionTimeoutInMilliseconds(executionTimeout); this.commandProperties.withCircuitBreakerSleepWindowInMilliseconds(sleepWindow); this.threadPoolProperties = HystrixThreadPoolProperties.Setter(); this.threadPoolProperties.withMaxQueueSize(maxThreadCount).withCoreSize(coreThreadCount).withMaxQueueSize(queueCount); this.config.andCommandPropertiesDefaults(commandProperties); this.config.andThreadPoolPropertiesDefaults(threadPoolProperties); }
                                                                                                      The Hystrix command .
                                                                                                      javadot imgLines of Code : 6dot imgLicense : Permissive (MIT License)
                                                                                                      copy iconCopy
                                                                                                      
                                                                                                                                          @Bean @Primary @Order(value=Ordered.HIGHEST_PRECEDENCE) public HystrixCommandAspect hystrixAspect() { return new HystrixCommandAspect(); }
                                                                                                      Community Discussions

                                                                                                      Trending Discussions on Hystrix

                                                                                                      Can one setup Spring Boot 2.6 and Spring Cloud 2021.x to use Ribbon and Hystrix with Spring WebClient and Feign?
                                                                                                      chevron right
                                                                                                      org/springframework/boot/autoconfigure/web/ServerPropertiesAutoConfiguration.class cannot be opened because it does not exist
                                                                                                      chevron right
                                                                                                      Use main Gradle project to define all dependencies versions
                                                                                                      chevron right
                                                                                                      Zuul unable to route to application registered in eureka server
                                                                                                      chevron right
                                                                                                      Override Hysterix Logging
                                                                                                      chevron right
                                                                                                      Hbase batch get stuck in waitUntilDone AsyncProcess.java
                                                                                                      chevron right
                                                                                                      Spring Cloud Version compatible for Spring Boot 2.5.5
                                                                                                      chevron right
                                                                                                      How do you override the Hystrix configuration for OpenFeign?
                                                                                                      chevron right
                                                                                                      Feign - Hystrix - feign.RetryableException: Connection refused: no further information executing GET
                                                                                                      chevron right
                                                                                                      Error while starting Spring boot Eureka Client
                                                                                                      chevron right

                                                                                                      QUESTION

                                                                                                      Can one setup Spring Boot 2.6 and Spring Cloud 2021.x to use Ribbon and Hystrix with Spring WebClient and Feign?
                                                                                                      Asked 2022-Apr-12 at 10:13

                                                                                                      I know that Spring Cloud at some version (3.0?) dropped direct support for some Netflix libraries like Ribbon or Hystrix. Now I'm trying to make a smooth migration of around 20 microservices running on production having some custom code extending Ribbon (and Hystrix to a lesser degree). The main goal is to upgrade from Spring Boot 2.3 to 2.6. As a consequence I need to upgrade Spring Cloud to 3.1.x, right?

                                                                                                      My guess was to proceed with 2-step upgrade to avoid a one big-step migration:

                                                                                                      1. Upgrade to Spring Boot 2.6 and Spring Cloud 3.1 while still using Ribbon and Hystrix
                                                                                                      2. Make a way through a jungle of an old code and getting rid of Ribbon and Hystrix in smaller increments.

                                                                                                      However to achieve this I'm trying to use simultanously Spring Boot 2.6, Spring Cloud with release train 2021.01 and 2 selected starters from older Spring Cloud (latest versions of these artifacts):

                                                                                                      • spring-cloud-starter-netflix-hystrix 2.2.10.RELEASE
                                                                                                      • spring-cloud-starter-netflix-ribbon 2.2.10.RELEASE

                                                                                                      Is this possible at all? We are heavilly using Feign and Spring WebClient - client-side load-balancing must work for these. So far I found out Feign clients are not automatically integrated with Ribbon.

                                                                                                      @spencergibb @OlgaMaciaszek - especially counting on you.

                                                                                                      ANSWER

                                                                                                      Answered 2022-Apr-12 at 10:13

                                                                                                      Answering my own question after receiving confirmation from Spring Cloud team by other means: this is a bad idea to try use Ribbon with Spring Cloud 2021.01 and it would require a really hard work to make it working.

                                                                                                      Source https://stackoverflow.com/questions/71794854

                                                                                                      QUESTION

                                                                                                      org/springframework/boot/autoconfigure/web/ServerPropertiesAutoConfiguration.class cannot be opened because it does not exist
                                                                                                      Asked 2022-Mar-13 at 15:12

                                                                                                      I have this gradle configuration with the following dependencies:

                                                                                                      plugins {
                                                                                                          id 'org.springframework.boot' version '2.6.4'
                                                                                                          id 'io.spring.dependency-management' version '1.0.11.RELEASE'
                                                                                                          id 'java'
                                                                                                      }
                                                                                                      
                                                                                                      group = '......'
                                                                                                      version = '0.0.1'
                                                                                                      sourceCompatibility = '11'
                                                                                                      
                                                                                                      ext {
                                                                                                          set('springCloudVersion', "2021.0.1")
                                                                                                      }
                                                                                                      
                                                                                                      repositories {
                                                                                                          mavenCentral()
                                                                                                      }
                                                                                                      
                                                                                                      dependencies {
                                                                                                          implementation 'org.springframework.boot:spring-boot-starter-web'
                                                                                                          implementation 'org.springframework.cloud:spring-cloud-starter-openfeign'
                                                                                                          implementation 'org.springframework.cloud:spring-cloud-starter-loadbalancer'
                                                                                                          implementation 'org.codehaus.jettison:jettison:1.4.1'
                                                                                                          implementation 'com.netflix.eureka:eureka-core'
                                                                                                          implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
                                                                                                          implementation 'org.springframework.boot:spring-boot-starter-validation'
                                                                                                          implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
                                                                                                          implementation 'javax.validation:validation-api'
                                                                                                          implementation 'org.hibernate.validator:hibernate-validator'
                                                                                                          testImplementation 'org.springframework.boot:spring-boot-starter-test'
                                                                                                          implementation 'org.threeten:threetenbp:1.5.1'
                                                                                                          implementation 'org.springframework.boot:spring-boot-starter-actuator'
                                                                                                          implementation 'joda-time:joda-time:2.10.13'
                                                                                                          implementation 'org.springframework.security:spring-security-core'
                                                                                                          implementation 'org.apache.commons:commons-lang3:3.8.1'
                                                                                                          implementation 'org.apache.commons:commons-collections4:4.4'
                                                                                                          implementation 'org.json:json:20211205'
                                                                                                          implementation 'org.springframework.boot:spring-boot-starter-hateoas'
                                                                                                          implementation 'com.fasterxml.jackson.datatype:jackson-datatype-joda:2.13.1'
                                                                                                          implementation 'org.springframework.amqp:spring-amqp'
                                                                                                          implementation 'org.springframework.amqp:spring-rabbit'
                                                                                                          implementation 'io.jsonwebtoken:jjwt:0.9.1'
                                                                                                          implementation 'org.parboiled:parboiled-core:1.4.0'
                                                                                                          implementation 'commons-validator:commons-validator:1.7'
                                                                                                          implementation 'com.google.code.gson:gson:2.9.0'
                                                                                                          implementation 'org.springframework:spring-oxm'
                                                                                                          implementation 'org.springframework.ws:spring-ws-core'
                                                                                                          
                                                                                                          compileOnly 'org.projectlombok:lombok:1.18.22'
                                                                                                          annotationProcessor 'org.projectlombok:lombok:1.18.22'
                                                                                                          testCompileOnly 'org.projectlombok:lombok:1.18.22'
                                                                                                          testAnnotationProcessor 'org.projectlombok:lombok:1.18.22'
                                                                                                          runtimeOnly 'org.postgresql:postgresql'
                                                                                                      
                                                                                                          implementation group: 'io.springfox', name: 'springfox-boot-starter', version: '3.0.0'
                                                                                                      
                                                                                                          implementation 'org.liquibase:liquibase-core'
                                                                                                          testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
                                                                                                          testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2'
                                                                                                      }
                                                                                                      
                                                                                                      dependencyManagement {
                                                                                                          imports {
                                                                                                              mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
                                                                                                          }
                                                                                                      }
                                                                                                      
                                                                                                      test {
                                                                                                          useJUnitPlatform()
                                                                                                      }
                                                                                                      

                                                                                                      When I start the application I get this error:

                                                                                                      Caused by: java.io.FileNotFoundException: class path resource [org/springframework/boot/autoconfigure/web/ServerPropertiesAutoConfiguration.class] cannot be opened because it does not exist
                                                                                                      

                                                                                                      Do you know what dependency should be added or some dependency is missing?

                                                                                                      P.S

                                                                                                      The problem comes form this dependency:

                                                                                                      implementation 'org.springframework.cloud:spring-cloud-starter-hystrix:1.4.7.RELEASE'
                                                                                                      implementation group: 'com.netflix.hystrix', name: 'hystrix-core', version: '1.5.18'
                                                                                                      

                                                                                                      Do you know how I can fix it?

                                                                                                      ANSWER

                                                                                                      Answered 2022-Mar-13 at 15:12

                                                                                                      I think you question has been already answered; please, consider review this SO question.

                                                                                                      You need to include the following dependency:

                                                                                                      implementation 'org.springframework.cloud:spring-cloud-starter-netflix-hystrix:2.2.10.RELEASE'
                                                                                                      

                                                                                                      Because you are using Spring BOM maybe this will be enough:

                                                                                                      implementation 'org.springframework.cloud:spring-cloud-starter-netflix-hystrix'
                                                                                                      

                                                                                                      Source https://stackoverflow.com/questions/71435677

                                                                                                      QUESTION

                                                                                                      Use main Gradle project to define all dependencies versions
                                                                                                      Asked 2022-Mar-06 at 15:38

                                                                                                      I want to create one main Gradle project which hosts all project dependencies:

                                                                                                      Main Gradle project:

                                                                                                      plugins {
                                                                                                          id 'org.springframework.boot' version '2.6.4'
                                                                                                          id 'io.spring.dependency-management' version '1.0.11.RELEASE'
                                                                                                          id 'java'
                                                                                                          id 'maven-publish'
                                                                                                      }
                                                                                                      
                                                                                                      group = 'com.parent.dependencies'
                                                                                                      version = '0.0.1'
                                                                                                      sourceCompatibility = '11'
                                                                                                      
                                                                                                      ext {
                                                                                                          set('springCloudVersion', "2021.0.1")
                                                                                                          artifactory_contextUrl = "http://192.168.1.112/repository"
                                                                                                      }
                                                                                                      
                                                                                                      repositories {
                                                                                                          mavenCentral()
                                                                                                          maven {
                                                                                                              url "${artifactory_contextUrl}/plugins-release"
                                                                                                              allowInsecureProtocol = true
                                                                                                          }
                                                                                                      }
                                                                                                      
                                                                                                      dependencies {
                                                                                                          implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
                                                                                                          implementation 'org.springframework.boot:spring-boot-starter-validation'
                                                                                                          testImplementation 'org.springframework.boot:spring-boot-starter-test'
                                                                                                          implementation 'org.threeten:threetenbp:1.5.1'
                                                                                                          implementation 'org.springframework.boot:spring-boot-starter-actuator'
                                                                                                          // Lombok
                                                                                                          compileOnly 'org.projectlombok:lombok:1.18.22'
                                                                                                          annotationProcessor 'org.projectlombok:lombok:1.18.22'
                                                                                                          testCompileOnly 'org.projectlombok:lombok:1.18.22'
                                                                                                          testAnnotationProcessor 'org.projectlombok:lombok:1.18.22'
                                                                                                          // Swagger
                                                                                                          implementation group: 'io.springfox', name: 'springfox-boot-starter', version: '3.0.0'
                                                                                                          implementation 'org.springframework.boot:spring-boot-starter-hateoas:2.6.3'
                                                                                                          implementation group: 'com.netflix.hystrix', name: 'hystrix-core', version: '1.5.18'
                                                                                                          implementation group: 'org.springframework.security', name: 'spring-security-core', version: '5.6.1'
                                                                                                          testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
                                                                                                          testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2'
                                                                                                      }
                                                                                                      
                                                                                                      dependencyManagement {
                                                                                                          imports {
                                                                                                              mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
                                                                                                          }
                                                                                                          resolutionStrategy {
                                                                                                              cacheDynamicVersionsFor 0, "seconds"
                                                                                                              cacheChangingModulesFor 0, "seconds"
                                                                                                          }
                                                                                                      }
                                                                                                      
                                                                                                      bootJar {
                                                                                                          enabled = false
                                                                                                      }
                                                                                                      
                                                                                                      publishing {
                                                                                                          publications {
                                                                                                              mavenJava(MavenPublication) {
                                                                                                                  from components.java
                                                                                                              }
                                                                                                          }
                                                                                                          repositories {
                                                                                                              mavenLocal()
                                                                                                          }
                                                                                                      }
                                                                                                      
                                                                                                      test {
                                                                                                          useJUnitPlatform()
                                                                                                      }
                                                                                                      

                                                                                                      Sub project which will read all dependencies versions from parent Gradle project:

                                                                                                      plugins {
                                                                                                          id 'org.springframework.boot' version '2.6.4'
                                                                                                          id 'io.spring.dependency-management' version '1.0.11.RELEASE'
                                                                                                          id 'java'
                                                                                                          id 'maven-publish'
                                                                                                      }
                                                                                                      
                                                                                                      group = 'com.child'
                                                                                                      version = '0.0.1'
                                                                                                      sourceCompatibility = '11'
                                                                                                      
                                                                                                      ext {
                                                                                                          artifactory_contextUrl = "http://192.168.1.112/repository"
                                                                                                      }
                                                                                                      
                                                                                                      repositories {
                                                                                                          mavenCentral()
                                                                                                          maven {
                                                                                                              url "${artifactory_contextUrl}/plugins-release"
                                                                                                              allowInsecureProtocol = true
                                                                                                          }
                                                                                                      }
                                                                                                      
                                                                                                      dependencies {
                                                                                                          implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
                                                                                                          implementation 'org.springframework.boot:spring-boot-starter-validation'
                                                                                                          testImplementation 'org.springframework.boot:spring-boot-starter-test'
                                                                                                          implementation 'org.threeten:threetenbp'
                                                                                                          implementation 'org.springframework.boot:spring-boot-starter-actuator'
                                                                                                          // Lombok
                                                                                                          compileOnly 'org.projectlombok:lombok'
                                                                                                          annotationProcessor 'org.projectlombok:lombok'
                                                                                                          testCompileOnly 'org.projectlombok:lombok'
                                                                                                          testAnnotationProcessor 'org.projectlombok:lombok'
                                                                                                          // Swagger
                                                                                                          implementation 'io.springfox:springfox-boot-starter'
                                                                                                          implementation 'org.springframework.boot:spring-boot-starter-hateoas'
                                                                                                          implementation 'com.netflix.hystrix:hystrix-core'
                                                                                                          implementation 'org.springframework.security:spring-security-core'
                                                                                                          testImplementation 'org.junit.jupiter:junit-jupiter-api'
                                                                                                          testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
                                                                                                      }
                                                                                                      
                                                                                                      dependencyManagement {
                                                                                                          imports {
                                                                                                              mavenBom "com.parent:com-parent-dependencies:0.0.1"
                                                                                                          }
                                                                                                      }
                                                                                                      
                                                                                                      bootJar {
                                                                                                          enabled = false
                                                                                                      }
                                                                                                      
                                                                                                      publishing {
                                                                                                          publications {
                                                                                                              mavenJava(MavenPublication) {
                                                                                                                  from components.java
                                                                                                              }
                                                                                                          }
                                                                                                          repositories {
                                                                                                              mavenLocal()
                                                                                                          }
                                                                                                      }
                                                                                                      
                                                                                                      test {
                                                                                                          useJUnitPlatform()
                                                                                                      }
                                                                                                      

                                                                                                      When I try to compile the child project I get error:

                                                                                                      Execution failed for task ':compileJava'.
                                                                                                      > Could not resolve all files for configuration ':compileClasspath'.
                                                                                                         > Could not find org.threeten:threetenbp:.
                                                                                                           Required by:
                                                                                                               project :
                                                                                                         > Could not find io.springfox:springfox-boot-starter:.
                                                                                                           Required by:
                                                                                                               project :
                                                                                                         > Could not find com.netflix.hystrix:hystrix-core:.
                                                                                                           Required by:
                                                                                                               project :
                                                                                                      

                                                                                                      Do you know how I can define properly the parent Gradle project with all dependencies versions and use the child project without defining dependencies versions?

                                                                                                      ANSWER

                                                                                                      Answered 2022-Mar-06 at 15:36

                                                                                                      There’s a relatively new Gradle feature called “version catalogs”. With those you can centrally declare dependencies that you’d like to share between multiple projects of your build (or even between different builds).

                                                                                                      In your concrete example, you’d add something like the following to your settings.gradle file:

                                                                                                      dependencyResolutionManagement {
                                                                                                          versionCatalogs {
                                                                                                              libs {
                                                                                                                  library('spring-cloud-bom', 'org.springframework.cloud:spring-cloud-dependencies:2021.0.1')
                                                                                                                  library('spring-cloud-starter', 'org.springframework.cloud', 'spring-cloud-starter-netflix-eureka-client').withoutVersion()
                                                                                                                  library('spring-boot-starter-validation', 'org.springframework.boot', 'spring-boot-starter-validation').withoutVersion()
                                                                                                                  library('spring-boot-starter-test', 'org.springframework.boot', 'spring-boot-starter-test').withoutVersion()
                                                                                                                  library('threetenbp', 'org.threeten:threetenbp:1.5.1')
                                                                                                                  library('spring-boot-starter-actuator', 'org.springframework.boot', 'spring-boot-starter-actuator').withoutVersion()
                                                                                                                  library('lombok', 'org.projectlombok:lombok:1.18.22')
                                                                                                                  library('springfox-boot-starter', 'io.springfox:springfox-boot-starter:3.0.0')
                                                                                                                  library('spring-boot-starter-hateoas', 'org.springframework.boot:spring-boot-starter-hateoas:2.6.3')
                                                                                                                  library('hysterix-core', 'com.netflix.hystrix:hystrix-core:1.5.18')
                                                                                                                  library('spring-security-core', 'org.springframework.security:spring-security-core:5.6.1')
                                                                                                                  library('junit-jupiter-api', 'org.junit.jupiter:junit-jupiter-api:5.8.2')
                                                                                                                  library('junit-jupiter-engine', 'org.junit.jupiter:junit-jupiter-engine:5.8.2')
                                                                                                              }
                                                                                                          }
                                                                                                      }
                                                                                                      

                                                                                                      Then, in both build.gradle files, you’d replace your dependencies blocks with the following:

                                                                                                      dependencies {
                                                                                                          implementation libs.spring.cloud.starter
                                                                                                          implementation libs.spring.boot.starter.validation
                                                                                                          testImplementation libs.spring.boot.starter.test
                                                                                                          implementation libs.threetenbp
                                                                                                          implementation libs.spring.boot.starter.actuator
                                                                                                          // Lombok
                                                                                                          compileOnly libs.lombok
                                                                                                          annotationProcessor libs.lombok
                                                                                                          testCompileOnly libs.lombok
                                                                                                          testAnnotationProcessor libs.lombok
                                                                                                          // Swagger
                                                                                                          implementation libs.springfox.boot.starter
                                                                                                          implementation libs.spring.boot.starter.hateoas
                                                                                                          implementation libs.hysterix.core
                                                                                                          implementation libs.spring.security.core
                                                                                                          testImplementation libs.junit.jupiter.api
                                                                                                          testRuntimeOnly libs.junit.jupiter.engine
                                                                                                      }
                                                                                                      

                                                                                                      As you’re using a Maven BOM for Spring, you’ll also have to use the following updated dependencyManagement block in all projects:

                                                                                                      dependencyManagement {
                                                                                                          imports {
                                                                                                              mavenBom libs.spring.cloud.bom.get().toString()
                                                                                                          }
                                                                                                          resolutionStrategy {
                                                                                                              cacheDynamicVersionsFor 0, "seconds"
                                                                                                              cacheChangingModulesFor 0, "seconds"
                                                                                                          }
                                                                                                      }
                                                                                                      

                                                                                                      That should be it. I could successfully test your sample build configurations with my updates at least on Gradle 7.4.

                                                                                                      Source https://stackoverflow.com/questions/71281120

                                                                                                      QUESTION

                                                                                                      Zuul unable to route to application registered in eureka server
                                                                                                      Asked 2022-Feb-20 at 19:00

                                                                                                      I am developing a Microservice were I am trying to use the Zuul proxy to route through the services. But for some reason Zuul unable to route to the app registered in eureka. I have tried increasing hystrix and Zuul timeout but nothing working

                                                                                                      Exception Thrown

                                                                                                      com.netflix.zuul.exception.ZuulException: Forwarding error at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.handleException(RibbonRoutingFilter.java:198) ~[spring-cloud-netflix-zuul-2.2.10.RELEASE.jar:2.2.10.RELEASE]

                                                                                                      Zuul application.yml

                                                                                                      server:
                                                                                                        port: 8082
                                                                                                      
                                                                                                      spring:
                                                                                                        application:
                                                                                                          name: gateway
                                                                                                      eureka:
                                                                                                        client:
                                                                                                          register-with-eureka: true
                                                                                                          fetch-registry: true
                                                                                                          serviceUrl:
                                                                                                            defaultZone: ${EUREKA_URI:http://localhost:8761/eureka}
                                                                                                        instance:
                                                                                                          hostname: localhost
                                                                                                      
                                                                                                      ribbon:
                                                                                                        eureka:
                                                                                                          enabled: true
                                                                                                      
                                                                                                      zuul:
                                                                                                        ignoredServices: "*"
                                                                                                        host:
                                                                                                          connect-timeout-millis: 5000000
                                                                                                          socket-timeout-millis: 5000000
                                                                                                        prefix: /api
                                                                                                        routes:
                                                                                                          game:
                                                                                                            path: /game/**
                                                                                                            serviceId: game
                                                                                                          trend:
                                                                                                            path: /trend/**
                                                                                                            serviceId: trend
                                                                                                      

                                                                                                      Here I have two Microservices called "game" and "trend" both are registered in eureka service, but not able to navigate to applications through Zuul proxy.

                                                                                                      ANSWER

                                                                                                      Answered 2022-Feb-20 at 18:48

                                                                                                      After Some research I found that Ribbon, Zuul are in maintenance mode and we won't get any new version and spring also came up with alternative for Ribbon, Zuul etc. Please refer this link for spring alternative for load balancing, proxy server etc

                                                                                                      And for this issue I used spring cloud gateway instead of Zuul which is the alternative provided by spring

                                                                                                      Required Dependency

                                                                                                              
                                                                                                                  org.springframework.cloud
                                                                                                                  spring-cloud-starter-gateway
                                                                                                                  3.1.0
                                                                                                              
                                                                                                      

                                                                                                      Now the application yml of proxy server looks like

                                                                                                      server:
                                                                                                        port: 8082
                                                                                                      
                                                                                                      spring:
                                                                                                        application:
                                                                                                          name: gateway
                                                                                                        cloud:
                                                                                                          gateway:
                                                                                                            discovery:
                                                                                                              locator:
                                                                                                                enabled: true
                                                                                                                lower-case-service-id: true
                                                                                                            routes:
                                                                                                              - id: game
                                                                                                                uri: lb://game
                                                                                                                predicates:
                                                                                                                  - Path=/game/**
                                                                                                              - id: trend
                                                                                                                uri: lb://trend
                                                                                                                predicates:
                                                                                                                  - Path=/trend/**
                                                                                                      
                                                                                                      eureka:
                                                                                                        client:
                                                                                                          serviceURL:
                                                                                                            defaultZone: http://localhost:8761/eureka
                                                                                                      

                                                                                                      Source https://stackoverflow.com/questions/71195587

                                                                                                      QUESTION

                                                                                                      Override Hysterix Logging
                                                                                                      Asked 2021-Dec-10 at 15:21

                                                                                                      I am trying to understand the logs generated by SpringBoot before and after implementing Hysterix Circuit Breaker

                                                                                                      Before Hystrix the logs looked like,

                                                                                                      17:31:35.977 [http-nio-8080-exec-2] [TransID:bcc8a9e9-41b7-47c8-9eb1-0f8becb42f68] INFO  c.f.e.common.logging.MethodLogging - Entered Class: class com.org.myapp.service.MyService, Method: getData, Arguments: 123456
                                                                                                      

                                                                                                      After implementing Hystrix the logs looks like,

                                                                                                      17:21:23.197 [hystrix-MyController-1] [TransID:] INFO  c.f.e.common.logging.MethodLogging - Entered Class: class com.org.myapp.service.MyService, Method: getData, Arguments: 123456
                                                                                                      

                                                                                                      So, how did http-nio-8080-exec-2 get replaced with hystrix-OrchestratorController-1, and why it's not showing my TransactionId when Hystrix got implemented. How did Hystrix take over the logging? What's the difference between both? Is there any way to revert back to my old logging format? I tried hystrix.command.default.requestLog.enabled=false in my application.properties, but no luck.

                                                                                                      Main class

                                                                                                      @SpringBootApplication
                                                                                                      @EnableCircuitBreaker
                                                                                                      class MyApp{
                                                                                                      }
                                                                                                      

                                                                                                      RestController

                                                                                                      @GetMapping("...")
                                                                                                      @HystrixCommand(commandKey="data")
                                                                                                      public Object getData(){
                                                                                                      }
                                                                                                      

                                                                                                      application.properties

                                                                                                      hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=5000
                                                                                                      

                                                                                                      ANSWER

                                                                                                      Answered 2021-Dec-10 at 15:21

                                                                                                      Hystrix is using its own thread instead of the local thread. That's the reason your log looks different.

                                                                                                      Add this property in your application.properties

                                                                                                      hystrix.command.default.execution.isolation.strategy=SEMAPHORE
                                                                                                      

                                                                                                      Now hystrix will use your local thread.

                                                                                                      Source https://stackoverflow.com/questions/70275002

                                                                                                      QUESTION

                                                                                                      Hbase batch get stuck in waitUntilDone AsyncProcess.java
                                                                                                      Asked 2021-Nov-18 at 06:10

                                                                                                      I am using HBase client Hbase client 1.4.13 (the issue was there in 1.4.10 as well). One host randomly starts misbehaving and does not return data from hbase. I took the thread dump and many threads are stuck in

                                                                                                      stackTrace:
                                                                                                      java.lang.Thread.State: TIMED_WAITING (on object monitor)
                                                                                                      at java.lang.Object.wait(Native Method)
                                                                                                      at org.apache.hadoop.hbase.client.AsyncProcess$AsyncRequestFutureImpl.waitUntilDone(AsyncProcess.java:1767)
                                                                                                      - locked <0x000000043b004280> (a java.util.concurrent.atomic.AtomicLong)
                                                                                                      at org.apache.hadoop.hbase.client.AsyncProcess$AsyncRequestFutureImpl.waitUntilDone(AsyncProcess.java:1733)
                                                                                                      at org.apache.hadoop.hbase.client.HTable.batch(HTable.java:906)
                                                                                                      at org.apache.hadoop.hbase.client.HTable.existsAll(HTable.java:1440)
                                                                                                      at com.netflix.hystrix.HystrixCommand$2.call(HystrixCommand.java:302)
                                                                                                      at com.netflix.hystrix.HystrixCommand$2.call(HystrixCommand.java:298)
                                                                                                      at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:46)
                                                                                                      at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:35)
                                                                                                      at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
                                                                                                      at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
                                                                                                      at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
                                                                                                      at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
                                                                                                      at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
                                                                                                      at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
                                                                                                      at rx.Observable.unsafeSubscribe(Observable.java:10151)
                                                                                                      at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:51)
                                                                                                      at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:35)
                                                                                                      at rx.Observable.unsafeSubscribe(Observable.java:10151)
                                                                                                      at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:41)
                                                                                                      at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:30)
                                                                                                      at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
                                                                                                      at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
                                                                                                      at rx.Observable.unsafeSubscribe(Observable.java:10151)
                                                                                                      at rx.internal.operators.OperatorSubscribeOn$1.call(OperatorSubscribeOn.java:94)
                                                                                                      at com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction$1.call(HystrixContexSchedulerAction.java:56)
                                                                                                      at com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction$1.call(HystrixContexSchedulerAction.java:47)
                                                                                                      at com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction.call(HystrixContexSchedulerAction.java:69)
                                                                                                      at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
                                                                                                      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
                                                                                                      at java.util.concurrent.FutureTask.run(FutureTask.java:266)
                                                                                                      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
                                                                                                      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
                                                                                                      at java.lang.Thread.run(Thread.java:748)
                                                                                                      

                                                                                                      I check connection stats using netstat, all the hbase connections were in ESTABLISHED state. The source code is available here. Hbase server is 2.X

                                                                                                      ANSWER

                                                                                                      Answered 2021-Nov-18 at 06:10

                                                                                                      we were not setting HBASE_CLIENT_IPC_POOL_SIZE, by default it was 1.

                                                                                                      After setting it to 3, we did not see the issue anymore.

                                                                                                      Source https://stackoverflow.com/questions/69294175

                                                                                                      QUESTION

                                                                                                      Spring Cloud Version compatible for Spring Boot 2.5.5
                                                                                                      Asked 2021-Nov-01 at 14:02

                                                                                                      I'm trying to build a microservice application which will be using Hystrix and some distributed tracing from Spring Cloud. When i tried using Spring Cloud version '2021.0.0-M3' for the Spring boot version '2.5.5' I get below error while startup:

                                                                                                      ***Your project setup is incompatible with our requirements due to following reasons:

                                                                                                      • Spring Boot [2.5.5] is not compatible with this Spring Cloud release train***

                                                                                                      Is there a compatibility matrix between spring boot and Spring Cloud.

                                                                                                      ANSWER

                                                                                                      Answered 2021-Nov-01 at 14:02

                                                                                                      Spring Cloud Release mapping with Spring Boot compatibility:

                                                                                                      1. 2020.0.x aka Ilford ----> Spring Boot 2.4.x, 2.5.x (Starting with 2020.0.3)
                                                                                                      2. Hoxton ----> Spring Boot 2.2.x, 2.3.x (Starting with SR5)
                                                                                                      3. Greenwich ----> Spring Boot 2.1.x
                                                                                                      4. Finchley ----> Spring Boot 2.0.x
                                                                                                      5. Edgware ----> Spring Boot 1.5.x
                                                                                                      6. Dalston ----> Spring Boot 1.5.x

                                                                                                      Source: documentation link

                                                                                                      Source https://stackoverflow.com/questions/69797569

                                                                                                      QUESTION

                                                                                                      How do you override the Hystrix configuration for OpenFeign?
                                                                                                      Asked 2021-Sep-15 at 20:40

                                                                                                      How do you override the Hystrix default configuration for OpenFeign? Most of the documentation out there is for SpringBoot + OpenFeign, which has its own Spring-specific configuration override system.

                                                                                                      Ideally it would be possible to configure the Hystrix core size for the client and configure and timeouts on a per endpoint basis.

                                                                                                      ANSWER

                                                                                                      Answered 2021-Sep-15 at 20:40

                                                                                                      Hystrix OpenFeign has a setterFactory() method on the builder that allows you to pass in a SetterFactory lambda function that is executed when setting up each target endpoint:

                                                                                                      final SetterFactory hystrixConfigurationFactory = (target, method) -> {
                                                                                                          final String groupKey = target.name();
                                                                                                          final String commandKey = method.getAnnotation(RequestLine.class).value();
                                                                                                      
                                                                                                          // Configure default thread pool properties
                                                                                                          final HystrixThreadPoolProperties.Setter hystrixThreadPoolProperties = HystrixThreadPoolProperties.Setter()
                                                                                                              .withCoreSize(50)
                                                                                                              .withMaximumSize(200)
                                                                                                              .withAllowMaximumSizeToDivergeFromCoreSize(true);
                                                                                                      
                                                                                                          return HystrixCommand.Setter
                                                                                                              .withGroupKey(HystrixCommandGroupKey.Factory.asKey(groupKey))
                                                                                                              .andCommandKey(HystrixCommandKey.Factory.asKey(commandKey))
                                                                                                              .andThreadPoolPropertiesDefaults(hystrixThreadPoolProperties);;
                                                                                                      };
                                                                                                      
                                                                                                      final MyTargetClient myTargetClient = HystrixFeign.builder()
                                                                                                          .setterFactory(hystrixConfigurationFactory)
                                                                                                          .client(new OkHttpClient())
                                                                                                          .encoder(new JacksonEncoder(objectMapper))
                                                                                                          .decoder(new JacksonDecoder(objectMapper))
                                                                                                          .target(new Target.HardCodedTarget<>(MyTargetClient.class, "customclientname", baseUrl))
                                                                                                      

                                                                                                      The above example uses boilerplate from the OpenFeign documentation to properly name Hystrix keys based on the target endpoint function. It then goes further by also configuring the default thread pool property core size and maximum core size as a default for all of the target functions.

                                                                                                      However, since this factory is called for each target endpoint, we can actually override the Hystrix configuration on a per endpoint basis. A use good case for this is Hystrix timeouts: sometimes there are endpoints that take longer than others and we need to account for that.

                                                                                                      The easiest way would be to first create an annotation and place it on the target endpoints that need to be overridden:

                                                                                                      /**
                                                                                                       * Override Hystrix configuration for Feign targets.
                                                                                                       */
                                                                                                      @Retention(RetentionPolicy.RUNTIME)
                                                                                                      @Target(ElementType.METHOD)
                                                                                                      @interface HystrixOverride {
                                                                                                          int DEFAULT_EXECUTION_TIMEOUT = 2_000;
                                                                                                      
                                                                                                          /**
                                                                                                           * Execution timeout in milliseconds.
                                                                                                           */
                                                                                                          int executionTimeout() default DEFAULT_EXECUTION_TIMEOUT;
                                                                                                      }
                                                                                                      
                                                                                                      interface MyTargetClient {
                                                                                                          @HystrixOverride(executionTimeout = 10_000)
                                                                                                          @RequestLine("GET /rest/{storeCode}/V1/products")
                                                                                                          Products searchProducts(@Param("storeCode") String storeCode, @QueryMap Map queryMap);
                                                                                                      
                                                                                                          @RequestLine("GET /rest/{storeCode}/V1/products/{sku}")
                                                                                                          Product getProduct(@Param("storeCode") String storeCode, @Param("sku") String sku);
                                                                                                      }
                                                                                                      

                                                                                                      In the above example, the search API might take a little longer to load so we have an override for that.

                                                                                                      Just putting the override annotation on the target endpoint function is not enough though. We need to go back to our factory and update it to use the data in the annotations:

                                                                                                      final SetterFactory hystrixConfigurationFactory = (target, method) -> {
                                                                                                          final String groupKey = target.name();
                                                                                                          final String commandKey = method.getAnnotation(RequestLine.class).value();
                                                                                                      
                                                                                                          // Configure per-function Hystrix configuration by referencing annotations
                                                                                                          final HystrixCommandProperties.Setter hystrixCommandProperties = HystrixCommandProperties.Setter();
                                                                                                          final HystrixOverride hystrixOverride = method.getAnnotation(HystrixOverride.class);
                                                                                                      
                                                                                                          final int executionTimeout = (hystrixOverride == null)
                                                                                                              ? HystrixOverride.DEFAULT_EXECUTION_TIMEOUT
                                                                                                              : hystrixOverride.executionTimeout();
                                                                                                          hystrixCommandProperties.withExecutionTimeoutInMilliseconds(executionTimeout);
                                                                                                      
                                                                                                          // Configure default thread pool properties
                                                                                                          final HystrixThreadPoolProperties.Setter hystrixThreadPoolProperties = HystrixThreadPoolProperties.Setter()
                                                                                                              .withCoreSize(50)
                                                                                                              .withMaximumSize(200)
                                                                                                              .withAllowMaximumSizeToDivergeFromCoreSize(true);
                                                                                                      
                                                                                                          return HystrixCommand.Setter
                                                                                                              .withGroupKey(HystrixCommandGroupKey.Factory.asKey(groupKey))
                                                                                                              .andCommandKey(HystrixCommandKey.Factory.asKey(commandKey))
                                                                                                              .andCommandPropertiesDefaults(hystrixCommandProperties)
                                                                                                              .andThreadPoolPropertiesDefaults(hystrixThreadPoolProperties);;
                                                                                                      };
                                                                                                      

                                                                                                      The above checks that an override annotation exists and then uses the data in that annotation to configure the execution timeout for that target endpoint. If the override is not present, the default for the HystrixOverride endpoint will be used instead. The resulting hystrixCommandProperties variable is then plugged in to the overall HystrixCommand.Setter at the end.

                                                                                                      Source https://stackoverflow.com/questions/69199540

                                                                                                      QUESTION

                                                                                                      Feign - Hystrix - feign.RetryableException: Connection refused: no further information executing GET
                                                                                                      Asked 2021-Sep-11 at 13:49

                                                                                                      I have

                                                                                                      @FeignClient(name="verbservice", fallback = VerbClientFallback.class)
                                                                                                      public interface VerbClient {
                                                                                                          @GetMapping
                                                                                                          public String getVerbWord();
                                                                                                      }
                                                                                                      

                                                                                                      and

                                                                                                      @Component
                                                                                                      public class VerbClientFallback implements VerbClient {
                                                                                                          @Override
                                                                                                          public String getVerbWord() {
                                                                                                              return "fallback";
                                                                                                          }
                                                                                                      }
                                                                                                      

                                                                                                      App

                                                                                                      @SpringBootApplication
                                                                                                      @EnableDiscoveryClient
                                                                                                      @EnableFeignClients
                                                                                                      @EnableHystrix
                                                                                                      public class SentenceAppApplication {
                                                                                                      ...}
                                                                                                      

                                                                                                      Controller

                                                                                                      @Autowired
                                                                                                      private VerbClient verbClient;
                                                                                                      ....
                                                                                                      return verbClient.getVerbWord() + ....other;
                                                                                                      

                                                                                                      application.properties

                                                                                                      feign.hystrix.enabled=true
                                                                                                      

                                                                                                      Versions

                                                                                                      Spring boot 2.5.4

                                                                                                      
                                                                                                          11
                                                                                                          2020.0.3
                                                                                                      
                                                                                                      

                                                                                                      Goal: stop the verb service and see if fallback is invoked or not.

                                                                                                      Problem:

                                                                                                      nested exception is feign.RetryableException: Connection refused: no further information executing GET http://verbservice] with root cause

                                                                                                      I tried steps in this link...but it is not working Feign Hystrix fallback not working

                                                                                                      ANSWER

                                                                                                      Answered 2021-Sep-11 at 13:49

                                                                                                      It seems the property

                                                                                                      feign.hystrix.enabled=true

                                                                                                      is changed to

                                                                                                      feign.circuitbreaker.enabled=true

                                                                                                      Source https://stackoverflow.com/questions/69013937

                                                                                                      QUESTION

                                                                                                      Error while starting Spring boot Eureka Client
                                                                                                      Asked 2021-Aug-08 at 07:22

                                                                                                      I created a spring boot microservice, that is a Eureka Client, this client has a discovery server. When I start the Discovery server application and then start this application, I get the following error:

                                                                                                      org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'configurationPropertiesBeans' defined in class path resource [org/springframework/cloud/autoconfigure/ConfigurationPropertiesRebinderAutoConfiguration.class]: Post-processing of merged bean definition failed; nested exception is java.lang.IllegalStateException: Failed to introspect Class [org.springframework.cloud.context.properties.ConfigurationPropertiesBeans] from ClassLoader [jdk.internal.loader.ClassLoaders$AppClassLoader@579bb367]
                                                                                                      

                                                                                                      Pasting the trace and pom.xml below, please help me find the resolution.

                                                                                                          Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
                                                                                                      2021-08-07 22:13:19.311 ERROR 1620 --- [  restartedMain] o.s.boot.SpringApplication               : Application run failed
                                                                                                      
                                                                                                      org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'configurationPropertiesBeans' defined in class path resource [org/springframework/cloud/autoconfigure/ConfigurationPropertiesRebinderAutoConfiguration.class]: Post-processing of merged bean definition failed; nested exception is java.lang.IllegalStateException: Failed to introspect Class [org.springframework.cloud.context.properties.ConfigurationPropertiesBeans] from ClassLoader [jdk.internal.loader.ClassLoaders$AppClassLoader@579bb367]
                                                                                                          at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:579) ~[spring-beans-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) ~[spring-beans-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:213) ~[spring-beans-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.context.support.PostProcessorRegistrationDelegate.registerBeanPostProcessors(PostProcessorRegistrationDelegate.java:270) ~[spring-context-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:762) ~[spring-context-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:567) ~[spring-context-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758) ~[spring-boot-2.5.0.jar:2.5.0]
                                                                                                          at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:438) ~[spring-boot-2.5.0.jar:2.5.0]
                                                                                                          at org.springframework.boot.SpringApplication.run(SpringApplication.java:337) ~[spring-boot-2.5.0.jar:2.5.0]
                                                                                                          at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:144) ~[spring-boot-2.5.0.jar:2.5.0]
                                                                                                          at org.springframework.cloud.bootstrap.BootstrapApplicationListener.bootstrapServiceContext(BootstrapApplicationListener.java:212) ~[spring-cloud-context-2.2.9.RELEASE.jar:2.2.9.RELEASE]
                                                                                                          at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:117) ~[spring-cloud-context-2.2.9.RELEASE.jar:2.2.9.RELEASE]
                                                                                                          at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:74) ~[spring-cloud-context-2.2.9.RELEASE.jar:2.2.9.RELEASE]
                                                                                                          at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176) ~[spring-context-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169) ~[spring-context-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143) ~[spring-context-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:131) ~[spring-context-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:82) ~[spring-boot-2.5.0.jar:2.5.0]
                                                                                                          at org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$2(SpringApplicationRunListeners.java:63) ~[spring-boot-2.5.0.jar:2.5.0]
                                                                                                          at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) ~[na:na]
                                                                                                          at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:117) ~[spring-boot-2.5.0.jar:2.5.0]
                                                                                                          at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:111) ~[spring-boot-2.5.0.jar:2.5.0]
                                                                                                          at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:62) ~[spring-boot-2.5.0.jar:2.5.0]
                                                                                                          at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:373) ~[spring-boot-2.5.0.jar:2.5.0]
                                                                                                          at org.springframework.boot.SpringApplication.run(SpringApplication.java:331) ~[spring-boot-2.5.0.jar:2.5.0]
                                                                                                          at org.springframework.boot.SpringApplication.run(SpringApplication.java:1336) ~[spring-boot-2.5.0.jar:2.5.0]
                                                                                                          at org.springframework.boot.SpringApplication.run(SpringApplication.java:1325) ~[spring-boot-2.5.0.jar:2.5.0]
                                                                                                          at com.example.moviecatalogservice.MovieCatalogServiceApplication.main(MovieCatalogServiceApplication.java:28) ~[classes/:na]
                                                                                                          at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
                                                                                                          at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) ~[na:na]
                                                                                                          at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
                                                                                                          at java.base/java.lang.reflect.Method.invoke(Method.java:567) ~[na:na]
                                                                                                          at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) ~[spring-boot-devtools-2.5.0.jar:2.5.0]
                                                                                                      Caused by: java.lang.IllegalStateException: Failed to introspect Class [org.springframework.cloud.context.properties.ConfigurationPropertiesBeans] from ClassLoader [jdk.internal.loader.ClassLoaders$AppClassLoader@579bb367]
                                                                                                          at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:481) ~[spring-core-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.util.ReflectionUtils.doWithLocalMethods(ReflectionUtils.java:321) ~[spring-core-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.buildLifecycleMetadata(InitDestroyAnnotationBeanPostProcessor.java:232) ~[spring-beans-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.findLifecycleMetadata(InitDestroyAnnotationBeanPostProcessor.java:210) ~[spring-beans-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessMergedBeanDefinition(InitDestroyAnnotationBeanPostProcessor.java:149) ~[spring-beans-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessMergedBeanDefinition(CommonAnnotationBeanPostProcessor.java:294) ~[spring-context-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyMergedBeanDefinitionPostProcessors(AbstractAutowireCapableBeanFactory.java:1098) ~[spring-beans-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:576) ~[spring-beans-5.3.7.jar:5.3.7]
                                                                                                          ... 35 common frames omitted
                                                                                                      Caused by: java.lang.NoClassDefFoundError: org/springframework/boot/context/properties/ConfigurationBeanFactoryMetadata
                                                                                                          at java.base/java.lang.Class.getDeclaredMethods0(Native Method) ~[na:na]
                                                                                                          at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3334) ~[na:na]
                                                                                                          at java.base/java.lang.Class.getDeclaredMethods(Class.java:2446) ~[na:na]
                                                                                                          at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:463) ~[spring-core-5.3.7.jar:5.3.7]
                                                                                                          ... 42 common frames omitted
                                                                                                      Caused by: java.lang.ClassNotFoundException: org.springframework.boot.context.properties.ConfigurationBeanFactoryMetadata
                                                                                                          at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:636) ~[na:na]
                                                                                                          at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182) ~[na:na]
                                                                                                          at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519) ~[na:na]
                                                                                                          ... 46 common frames omitted
                                                                                                      
                                                                                                      2021-08-07 22:13:19.314 ERROR 1620 --- [  restartedMain] o.s.boot.SpringApplication               : Application run failed
                                                                                                      
                                                                                                      org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'configurationPropertiesBeans' defined in class path resource [org/springframework/cloud/autoconfigure/ConfigurationPropertiesRebinderAutoConfiguration.class]: Post-processing of merged bean definition failed; nested exception is java.lang.IllegalStateException: Failed to introspect Class [org.springframework.cloud.context.properties.ConfigurationPropertiesBeans] from ClassLoader [jdk.internal.loader.ClassLoaders$AppClassLoader@579bb367]
                                                                                                          at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:579) ~[spring-beans-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) ~[spring-beans-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:213) ~[spring-beans-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.context.support.PostProcessorRegistrationDelegate.registerBeanPostProcessors(PostProcessorRegistrationDelegate.java:270) ~[spring-context-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:762) ~[spring-context-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:567) ~[spring-context-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758) ~[spring-boot-2.5.0.jar:2.5.0]
                                                                                                          at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:438) ~[spring-boot-2.5.0.jar:2.5.0]
                                                                                                          at org.springframework.boot.SpringApplication.run(SpringApplication.java:337) ~[spring-boot-2.5.0.jar:2.5.0]
                                                                                                          at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:144) ~[spring-boot-2.5.0.jar:2.5.0]
                                                                                                          at org.springframework.cloud.bootstrap.BootstrapApplicationListener.bootstrapServiceContext(BootstrapApplicationListener.java:212) ~[spring-cloud-context-2.2.9.RELEASE.jar:2.2.9.RELEASE]
                                                                                                          at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:117) ~[spring-cloud-context-2.2.9.RELEASE.jar:2.2.9.RELEASE]
                                                                                                          at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:74) ~[spring-cloud-context-2.2.9.RELEASE.jar:2.2.9.RELEASE]
                                                                                                          at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176) ~[spring-context-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169) ~[spring-context-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143) ~[spring-context-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:131) ~[spring-context-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:82) ~[spring-boot-2.5.0.jar:2.5.0]
                                                                                                          at org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$2(SpringApplicationRunListeners.java:63) ~[spring-boot-2.5.0.jar:2.5.0]
                                                                                                          at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) ~[na:na]
                                                                                                          at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:117) ~[spring-boot-2.5.0.jar:2.5.0]
                                                                                                          at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:111) ~[spring-boot-2.5.0.jar:2.5.0]
                                                                                                          at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:62) ~[spring-boot-2.5.0.jar:2.5.0]
                                                                                                          at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:373) ~[spring-boot-2.5.0.jar:2.5.0]
                                                                                                          at org.springframework.boot.SpringApplication.run(SpringApplication.java:331) ~[spring-boot-2.5.0.jar:2.5.0]
                                                                                                          at org.springframework.boot.SpringApplication.run(SpringApplication.java:1336) ~[spring-boot-2.5.0.jar:2.5.0]
                                                                                                          at org.springframework.boot.SpringApplication.run(SpringApplication.java:1325) ~[spring-boot-2.5.0.jar:2.5.0]
                                                                                                          at com.example.moviecatalogservice.MovieCatalogServiceApplication.main(MovieCatalogServiceApplication.java:28) ~[classes/:na]
                                                                                                          at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
                                                                                                          at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) ~[na:na]
                                                                                                          at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
                                                                                                          at java.base/java.lang.reflect.Method.invoke(Method.java:567) ~[na:na]
                                                                                                          at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) ~[spring-boot-devtools-2.5.0.jar:2.5.0]
                                                                                                      Caused by: java.lang.IllegalStateException: Failed to introspect Class [org.springframework.cloud.context.properties.ConfigurationPropertiesBeans] from ClassLoader [jdk.internal.loader.ClassLoaders$AppClassLoader@579bb367]
                                                                                                          at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:481) ~[spring-core-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.util.ReflectionUtils.doWithLocalMethods(ReflectionUtils.java:321) ~[spring-core-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.buildLifecycleMetadata(InitDestroyAnnotationBeanPostProcessor.java:232) ~[spring-beans-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.findLifecycleMetadata(InitDestroyAnnotationBeanPostProcessor.java:210) ~[spring-beans-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessMergedBeanDefinition(InitDestroyAnnotationBeanPostProcessor.java:149) ~[spring-beans-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessMergedBeanDefinition(CommonAnnotationBeanPostProcessor.java:294) ~[spring-context-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyMergedBeanDefinitionPostProcessors(AbstractAutowireCapableBeanFactory.java:1098) ~[spring-beans-5.3.7.jar:5.3.7]
                                                                                                          at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:576) ~[spring-beans-5.3.7.jar:5.3.7]
                                                                                                          ... 35 common frames omitted
                                                                                                      Caused by: java.lang.NoClassDefFoundError: org/springframework/boot/context/properties/ConfigurationBeanFactoryMetadata
                                                                                                          at java.base/java.lang.Class.getDeclaredMethods0(Native Method) ~[na:na]
                                                                                                          at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3334) ~[na:na]
                                                                                                          at java.base/java.lang.Class.getDeclaredMethods(Class.java:2446) ~[na:na]
                                                                                                          at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:463) ~[spring-core-5.3.7.jar:5.3.7]
                                                                                                          ... 42 common frames omitted
                                                                                                      Caused by: java.lang.ClassNotFoundException: org.springframework.boot.context.properties.ConfigurationBeanFactoryMetadata
                                                                                                          at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:636) ~[na:na]
                                                                                                          at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182) ~[na:na]
                                                                                                          at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519) ~[na:na]
                                                                                                          ... 46 common frames omitted
                                                                                                      

                                                                                                      POM.XML

                                                                                                      
                                                                                                              11
                                                                                                              Greenwich.RELEASE
                                                                                                          
                                                                                                          
                                                                                                              
                                                                                                                  org.springframework.boot
                                                                                                                  spring-boot-starter-web
                                                                                                              
                                                                                                      
                                                                                                              
                                                                                                              
                                                                                                                  org.springframework.boot
                                                                                                                  spring-boot-devtools
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                                  org.springframework.boot
                                                                                                                  spring-boot-starter-test
                                                                                                                  test
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                                  org.springframework.cloud
                                                                                                                  spring-cloud-starter-netflix-hystrix
                                                                                                                  2.2.9.RELEASE
                                                                                                              
                                                                                                      
                                                                                                                  
                                                                                                                  org.springframework.cloud
                                                                                                                  spring-cloud-starter-netflix-eureka-client
                                                                                                                  3.0.2
                                                                                                              
                                                                                                              
                                                                                                      
                                                                                                      
                                                                                                          
                                                                                                      
                                                                                                          
                                                                                                          
                                                                                                              
                                                                                                                  
                                                                                                                      org.springframework.boot
                                                                                                                      spring-boot-maven-plugin
                                                                                                      
                                                                                                                  
                                                                                                              
                                                                                                          
                                                                                                          
                                                                                                                  
                                                                                                                      spring-milestones
                                                                                                                      Spring Milestones
                                                                                                                      https://repo.spring.io/milestone
                                                                                                                  
                                                                                                              
                                                                                                      

                                                                                                      ANSWER

                                                                                                      Answered 2021-Aug-07 at 20:05

                                                                                                      Try adding this dependency to resolve it and pick the right version of it.

                                                                                                      
                                                                                                        org.springframework.cloud
                                                                                                        spring-cloud-starter-bootstrap
                                                                                                        3.0.1
                                                                                                      
                                                                                                      

                                                                                                      Source https://stackoverflow.com/questions/68694571

                                                                                                      Community Discussions, Code Snippets contain sources that include Stack Exchange Network

                                                                                                      Vulnerabilities

                                                                                                      No vulnerabilities reported

                                                                                                      Install Hystrix

                                                                                                      Binaries and dependency information for Maven, Ivy, Gradle and others can be found at http://search.maven.org. Change history and version numbers => CHANGELOG.md.
                                                                                                      Futher details on building can be found on the Getting Started page of the wiki.

                                                                                                      Support

                                                                                                      See the Wiki for full documentation, examples, operational details and other information. See the Javadoc for the API.
                                                                                                      Find more information at:
                                                                                                      Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
                                                                                                      Find more libraries
                                                                                                      Explore Kits - Develop, implement, customize Projects, Custom Functions and Applications with kandi kits​
                                                                                                      Save this library and start creating your kit

                                                                                                      Share this Page

                                                                                                      share link

                                                                                                      Explore Related Topics

                                                                                                      Consider Popular Architecture Libraries

                                                                                                      Try Top Libraries by Netflix

                                                                                                      chaosmonkey

                                                                                                      by NetflixGo

                                                                                                      zuul

                                                                                                      by NetflixJava

                                                                                                      eureka

                                                                                                      by NetflixJava

                                                                                                      falcor

                                                                                                      by NetflixJavaScript

                                                                                                      pollyjs

                                                                                                      by NetflixJavaScript

                                                                                                      Compare Architecture Libraries with Highest Support

                                                                                                      Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
                                                                                                      Find more libraries
                                                                                                      Explore Kits - Develop, implement, customize Projects, Custom Functions and Applications with kandi kits​
                                                                                                      Save this library and start creating your kit