天天看点

Springcloud基于Eureka的服务消费者者搭建

  1. 依赖springcloud版本
<dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.1.2.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
           
  1. 依赖eureka
<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>
    </dependencies>
           
  1. 启动类
@SpringBootApplication
@EnableEurekaClient
public class ConsumerMain {

    public static void main(String[] args) {
        SpringApplication.run(ConsumerMain.class, args);
    }
}

           
  1. yml配置
server:
  port: 8081

spring:
  application:
    name: consumer

eureka:
  client:
    register-with-eureka: false #调用方可以不注册到服务中心
    service-url:
      defaultZone: http://localhost:7001/eureka/ #eureka的服务器地址,多个以逗号分隔


           
  1. RestTemplate的注入
@Configuration //相当于在原先的spring applicationContext.xml配置
public class ConfigBean {

    @Bean
    @LoadBalanced  //负载均衡 默认轮训
    public RestTemplate getRestTemplate(){
        //restful操作的RestTemplate对象
        return new RestTemplate();
    }
}
           
  1. 调用方式
@RestController
public class ControllerConsumer {

    @Autowired
    private RestTemplate restTemplate;

    //通过服务名访问 服务名字对应服务提供者的spring.application.name
    private static final String RESTFUL_URL = "http://PROVIDERTEST";

    @RequestMapping("/test")
    public String test() {
        return restTemplate.getForObject(RESTFUL_URL+"/test", String.class);
    }
}
           

继续阅读