微服务通信(Feign与Dubbo)技术的使用

概述:随着人们需求越来越来,项目的规模也逐渐扩大,常规的单体应用架构已无法应对,分布式服务架构以及微服务架构势在必行,将一个单体应用拆分为多个服务必定存在服务间的通信调用。

常用的服务通信技术有两款:

1、基于HTTP协议的服务通信技术Feign

2、基于TCP协议实现RPC的服务通信技术Bubbo

现有一个场景:有一个商品服务和订单服务,当用户购买商品时需要创建对应的订单记录,在订单服务中需要使用商品id先查询商品信息然后封装为一个Order对象插入数据库表中。

【即在订单服务中需请求商品服务中的根据商品id查询商品信息方法】(两个服务需要通信)

下面分别使用Feign和Dubbo两种方式完成服务间的通信:

一、Feign

步骤一:导入Feign的坐标

    
        
            org.springframework.cloud
            spring-cloud-starter-openfeign
        

步骤二:在启动类上添加注解@EnableFeignClients(开启Feign)

步骤三:在服务消费者中定义服务提供者的业务接口,定义方法【充当对被调用服务方法的请求】

微服务通信(Feign与Dubbo)技术的使用_第1张图片

微服务通信(Feign与Dubbo)技术的使用_第2张图片

步骤四:在服务消费者业务层实现类中装配第三步定义好的接口,并调用方法向服务提供者的控制层发送请求路径完成服务间的通信

微服务通信(Feign与Dubbo)技术的使用_第3张图片

微服务通信(Feign与Dubbo)技术的使用_第4张图片

测试:

分别启动shop-order、shop-product服务,get方式向shop-order服务发送请求/add/6

微服务通信(Feign与Dubbo)技术的使用_第5张图片

在订单服务中成功调用了商品服务中的查询商品信息方法

二、Dubbo

1、提供统一的业务接口及相关方法

微服务通信(Feign与Dubbo)技术的使用_第6张图片

2、针对服务提供者:

        步骤一:导入dubbo坐标

 

  com.alibaba.cloud 
  spring-cloud-starter-dubbo

        步骤二:在yml文件中添加dubbo配置 微服务通信(Feign与Dubbo)技术的使用_第7张图片

主要配置点:

配置扫描的包:第一步中统一业务接口的实现类包        使用的协议:dubbo

若使用了nacos还需配置注册中心:nacos的注册中心的ip

        步骤三:编写一中统一服务接口的业务层实现并利用@Service(dubbo下的注解)暴露服务

微服务通信(Feign与Dubbo)技术的使用_第8张图片

3、针对服务消费者:

        步骤一:导入dubbo坐标

 

  com.alibaba.cloud 
  spring-cloud-starter-dubbo

        步骤二:在yml文件中添加dubbo配置 

微服务通信(Feign与Dubbo)技术的使用_第9张图片

        步骤三:引用服务

在需要调用提供者服务的类中通过@Reference引用一中提供的业务接口并调用方法即可完成通信

微服务通信(Feign与Dubbo)技术的使用_第10张图片

测试:与feign的测试方式是一致的,我们看能否完成通信

微服务通信(Feign与Dubbo)技术的使用_第11张图片微服务通信(Feign与Dubbo)技术的使用_第12张图片

使用dubbo在订单服务中也成功调用了商品服务中的查询商品信息方法

你可能感兴趣的:(微服务,dubbo,架构)