3.ribbon

Ribbon是一个负载均衡器,它可以让你对HTTP和TCP客户机的行为有很多的控制权。Feign已经使用了Ribbon,所以也可以使用@FeignClient 注解。先来看一下Ribbon。

1.建路由选择Ribbon


3.ribbon_第1张图片

2.pom文件加入配置


    org.springframework.cloud
    spring-cloud-starter-eureka


   org.springframework.boot
   spring-boot-starter-web

3.配置yml

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8888/eureka/
server:
  port: 9999
spring:
  application:
    name: service-ribbon

4.修改启动application中加上

@SpringBootApplication
@EnableDiscoveryClient
public class ServiceribbonApplication {

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

   @Bean
   @LoadBalanced
   RestTemplate restTemplate() {
      return new RestTemplate();
   }

}

加入HelloControler类

@RestController
public class HelloControler {

    @Autowired
    HelloService helloService;

    @RequestMapping(value = "/hi")
    public String hi(@RequestParam String name) {
        return helloService.hiService(name);
    }

}

加入HelloService

@Service
public class HelloService {

    @Autowired
    RestTemplate restTemplate;

    public String hiService(String name) {
        return restTemplate.getForObject("http://SERVICE-YUAN/hi?name="+name,String.class);
    }

}

5.启动工程,再次访问 http://localhost:8888/ 可以看到心加入的SERVICE-RIBBON

3.ribbon_第2张图片

6.访问ribbon,可以看到2个服务轮询


3.ribbon_第3张图片
3.ribbon_第4张图片

7.可以看到2个应用程序和一个Ribbon程序都在Rureka注册了,当我们对SERVICE-RIBBON发出的请求时会轮询2个应用,起到附在均衡的作用。这两个应用程序都在一台主机启动,通过配置文件配置不同的端口。Docker的service也有附在均衡的功能,后续研究如何结合Docker。

你可能感兴趣的:(3.ribbon)