当前位置:首页 » 《休闲阅读》 » 正文

springcloud alibaba企业落地实战:小企业适用的组件化的服务间的调用_小黄鸡的博客

28 人参与  2022年02月11日 09:44  分类 : 《休闲阅读》  评论

点击全文阅读


服务间调用是微服务体系中必不可少的一部分,在springcloud alibaba的官网中,推荐使用是dubbo,但因为并发量比较小,同时dubbo相对比较复杂,所有楼主在服务间调用选型时,依然选择了openfeign。同时将服务间调用的接口封装为子工程,进行统一的api管理。避免小伙伴们造重复的轮子。

1.新建api子工程

1.搭建子工程

这里新建了一个子工程,文件结构如下。

2.添加pom.xml

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>    
            <version>2.2.6.RELEASE</version>
        </dependency>

3.实现fallback熔断方法

当服务调用失败,会跳转到该类。后文会与Sentinel一起使用。

@Component
public class UserFallBack implements UserApi {

    @Override
    public Result<UserVO> getCurrentUser() {
        Result<UserVO> result = new Result<>();
        String error = "调用system获取当前用户信息失败!";
        result.setCode(506);
        result.setMessage(error);
        return result;
    }

    @Override
    public Result<UserVO> getUser(UserVO UserVO) {
        Result<UserVO> result = new Result<>();
        String error = "调用system获取输入用户信息失败!";
        result.setCode(506);
        result.setMessage(error);
        return result;
    }
}

4.feign接口实现

@FeignClient(name = "system", fallback = UserFallBack.class) //其中name为nacos中的服务名
public interface UserApi {

    /**
     * 获取当前用户信息
     * 
     * @return
     */
    @GetMapping("/getCurrentUser")
    Result<UserVO> getCurrentUser();

    /**
     * 通过实体获取用户信息
     *
     * @return
     */
    @GetMapping("/getUser")
    Result<UserVO> getUser(@SpringQueryMap UserVO UserVO);
}

这里需要注意,如果在get请求时,同时boby中有值,feign会把get转换成post,所以这种情况需要使用@SpringQueryMap注解。

2.父工程调用

1.修改pom.xml

1.在pom文件中引入子工程 ,详细配置可以参考楼主文章:

    <dependencies>
        <dependency>
            <groupId>com.vanpeng</groupId>
            <artifactId>common-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
    </dependencies>

2.修改启动类

@EnableDiscoveryClient
@SpringBootApplication
@EnableFeignClients("com.common.api")
public class DatacenterApplication {

    public static void main(String[] args) {
        SpringApplication.run(DatacenterApplication.class, args);
    }

}

注意:@EnableFeignClients(“com.common.api”)一定要指定api子工程路径,否则不执行调用。

3.调用

public class DemoController {

    @Autowired
    UserApi userApi;

    @GetMapping("/demo")
    public void demo() {
        Result<RestSysUserVO> xxx = userApi.getCurrentUser();
    }

}

点击全文阅读


本文链接:http://zhangshiyu.com/post/34520.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 夫君和小三霸占了我的将军府,我杀疯了阅读_雪儿谭绍木兰全集_小说后续在线阅读_无删减免费完结_
  • 鹿溪小说(鹿溪)终章+番外(穿进恐怖游戏后,我和反派HE了)一口气阅读
  • 完结文留给儿子的副卡月月刷爆,他却因睡桥底被送进收容所列表_完结文留给儿子的副卡月月刷爆,他却因睡桥底被送进收容所(娄墨霆宋佑轩)
  • 你活着,却死在我等你的第三年后续+番外_谨言佳佳温以宁全集_小说后续在线阅读_无删减免费完结_
  • 相思溺于夏时雨小说(裴景澈初念可)章节目录+起始篇章(相思溺于夏时雨)全章无套路在线
  • 未婚夫重生归来叫停手术,把剥开肚子的我困在手术台上40分钟(裴临渊阮离歌)
  • 完结文离婚是你提,净身出户你又哭什么精彩分享列表_完结文离婚是你提,净身出户你又哭什么精彩分享(苏铭余素伊)
  • 全书浏览哥哥重生救我,我带队灭了组织!(陈致远陈知韫)_哥哥重生救我,我带队灭了组织!(陈致远陈知韫)全书结局
  • 全文算命赚功德,我直接飞升成仙(楚天河林风)列表_全文算命赚功德,我直接飞升成仙
  • 八零丈夫抛妻弃子后悔不当初完整文本_顾尧全文_小说后续在线阅读_无删减免费完结_
  • 殉情三年,侯门主母休夫日百棺开道附加(殉情三年,侯门主母休夫日百棺开道)(沈宁鸢谢挽舟)全本浏览阅读连载中
  • 傅沉舟黎枝小说完整在线阅读(悲风诉尽离别)前传列表

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1