Rumah > Java > javaTutorial > “微服务”之服务注册与发现的实例详解

“微服务”之服务注册与发现的实例详解

Y2J
Lepaskan: 2017-05-12 09:58:09
asal
4269 orang telah melayarinya

本篇文章主要介绍了SpringBoot的服务注册与发现示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

微服务

实践“微服务”自然要学习如何做服务注册与发现

基于SpringBoot来进行微服务的学习,自然选择了与之息息相关的SpringCloud;当然可以选择其他的技术进行,比如dubbo

也可以用zookeeper来实现服务注册与发现,至于zookeeper来实现此功能好还是不好,各家之言都有

SpringCloud

Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems .SpringCloud

SpringCloud 包含了 Distributed/versioned configuration、Distributed/versioned configuration等很多子项目。

  1. Distributed/versioned configuration

  2. Service registration and discovery

  3. Routing

  4. Service-to-service calls

  5. Load balancing

  6. Circuit Breakers

  7. Global locks

  8. Leadership election and cluster state

  9. Distributed messaging

服务注册与发现

SpringCloud模块

spring-cloud-starter-eureka-server

工程module

  1. 服务注册中心

  2. 服务module

服务注册中心

创建discovery module,并在 build.gradle中引入 spring-cloud-starter-eureka-server依赖

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'
}
Salin selepas log masuk

通过注解 @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);
  }
}
Salin selepas log masuk

application.yml 配置eureka属性

server:
 port: 8761
eureka:
 instance:
  hostname: discovery
 client:
  registerWithEureka: false
  fetchRegistry: false
  service-url:
   defaultZone: http://discovery:${server.port}/eureka/
Salin selepas log masuk

访问 localhost:8761


服务注册

创建服务module, 在build.gradle中引入 spring-cloud-starter-eureka

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'
}
Salin selepas log masuk

通过注解 @EnableDiscoveryClient 进行服务注册

@SpringBootApplication
@EnableDiscoveryClient
public class ApiGatewayBootcwenaoApplication {
  public static void main(String[] args) {
    SpringApplication.run(ApiGatewayBootcwenaoApplication.class, args);
  }
}
Salin selepas log masuk

application.yml 配置eureka属性

server:
 port: 10002
spring:
 application:
  name: apigateway
eureka:
 client:
  registerWithEureka: true
  fetchRegistry: true
  serviceUrl:
   defaultZone: http://localhost:8761/eureka/
Salin selepas log masuk

注册完成后,可以通过 spring.application.name 的配置来访问该服务

访问 localhost:8761 发现服务已经在注册中心上注册


服务注册中心启用用户名密码

通过配置applicaiton.yml用户名密码

security:
 basic:
  enabled: true
 user:
  name: aa
  password: abcd
Salin selepas log masuk

配置服务提供方application.yml

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

【相关推荐】

1. Java免费视频教程

2. JAVA教程手册

3. 全面解析Java注解

Atas ialah kandungan terperinci “微服务”之服务注册与发现的实例详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan