SpringCloud学习五:服务注册以消费测试

前面文章搭建好的服务注册中心使用。
服务注册:
---首先创建一个子项目spring-cloud-netflix-eureka-serverone服务一,添加pom.xml依赖如下:


  4.0.0
  
    com.study.springcloud
    spring-cloud-study
    0.0.1-SNAPSHOT
  
  study-3-spring-cloud-netflix-eureka-serverone
  服务一
  
    
        
            org.springframework.cloud
            spring-cloud-starter-config
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-server
        
        
    

    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                Finchley.SR2
                pom
                import
            
        
    
    
    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

配置文件拷贝以往的bootstrap.yml文件

spring:
  application:
    name: spring-cloud-netflix-eureka-serverone
  profiles:
    active: dev
  cloud: 
    config:
      uri: http://localhost:8888/config/
      label: master

创建启动类添加注解:@EnableDiscoveryClient示例:

package bertram.springcloud.study;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

/**
 * 

启动类

* @Author Bertram.Wang * @Date 2019年3月12日 */ @SpringBootApplication @EnableDiscoveryClient public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }

添加测试控制器: HelloController.java 示例:

package bertram.springcloud.study.server.rest;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 

* @Author Bertram.Wang * @Date 2019年3月15日 */ @RestController public class HelloController { private static final Logger log = LoggerFactory.getLogger(HelloController.class); @GetMapping("/hello") public String hello() { log.info("========:server one 执行hello==========="); return "hello server one"; } }

一个简单的请求返回Json.
启动配置中心和注册中心。


注册服务

已经注册成功了。

使用服务:
创建子项目:spring-cloud-api项目;pom.xml文件示例:


    4.0.0
    
        com.study.springcloud
        spring-cloud-study
        0.0.1-SNAPSHOT
    
    study-0-spring-cloud-api
    API 入口

    
        
            org.springframework.cloud
            spring-cloud-starter-config
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-server
        
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-ribbon
        
        

    

    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                Finchley.SR2
                pom
                import
            
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

工件: spring-cloud-starter-netflix-ribbon 负载均衡器,默认的策略是轮询

添加配置文件:

spring:
    application:
      name: spring-cloud-api
    cloud: 
      config:
        uri: http://localhost:8888/config/
        label: master

添加启动类示例:

package bertram.springcloud.study;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

/**
 * 

启动类

* @Author Bertram.Wang * @Date 2019年3月12日 */ @SpringBootApplication @EnableDiscoveryClient public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } // 标识restTemolate拥有负载均衡的能力 @LoadBalanced @Bean public RestTemplate restTemplate() { return new RestTemplate(); } }

创建测试控制器:

package bertram.springcloud.study.api.rest;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

/**
 * 

* @Author Bertram.Wang * @Date 2019年3月15日 */ @RestController public class HelloController { private static final Logger log = LoggerFactory.getLogger(HelloController.class); @Autowired private RestTemplate restTemplate; @GetMapping("/hello") public String hello() { log.info("========:api 执行hello==========="); return restTemplate.getForEntity("http://SPRING-CLOUD-NETFLIX-EUREKA-SERVERONE/serverone/hello", String.class).getBody(); } }

链接地址写服务名:SPRING-CLOUD-NETFLIX-EUREKA-SERVERONE全部大写。
(重复启动服务一更改端口号:20003)
启动项目测试:


效果图

每次点击重新加载会不同访问服务20002,20003端口服务。说明负载均衡生效了。

你可能感兴趣的:(SpringCloud学习五:服务注册以消费测试)