Titan笔记

  • 首页
  • Java
  • 数据结构
  • C语言
  • Web
  • 杂谈
  • 移动开发
  • 逸笔挥墨
Titan笔记
分享学习,研究与开发的点滴记忆
  1. 首页
  2. Java
  3. 正文

Spring Cloud 微服务学习笔记 - 负载均衡服务调用

2021年2月19日 861点热度 2人点赞 0条评论

Ribbon 负载均衡服务调用

5.1 Ribbon简介

Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过Spring Cloud的封装,可以让我们轻松地将面向服务的REST模版请求自动转换成客户端负载均衡的服务调用。

5.2 Ribbon 内置负载均衡算法

RoundRobinRule 轮询规则
RandomRule 随机轮询
RetryRule 先按照RoundRobinRule获取服务,如果获取失败就在指定实现内重试。
WeightedResponseTimeRule 对RoundRobinRule的扩展,响应速度越快的实例选择权重越大。
BestAvailableRule 会先过滤掉因为多次访问故障而处于断路器跳闸状态的服务,然后选择一个并发量最小的服务
AvailabilityFilteringRule 先过滤掉故障实例,再选择并发较小的实例
ZoneAvoidanceRule 默认规则,复合判断server所在区域的性能和server的可用性选择服务器。

OpenFeign

6.1 OpenFeign简介:

Feign是声明式的Web Service客户端,它让微服务之间的调用变得更简单了,它能够类似Controller的方式调用Service。

Spring Cloud集成了Ribbon和Eureka,可使用基于Feign且提供负载均衡的HTTP客户端。

6.2 OpenFeign使用步骤

  1. 新建Cloud-Consumer-Order-Feign-80项目

  2. 加入OpenFeign的Dependency

    
       org.springframework.cloud
       spring-cloud-starter-openfeign
       3.0.0
    
  3. 在启动类上使用 @EnableFeignClients 注解

  4. 编写OpenFeign的Service类并添加 @FeignClient 注解

    @Service
    @FeignClient("cloud-payment-service")
    public interface PaymentFeignService {
       @GetMapping(value = "/payment/get/{id}")
       JsonResponse getPaymentById(@PathVariable("id") Long id);
    }
  5. 编写Controller,直接调用Service即可

    @RestController
    @Slf4j
    public class OrderController {
       // private static final String PAYMENT_URL = "http://localhost:8001";
       private static final String PAYMENT_URL = "http://cloud-payment-service";
       private final PaymentFeignService paymentFeignService;
    
       public OrderController(PaymentFeignService paymentFeignService) {
           this.paymentFeignService = paymentFeignService;
       }
    
       @GetMapping("/consumer/payment/get/{id}")
       public JsonResponse getPayment(@PathVariable("id") Long id) {
           return paymentFeignService.getPaymentById(id);
       }
    
    }
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2021年2月19日

Titan

不为岁月流逝蹉跎,不为潮流的势头去附和

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论
最新 热点 随机
最新 热点 随机
Docker配置IPv6容器网络支持 什么是Elastic Stack,ELK的发展历程 K8s中Pod的基本概念 云原生 - 浅谈容器基础与K8S架构设计 腾讯Serverless体验,使用TypeScript编写并部署云函数 Go-Proxy-Checker,一款基于Go编写的高性能代理服务器验证工具
什么是Elastic Stack,ELK的发展历程 Spring Cloud 微服务学习笔记 - 负载均衡服务调用 Android数据存储方式之SharedPreferences (二) 使用Mybatis完成CRUD操作 [数据结构] 二叉搜索树的CURD(增删改查)操作 关于我和Titan笔记
分类
  • Android
  • C语言
  • Elasticsearch
  • Hadoop
  • Hive
  • Java
  • JavaWeb
  • Kubernetes
  • Linux运维之道
  • Mybatis学习笔记
  • Python
  • SpringCloud
  • Web
  • Web前端
  • Web后端
  • 云原生
  • 并发编程
  • 开发工具
  • 数据库
  • 数据结构
  • 杂谈
  • 移动开发
  • 移动测试
  • 诗词歌赋
  • 软件测试
  • 逸笔挥墨
  • 随摘
标签聚合
二叉树 Apache-Hive JavaWeb Java 数据结构 链式存储 Mybatis学习笔记 Python

COPYRIGHT © 2013-2021 Titan. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

豫ICP备20001822号-1

豫公网安备 41010502004418号