• 技术文章 >Java >java教程

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

    Y2JY2J2017-05-12 09:58:09原创2984
    本篇文章主要介绍了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'
    }

    通过注解 @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 配置eureka属性

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

    访问 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'
    }

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

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

    application.yml 配置eureka属性

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

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

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


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

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

    security:
     basic:
      enabled: true
     user:
      name: aa
      password: abcd

    配置服务提供方application.yml

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

    【相关推荐】

    1. Java免费视频教程

    2. JAVA教程手册

    3. 全面解析Java注解

    以上就是“微服务”之服务注册与发现的实例详解的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:java整合CXF完成web service开发的实例详解 下一篇:java集成spring cache的代码实例

    相关文章推荐

    • 动态代理的两种方式是什么• JAVA-5NIO之Selector• J2ME程序开发全方位基础讲解汇总(一)• Java基础之类和对象、单例模式、继承• 打造高性能Java应用需掌握的5大知识

    全部评论我要评论

  • 东.Dom

    由Spring Boot实现的微服务需要有比较好的工具去测试RESTful API,很多REST Client是不支持自动化测试RESTful API,也不支持自动生成API文档. 之前习惯用一款名字为 WisdomTool REST Client,支持自动化测试RESTful API,输出精美的测试报告,并且自动生成精美的RESTful API文档。 轻量级的工具,功能却很精悍哦! https

    2017-11-27

  • 取消发布评论发送
  • 1/1

    PHP中文网