中间件|分布式项目中,选型与依赖管理( 二 )


  • feign:服务交互的接口层封装 , 工程间通信的核心依赖;
  • serve:服务中具体业务实现层 , 控制层与feign接口层对应;
  • 这样分层分包管理工程 , 服务之间的依赖就会清晰许多 , 也极大保证了代码的复用性 , 版本升级时弃用的代码标记为过期 , 同时指向新的代码路径 , 其他服务升级时再跟随升级 , 最终彻底剔除过时代码 , 以此避免业务发展导致代码工程的混乱 。
    四、中间件中间件在服务中是必不可少的业务支撑 , 例如开发中最常用的几个:缓存管理、消息队列、任务调度等;
    消息队列:可以通过模式封装 , 实现消息的统一总线管理 , 避免消息混乱;例如之前总结过的消息中间件改造方案:

    缓存管理:每个服务都或多或少存在缓存需求 , 缓存机制也具有一定的共性;
    任务调度:通常会将任务调度的组件集成在单个服务中 , 实现调度管理的基本能力 , 然后采用服务间通信机制(例如Feign接口) , 去触发待任务执行;

    中间件并不仅仅是引入依赖然后各种API的调用 , 基于什么策略和设计模式去管理 , 会给工程带来不同的影响 。
    五、轻量工具许多项目下都会有一个util分包 , 用来存放常用的工具代码文件 , 如果是在复杂的分布式项目中 , 通常打成独立的jar包 , 后来这些基础的工具类被汇聚到开源项目中 , 极大的降低维护成本 , 并且可以标准化的使用工具:
    对于工具包中提供哪些核心能力 , 经常查阅相关文档即可 , 像一些:日期、字符串、集合、JSON、Http、文件流等常见功能 , 都会封装相应的处理方法 。 lombok插件可以高度简化Java对象中代码 , 以及对象的使用 。
    工具型的组件 , 更倾向于在开发过程中明确规定使用哪一个 , 尽量避免混搭使用 , 并且要熟悉工具包提供的各种能力 , 减少不必要的重复封装 , 对于类库中的常用方法也可以多阅读 , 被多数开发认可的代码 , 必然可以开阔自己的代码编写思路 。
    最后 , 很多技术栈或者开源组件的不断发展 , 都是为了可以更好解决场景问题 , 这就需要开发人员定期关注技术的发展趋势 , 具备技术视野和洞察能力 。