微服务的架构下,如何根据业务抽象出适合自己系统的组件?

本文探讨在SpringBoot/SpringCloud微服务架构中,如何根据业务需求抽象组件,并分析两种组件元数据管理方案:业务服务主动上报和引擎服务主动采集。文章强调了组件优化的重要性,特别是减少if-else的使用,推荐责任链模式和策略模式。同时,文章指出在微服务集群中,服务引擎与业务服务之间的集成策略,强调了元数据采集的时间点和方式,并提供了具体实现思路。
摘要由CSDN通过智能技术生成

导读:基础SpringBoot/SpringCloud微服务的架构下,我们或多或少会根据业务抽象出适合自己系统的组件或SDK,来应对对内、对外的拓展。

在SpringBoot/SpringCloud先前介绍了一些,如:

  • @Conditional来指定指定条件的时候才将某个 bean 加载到应用上下文中。
  • @FunctionalInterface函数式接口申明
  • @JsonTypeInfo在Java类继承的情况下如何实现父类及子类的JSON序列化与反序列化。

等等其他的注解标识,极大简化了业务逻辑和代码。

当然不这么实现是不是没有其他方式实现了,其实也不是唯一的方式!简单暴力的方式也是可以的,写业务逻辑时,if-else 可能是最容易想到的逻辑方式了。然而大量堆砌的 if-else 毫无疑问将给代码维护带来巨大的困难。如果想用if-else 来完善你的业务组件,尽量优化你的代码,避免后期业务拓展棘手。

  • 如何优化你的if-else?来试试“责任链模式+策略模式”

如果在同一JVM中上述的方式没有多大问题,但是分布在不同的JVM中(微服务集群),上述的方案估计要丢弃了。

在阅读下文时,考虑几个问题:

  • 自定义的组件规则/SDK包,什么时候扫描才合理?
  • 组件元数据怎样采集?

案例场景

目前存在三个服务,引擎层服务A,业务服务B、业务服务C。A|B|C在同一注册集群中,A需提供组件于B\C服务使用,依赖关系如下图所示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值