Maison  >  Article  >  Java  >  Explication détaillée d'exemples d'enregistrement de services et de découverte de "microservices"

Explication détaillée d'exemples d'enregistrement de services et de découverte de "microservices"

Y2J
Y2Joriginal
2017-05-12 09:58:094154parcourir

Cet article présente principalement des exemples d'enregistrement et de découverte de services SpringBoot, qui ont une certaine valeur de référence. Les amis intéressés peuvent s'y référer

Microservices

Pratiquer les « microservices » naturellement. nécessite d'apprendre à effectuer l'enregistrement et la découverte de services

Pour apprendre les microservices basés sur SpringBoot, il est naturel de choisir SpringCloud, qui lui est étroitement lié, bien sûr, vous pouvez choisir d'autres technologies, telles que. en tant que dubbo

, vous pouvez également utiliser zookeeper pour implémenter l'enregistrement et la découverte du service Quant à savoir si zookeeper est bon ou mauvais pour implémenter cette fonction, chacun a sa propre opinion

SpringCloud

Spring Cloud fournit des outils permettant aux développeurs de créer rapidement certains des modèles courants dans les systèmes distribués


SpringCloud inclut une configuration distribuée/versionnée, distribuée. / configuration versionnée et de nombreux autres sous-projets.

  1. Configuration distribuée/versionnée

  2. Enregistrement et découverte de services

  3. Routage

  4. Appels de service à service

  5. Équilibrage de charge

  6. Disjoncteurs

  7. Verrous mondiaux

  8. Élection à la direction et état du cluster

  9. Messagerie distribuée


Inscription et découverte des services

Module SpringCloud

spring-cloud-starter-eureka-server


Module d'ingénierie

  1. Centre d'enregistrement des services

  2. Module de service

Centre d'enregistrement des services

Créer un module de découverte et introduire la dépendance spring-cloud-starter-eureka-server dans build.gradle

apply plugin: 'org.springframework.boot'

dependencyManagement {
  imports {
    mavenBom "org.springframework.cloud:spring-cloud-dependencies:"+ springCloudVersion
  }
}
repositories {
  mavenCentral()
}
dependencies {
  compile ('org.springframework.cloud:spring-cloud-starter-eureka-server')
}
jar {
  baseName = 'discovery-bootcwenao'
}
Fournir un service de centre d'inscription via l'annotation @EnableEurekaServer

/**
 * @author cwenao
 * @version $Id DiscoveryBootcwenaoApplication.java, v 0.1 2017-01-12 9:56 cwenao Exp $$
 */
@EnableEurekaServer
@SpringBootApplication
public class DiscoveryBootcwenaoApplication {
  public static void main(String[] args) {
    new SpringApplicationBuilder(DiscoveryBootcwenaoApplication.class).web(true).run(args);
  }
}
application.yml configurer eureka

attributs

server:
 port: 8761
eureka:
 instance:
  hostname: discovery
 client:
  registerWithEureka: false
  fetchRegistry: false
  service-url:
   defaultZone: http://discovery:${server.port}/eureka/
Visitez localhost:8761


Enregistrement du service

Créez un module de service et introduisez spring-cloud-starter-eureka dans build.gradle

apply plugin: 'org.springframework.boot'
dependencyManagement {
  imports {
    mavenBom "org.springframework.cloud:spring-cloud-dependencies:"+ springCloudVersion
  }
}

dependencies {
  compile('org.springframework.cloud:spring-cloud-starter-eureka')
  compile('org.springframework.cloud:spring-cloud-stream')
}
sourceSets {
  main {
    resources.srcDirs = ['src/main/resources', 'src/main/java']
    resources.includes = ['**/*.xml', '**/*.yml']
  }
}
jar {
  baseName = 'apigateway-bootcwenao'
}
Enregistrez le service en annotant @EnableDiscoveryClient

@SpringBootApplication
@EnableDiscoveryClient
public class ApiGatewayBootcwenaoApplication {
  public static void main(String[] args) {
    SpringApplication.run(ApiGatewayBootcwenaoApplication.class, args);
  }
}
application .yml Configurer les attributs eureka

server:
 port: 10002
spring:
 application:
  name: apigateway
eureka:
 client:
  registerWithEureka: true
  fetchRegistry: true
  serviceUrl:
   defaultZone: http://localhost:8761/eureka/
Une fois l'enregistrement terminé, vous pouvez accéder au service via la configuration de spring.application.name

Visitez localhost:8761 et constatez que le service est déjà enregistré Inscrivez-vous sur le centre


Le centre d'enregistrement du service permet le nom d'utilisateur et le mot de passe

en configurant le nom d'utilisateur et le mot de passe applicaiton.yml

security:
 basic:
  enabled: true
 user:
  name: aa
  password: abcd
Configurer l'application.yml du fournisseur de services

eureka:
 instance:
  hostname: configserver
  prefer-ip-address: true
 client:
  registerWithEureka: true
  fetchRegistry: true
  service-url:
   defaultZone: http://aa:abcd@localhost:8761/eureka/

[Recommandations associées]

1

Java gratuit. Tutoriel vidéo

2.

Manuel du didacticiel JAVA

3

Analyse complète des annotations Java.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn