前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >springcloud 外卖系统设计

springcloud 外卖系统设计

原创
作者头像
JavaEdge
修改2025-03-13 13:51:44
修改2025-03-13 13:51:44
40
举报
文章被收录于专栏:JavaEdgeJavaEdge

5-2 RestTemplate的三种使用方式

3 负载均衡器:Ribbion

4 追踪源码自定义负载均衡策略

command+option+B进入其实现类
command+option+B进入其实现类
再跟进到 LoadBalancerClient 中
再跟进到 LoadBalancerClient 中
RibbonLoadBalancerClient#choose()
RibbonLoadBalancerClient#choose()
RibbonLoadBalancerClient#getServer(ILoadBalancer loadBalancer)
RibbonLoadBalancerClient#getServer(ILoadBalancer loadBalancer)
ILoadBalancer
ILoadBalancer
RibbonLoadBalancerClient#getServer(ILoadBalancer loadBalancer)
RibbonLoadBalancerClient#getServer(ILoadBalancer loadBalancer)
ILoadBalancer#getAllServers(),并进入
ILoadBalancer#getAllServers(),并进入

启动两个 Product 服务

product#1
product#1
product#2
product#2

再 debug 启动 Order 服务

三个服务成功注册
三个服务成功注册
在此打断点,并 debug 运行
在此打断点,并 debug 运行
获取服务列表
获取服务列表
  • 再看看其负载均衡策略
    可见默认即轮询
    可见默认即轮询
    请求到2
    请求到2
    请求到1
    请求到1
    轮询请求
    通过启动日志也可看出具体使用的策略
    通过启动日志也可看出具体使用的策略
    符合预期,确实为轮询
    符合预期,确实为轮询
    载均衡规则该咋办呢,看官网文档
    如希望用随机规则替代默认的轮询规则
    如希望用随机规则替代默认的轮询规则
    配置全路径名
    配置全路径名
    成功替换默认规则
    成功替换默认规则
    gn的使用 Feign是一个声明式的Web服务客户端。这使得Web服务客户端的写入更加方便 要使用Feign创建一个界面并对其进行注释。它具有可插入注释支持,包括Feign注释和JAX-RS注释。Feign还支持可插拔编码器和解码器。Spring Cloud增加了对Spring MVC注释的支持,并使用Spring Web中默认使用的HttpMessageConverters。Spring Cloud集成Ribbon和Eureka以在使用Feign时提供负载均衡的http客户端。

###如何加入Feign

  1. 要在您的项目中包含Feign,请使用组org.springframework.cloud和工件ID spring-cloud-starter-openfeign的启动器
  2. 在启动类添加注解@EnableFeignClients 可以在@EnableFeignClients属性defaultConfiguration中以与上述相似的方式指定默认配置 不同之处在于,此配置将适用于所有feigh客户端
    用商品服务的目标接口
  3. 声明调用的服务接口方法
  4. @FeignClient name属性为某所需调用的某个服务的接口 在@FeignClient注释中,String值(以上“存储”)是一个任意的客户端名称,用于创建Ribbon负载平衡器,还可以使用url属性(绝对值或只是主机名)指定URL。应用程序上下文中的bean的名称是该接口的完全限定名称。要指定自己的别名值,可以使用@FeignClient注释的qualifier值。
    添加@FeignClient注解
    添加@FeignClient注解
    Feign
    Feign
    品列表(Feign)
    接口信息
    接口信息
    dao层测试接口正常
    dao层测试接口正常
    service 层单测正常
    service 层单测正常
    准备提供该接口
    准备提供该接口
    Order 服务中访问接口
    Order 服务中访问接口
    报错
    报错
    为参数使用了 RequestBody 注解,所以需 POST 请求
    扣库存(Feign)
    调用接口
    调用接口
    发现报错
    发现报错
    控制台
    控制台
    缺失无参构造器
    整合接口打通下单流程(Feign)bug!!!!!!!!!!!!9 项目改造成多模块
    多模块
    多模块
    依赖关系
    依赖关系

10 同步or异步

11 RabbitMQ的安装

12 微服务,Docker和DevOps

微服务和容器天生一对
微服务和容器天生一对

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 3 负载均衡器:Ribbion
  • 4 追踪源码自定义负载均衡策略
  • 10 同步or异步
  • 11 RabbitMQ的安装
  • 12 微服务,Docker和DevOps
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档