• Spring Cloud 服务消费与负载均衡(Rest + Ribbon )


      上一篇主要写了基于Eurake的服务的注册,主要就是创建注册中心,创建服务者,将服务者注册到注册中心,完成服务的暴露。这一篇主要写服务的消费与服务消费的负载均衡。

      服务的调用方式有两种,Rest + ribbon ,另一钟是feign,feign集成了ribbon。这一篇主要说前者.

      因为服务消费者也是属于client,并且还有对于ribbon的依赖,创建服务消费者工程需要引入jar包

    spring-cloud-starter-netflix-eureka-client,spring-cloud-starter-netflix-ribbon。

    1.配置文件中要声明注册中心的地址,消费者注册的端口号,消费者的应用名。

    2.在主方法上添加@EnableEurakeClient 和 @EnableDiscoverClient

    3.通过@Bean RestTemplate 注入容器,并且@LoadBalanced 启动负载均衡功能

     

    eureka:
      client:
        serviceUrl:
          defaultZone: http://localhost:8761/eureka/
    server:
      port: 8764
    spring:
      application:
        name: service-ribbon
    @SpringBootApplication
    @EnableEurekaClient
    @EnableDiscoveryClient
    public class ServiceRibbonApplication {
    
        public static void main(String[] args) {
            SpringApplication.run( ServiceRibbonApplication.class, args );
        }
    
        @Bean
        @LoadBalanced
        RestTemplate restTemplate() {
            return new RestTemplate();
        }
    
    }
    @Service
    public class HelloService {
    
        @Autowired
        RestTemplate restTemplate;
    
        public String hiService(String name) {
            return restTemplate.getForObject("http://SERVICE-HI/hi?name="+name,String.class);
        }
    
    
    }

    服务名称的请求在发送请求的时候会替换为对应的具体URL

    @RestController
    public class HelloControler {
    
        @Autowired
        HelloService helloService;
    
        @GetMapping(value = "/hi")
        public String hi(@RequestParam String name) {
            return helloService.hiService( name );
        }
    }

    采用不同的端口号启动两个服务消费者,在页面进行多次请求,会循环采用不同的端口号(负载算法后续补上)。

    现在的服务架构我画了个图:很丑,对付着看吧

    今天就先写到这吧,睡觉睡觉.

  • 相关阅读:
    判断ascii码是什么的函数
    php curl
    js form settimeout
    windows php文件下载地址
    面试(3)
    [读码时间] 显示单击的坐标
    [读码时间] 模拟select控件
    [读码时间] 星级评分
    [读码时间] 事件练习:封闭兼容性添加,删除事件的函数
    [读码时间] 数组方法的使用
  • 原文地址:https://www.cnblogs.com/zmeRecord/p/9950060.html
Copyright © 2020-2023  润新知