spring cloud 服务消费者

spring cloud 服务消费者

1.pom依赖

父pom dependencyManagement

  <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>
                    org.springframework.cloud
                </groupId>
                <artifactId>
                    spring-cloud-dependencies
                </artifactId>
                <version>
                    Greenwich.RELEASE
                </version>
                <type>
                    pom
                </type>
                <scope>
                    import
                </scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

服务消费者pom

 <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
        </dependency>
    </dependencies>

2.application.properties

server.port=8090
spring.application.name=cloud3
#注册服务的地址
eureka.client.service-url.defaultZone=http://localhost:8080/eureka/

3.主要代码`

@SpringBootApplication
@EnableEurekaClient
public class SpringCloud3Application {

    public static void main(String[] args) {

        SpringApplication.run(SpringCloud3Application.class,args);
    }
}

@LoadBalanced 用于负载均衡


@Configuration
public class RestTemplateConfig {

    @Bean
    @LoadBalanced
    public RestTemplate restTemplate(){

        return new RestTemplate();
    }
}

注意 http:// 后直接跟服务提供者项目名 + 接口地址


@RestController
@RequestMapping("test")
public class TestController {

    @Autowired
    RestTemplate restTemplate;

    @GetMapping("a")
    public ResponseEntity test(){

        String result = restTemplate.getForEntity("http://cloud1/test/a",String.class).getBody();
        return ResponseEntity.ok(result);
    }
}

启动项目后请求接口

第一次

spring cloud 服务消费者

第二次

spring cloud 服务消费者