关于使用微服务的注意要点总结

一、防止过度设计

微服务的拆分一定要结合团队人员规模来考虑,笔者就曾遇到过一个公司的项目,是从外部采购回来的,微服务划分为十几个应用,我们在此项目基础上进行自行维护和扩展。由于公司业务规模不大,而且二次开发的需求量比较小,负责这个项目的开发也就2个人,但是服务拆分的非常细,导致开发新的功能和查找生产问题时,工作量都非常大,效率非常的低,严重出现小马拉大车的情况,非常的吃力不讨好。借助笔者亲身经历,强烈建议不要一上来就直接各种微服务拆分,应该考虑项目的投入和后期维护成本,如果没那么的的资源就不要拆分过多的服务,微服务的数量和维护成本是有正比关系的,切记过渡设计。最好的方案应该是结合当下业务规模和人员情况,如果是试点业务,可以先单体项目开始做起,业务有增长的时候,项目再逐步进行细分拆解和增加研发人员,与业务规模成正比。

二、API接口调用的出入参

微服务之间的调用,接口的出入参是忌讳使用Map、Json等对象来封装,这样导致使用者根本没法快速的知道接口的入参和出参分别有哪些字段,并且操作参数的时候写错key的概率会提高。建议对出入催直接封装为普通的JavaBean对象,另外有一点需要特别注意,对出入参的对象封装建议做成一个jar包模块,这样其他服务调用的时候直接通过引入jar包,即可方便的操作出入催,也减少代码的重复率。当服务的接口有改动时,尽量遵循OCP原则(即尽量采用新增字段而不是删除原有字段,做向下兼容),并且可通过修改jar包版本来发布新的出入参依赖jar包,相关依赖服务方可根据需要进行更新依赖的jar包。

以上是笔者亲身经历过微服务后的反思和总结,有更好的建议和想法,可留言互相探讨。

相关推荐
DevnullCoffe13 分钟前
基于 OpenClaw + Pangolinfo API 的 Amazon 价格监控系统:架构设计与最佳实践
人工智能·架构
码路飞1 小时前
GPT-5.3 Instant 终于学会好好说话了,顺手对比了下同天发布的 Gemini 3.1 Flash-Lite
java·javascript
SimonKing1 小时前
OpenCode AI编程助手如何添加Skills,优化项目!
java·后端·程序员
Mintopia1 小时前
在深与广之间:产品、架构与开发如何为业务场景做权衡
架构
Seven973 小时前
剑指offer-80、⼆叉树中和为某⼀值的路径(二)
java
怒放吧德德14 小时前
Netty 4.2 入门指南:从概念到第一个程序
java·后端·netty
雨中飘荡的记忆16 小时前
大流量下库存扣减的数据库瓶颈:Redis分片缓存解决方案
java·redis·后端
心之语歌18 小时前
基于注解+拦截器的API动态路由实现方案
java·后端
华仔啊19 小时前
Stream 代码越写越难看?JDFrame 让 Java 逻辑回归优雅
java·后端
ray_liang20 小时前
用六边形架构与整洁架构对比是伪命题?
java·架构