不同微服务子系统之间的调用问题
老师,课程中提及的关于微服务项目中的异常处理问题,以及不同微服务之间的调用问题,我不理解这其中的原理是什么,为什么把一些公共方法写在一个微服务当中,然后其他微服务去调用,这样调用的时候是通过什么样的方式进行调用的,以及在异常处理的时候,为什么要声明Dubbo过滤器,以及consumer和provider的异常处理逻辑不同,这又是为什么?
正在回答 回答被采纳积分+1
1、将一些公共方法写在一个微服务中,然后让其他微服务去调用,这是一种非常常见的微服务设计模式。这样做有几个好处:一是可以避免代码重复,提高开发效率;二是这样也便于维护和升级公共功能。调用这些公共方法时,通常是通过远程过程调用(RPC)或者消息传递来实现的。
2、在异常处理方面,声明Dubbo过滤器是为了在服务调用过程中对异常进行统一处理。Dubbo过滤器可以在服务提供者(Provider)和消费者(Consumer)端拦截请求和响应,对异常进行捕获、记录和转换,从而实现异常的统一管理和处理。这是因为在分布式系统中,异常处理逻辑可能会因为网络问题、服务故障等多种因素而变得复杂。例如,Dubbo的异常过滤器会在服务端抛出异常给消费端时对异常进行处理,所有非继承自RuntimeException的异常都会直接返回,而继承自RuntimeException的异常则会经过封装返回给消费端。
3、Consumer和Provider的异常处理逻辑不同,主要是因为它们在微服务架构中扮演的角色不同。Provider负责提供服务,而Consumer负责调用服务。因此,它们在异常处理时需要考虑的因素也不同。例如,Provider可能需要关注服务的稳定性和性能,而Consumer可能更关注调用的可靠性和用户体验。在基于Spring Cloud的微服务体系中,微服务提供方会提供相应的客户端SDK代码,而客户端SDK代码则是通过FeignClient的方式进行服务调用。这种设计能让异常处理更灵活和贴近实际业务需求。希望我的解答能够解开同学的疑惑,祝学习愉快!
- 参与学习 2052 人
- 提交作业 1500 份
- 解答问题 1324 个
2024重磅革新,超百小时内容豪华升级,加速提升高级技能与高薪就业竞争力 课程紧贴企业最新人才需求,历经7年持续迭代,帮助万名学子入行转行 从零起点到高阶实战,学习路径稳健顺滑,成就从小白到工程师高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星