SpringCloud框架(二):整合Eureka作为注册中心、Feign进行远程调用、Ribbon实现负载均衡,底层源码解读

SpringCloud环境搭建:生产和消费 RestTemplate

Spring章节复习已经过去,新的章节SpringCloud开始了,这个章节中将会回顾微服务相关
主要依照以下几个原则

  1. 每一个组件的Demo和Coding上传到我的代码仓库
  2. 在原有基础上加入一些设计模式,stream+lamdba等新的糖
  3. 通过DeBug调试,进入组件源码去分析底层运行的规则和设计模式

相关的代码已经上传到
链接: SpringCloudServiceDemo
可以进入develop分支去看,觉得不错的博主记得一键三连支持下

整合Eureka和Feign

引入Eureka服务注解中心

先在微服务架构下构建一个子模块,专门调用Eureka服务
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

个人感觉,springcloud的东西就是配置注解,然后操作下相应的配置文件
基本上就可以跑起来了
但是底层东西就很多了,后面一起过一下

在这里插入图片描述

然后在子模块中加入
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
启动服务
点击10086进入到Eureka的ui界面

在这里插入图片描述
配置的服务就可以在这里发现了

如果我们想去调用
就需要用我们注册进入这个Eureka的端口名称 USERSERVICE

@Service
class OrderServiceImpl1 implements OrderService {


    @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
    @Autowired
    private OrderMapper orderMapper;

        @Autowired
        @Qualifier("curTemplate")
        private RestTemplate restTemplate;

        
    public Order queryOrderById(Long orderId) {

        Order order =  orderMapper.findById(orderId);
        String url = "http://USERSERVICE/user/" + order.getUserId();
        order.setUser(restTemplate.getForObject(url, User.class));


        return order;
    }
}

下面我们换一种方式进行调用

替代RestTemplate?通过openFegin进行调用

依旧是导包,注解,配置,多了一个接口导入

在这里插入图片描述
在这里插入图片描述

我们通过这个接口mock了用户模块的方法进行处理,实际上也是url调用的封装
在这里插入图片描述

最后调用方法即可

    @Autowired
    private OrderMapper orderMapper;

/*    @Autowired
    @Qualifier("curTemplate")
    private RestTemplate restTemplate;*/
    @Autowired
    private UserClient userClient;


    public Order queryOrderById(Long orderId) {

        Order order =  orderMapper.findById(orderId);
        order.setUser(userClient.findById(order.getUserId()));

        return order;
    }

当一个请求多次落到一个服务上,其他服务如何平衡这种关系那?Ribbon实现负载均衡

在这里插入图片描述
在这里插入图片描述
如果你用的RestTemplate,可以试试

@Component
public class BeanFactory {

    @Bean
    public static RestTemplate getRestTemplate(){
        return new RestTemplate();
    }


    @Bean("curTemplate")
    @LoadBalanced
    public RestTemplate RestTemplate(){
        return new RestTemplate();
    }
}

发送请求4次,看下结果
在这里插入图片描述
在这里插入图片描述
这里默认适用轮询负载均衡器,后面Debug看

基础学习

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

底层源码解析

后面一一更新下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值