zoukankan      html  css  js  c++  java
  • 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 );
        }
    }

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

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

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

  • 相关阅读:
    【转】PG数据库高级用法 之 12306 -- 链接
    javascript实现浏览器管理员工具鼠标获取Html元素 并生成 xpath
    java图片识别 [Tesseract-OCR]
    MongoDB从环境搭建到代码编程(Window 环境)
    webDriver + Firefox 浏览器 完美兼容
    SQLServer 将日期改造成标准日期格式(如: 2016/6 ->201606)
    Angularjs+bootstrap 实现横向滑屏
    js数组长度
    Angularjs 跨域post数据到springmvc
    Oracle 18c 数据库中scott用户不存在的解决方法
  • 原文地址:https://www.cnblogs.com/zmeRecord/p/9950060.html
Copyright © 2011-2022 走看看