当前位置:   article > 正文

实现RPC的基本方法与步骤(SpringBoot)_springboot rpc

springboot rpc

提示:本文实现RPC的方法和具体步骤,注意,需要引入Dubbo2.7.7以上版本的依赖


前言

        笔者从入门Java后端至今,一直都在做笔记(电子笔记),但是始终没有动手写博客。如今笔者即将毕业,现阶段正处于实习期,虽然有了一定的Java后端基础,但仍然需快速的学习。本次起笔写博客,是想从此刻开始,对自己学到的东西进行纪录,以便日后遇到类似的问题时,能够方便快捷的解掉。本文主要记录今日在公司实习培训时,实现RPC的方法与步骤,具体如下:


一、实现RPC的思路

        由于笔者培训时,主管已经帮我配好了注册中心,所以这里先暂时忽略注册中心的配置,下文提到的Service模块和Web模块启动后,能够注册到注册中心,并且能够发现在注册中心注册的所有服务,并实现远程调用,这个过程大概如图1所示,最后在Service模块实现并暴露服务,在Web模块注入并调用服务。

       

二、具体步骤

1.在Service模块实现业务并暴露接口

        在配置好注册中心等环境后,在Service模块实现具体的业务逻辑,并且通过@DubboService注解把服务暴露,暴露的接口类需要实现远程服务接口RemoteService,代码如下所示:

  1. // 实现并暴露接口
  2. @DubboService(interfaceClass = RemoteService.class)
  3. public class ServiceImpl implements RemoteService {
  4.         // 实现 查询用户
  5.         public AuthUser getUser(String id){
  6.         User entity = new User();
  7.         entity.setId(id);
  8.         User user = userService.selectOne(id);
  9.         return user;
  10.         }
  11. }

注意:RemoteService.class是一个接口,用来约束对外暴露的接口的行为,其定义如下:

  1. /**
  2. * 该类定义在公共模块,comment中,提供给所有服务引用
  3. */
  4. public interface RemoteService(){
  5. /**
  6. * 根据 id 查询用户信息
  7. *
  8. */
  9. User getUser(Integer id);
  10. // ...其他行为(方法)
  11. }

2.在Web模块注入并调用接口

        使用@DubboReference在Web模块注入并调用远程接口,代码如下所示:

  1. @RestController
  2. @RequestMapping("/query")
  3. public class MyController {
  4.         // 注入远程服务,RemoteService 来自工共模块 comment
  5.         @DubboReference
  6.         private RemoteService remoteService;
  7. @GetMapping("/user/{id}")
  8. @ApiOperation(valeu = "根据id查询用户")
  9. public User getUser(@PathVariable("id") Integer id){
  10. return remoteService.getUser(id);
  11. }
  12.         
  13. }

总结

        本文记录了在配置好注册中心等环境下,实现远程调用的思路和步骤,主要是创建和实现服务提供者Service模块 和 服务消耗者 Web模块。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/145760
推荐阅读
相关标签
  

闽ICP备14008679号