当前位置: 首页 > news >正文

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

一、防止过度设计

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

二、API接口调用的出入参

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

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

相关文章:

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

一、防止过度设计 微服务的拆分一定要结合团队人员规模来考虑,笔者就曾遇到过一个公司的项目,是从外部采购回来的,微服务划分为十几个应用,我们在此项目基础上进行自行维护和扩展。由于公司业务规模不大,而且二次开发的…...

C++17 新增属性详解

文章目录 1. [[fallthrough]]用途示例应用场景 2. [[maybe_unused]]用途示例应用场景 3. [[nodiscard]]用途示例应用场景 总结 C17标准引入了多个新的属性(Attributes),这些属性为代码提供了更丰富的语义表达能力,同时帮助编译器生…...

使用python-docx包进行多文件word文字、字符批量替换

1、首先下载pycharm。 2、改为中文。 3、安装python-docx包。 搜索包名字,安装。 4、新建py文件,写程序。 from docx import Documentdef replace1(array1):# 替换词典(标签值按实际情况修改)dic {替换词1: array1[0], 替换…...

15_业务系统基类

创建脚本 SystemRoot.cs 因为 业务系统基类的子类 会涉及资源加载服务层ResSvc.cs 和 音乐播放服务层AudioSvc.cs 所以在业务系统基类 提取引用资源加载服务层ResSvc.cs 和 音乐播放服务层AudioSvc.cs 并调用单例初始化 using UnityEngine; // 功能 : 业务系统基类 public c…...

Pyecharts之散点图的视觉扩展

在数据可视化中,散点图是一种强大的工具,可用于展示数据点在二维平面上的分布情况。通过添加各种视觉组件,我们可以让散点图变得更加丰富和具有表现力,更能反映数据的多维度特征。本文将详细解读如何为散点图添加不同的视觉组件&a…...

Java学习教程,从入门到精通,JDBC删除数据库语法知识点(101)

一、JDBC删除数据库语法知识点 1. 概述 JDBC(Java Database Connectivity)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。 在JDBC中,删除数据库的操作主要是通过执行…...

Baklib如何推动企业知识管理的创新与转型探讨

内容概要 在当今快速发展的数字化时代,企业需要不断适应变化,以保持竞争优势。Baklib作为一款企业知识管理中台,扮演着推动数字化转型的重要角色。它通过提供一个集成的知识管理平台,帮助企业高效管理和共享内部及外部的知识资源…...

【算法】递归型枚举与回溯剪枝初识

递归型枚举与回溯剪枝初识 1.枚举子集2.组合型枚举3.枚举排列4.全排列问题 什么是搜索?搜索,是一种枚举,通过穷举所有的情况来找到最优解,或者统计合法解的个数。因此,搜索有时候也叫作暴搜。搜索一般分为深度优先搜索…...

无人机 PX4 飞控 | PX4源码添加自定义参数方法并用QGC显示与调整

无人机 PX4 飞控 | PX4源码添加自定义参数方法并用QGC显示与调整 0 前言 之前文章添加了一个自定义的模块,本篇文章在之前的自定义模块中,添加两个自定义参数 使用QGC显示出来,并通过QGC调整参数值,代码实现参数更新 新增的参…...

《CPython Internals》阅读笔记:p356-p359

《CPython Internals》学习第 19天,p356-p359 总结,总计 4 页。 一、技术总结 1.benchmark suite The benchmark suite is the tool to use when comparing the complete performance of Python. The Python Benchmark suite is a collection of Pyth…...

Linux--权限

Linux系统的权限管理是保障系统安全的重要机制,以下详细讲解权限相关概念及操作指令: 一、基础权限机制 1. 权限的三元组,读(r)、写(w)、执行(x) 每个文件或目录有三组…...

java后端之登录认证

基础登录功能:根据提供的用户名和密码判断是否存在于数据库 LoginController.java RestController Slf4j public class LoginController {Autowiredprivate UserService userService;PostMapping("/login")public Result login(RequestBody User user) {…...

【矩阵二分】力扣378. 有序矩阵中第 K 小的元素

给你一个 n x n 矩阵 matrix ,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。 请注意,它是 排序后 的第 k 小元素,而不是第 k 个 不同 的元素。 你必须找到一个内存复杂度优于 O(n2) 的解决方案。 示例 1&#xff1…...

C语言-构造数据类型

1、构造数据类型 结构体、共用体、枚举。 2、结构体 1、结构体的定义 结构体是一个自定义的复合数据类型,它允许将不同类型的数据组合在一起。 struct 结构体名 {数据类型1 成员变量1;数据类型2 成员变量2;数据类型3 成员变量3;数据类型4 成员变量4; } 2、结构体变…...

鸿蒙next 自定义日历组件

效果图预览 20250124-113957 使用说明 1.选择日期左右箭头,实现每月日历切换,示例中超出当前月份,禁止进入下一月,可在代码更改 2.日历中显示当前选择的日期,选中的日期颜色可自定义 3.日历中可展示历史记录作为数据…...

【express-generator】08-路由重定向

前言 通过前面两篇文章的讲解,我们已经介绍完第二阶段的前两点,本篇介绍第三点:路由重定向。 1. 路由重定向概述 路由重定向是指在服务器端将客户端的请求从一个 URL 重定向到另一个 URL 的过程。这通常通过 HTTP 状态码(如 30…...

搭建Spring Boot开发环境

JDK&#xff08;1.8及以上版本&#xff09; Apache Maven 3.6.0 修改settings.xml 设置本地仓库位置 <localRepository>D:/repository</localRepository> 设置远程仓库镜像 <mirror><id>alimaven</id><name>aliyun maven</name&…...

Spatial Group-wise Enhance (SGE) module

来源&#xff1a; [1905.09646] Spatial Group-wise Enhance: Improving Semantic Feature Learning in Convolutional Networks 相关工作&#xff1a; #GroupedFeatures #AttentionModels 创新点&#xff1a; 贡献&#xff1a; 提出了一种轻量级的SGE模块&#xff0c;能够…...

二叉搜索树中的搜索(力扣700)

首先介绍一下什么是二叉搜索树。 二叉搜索树是一个有序树&#xff1a; 若它的左子树不空&#xff0c;则左子树上所有结点的值均小于它的根结点的值&#xff1b;若它的右子树不空&#xff0c;则右子树上所有结点的值均大于它的根结点的值&#xff1b;它的左、右子树也分别为二叉…...

记录让cursor帮我给ruoyi-vue后台管理项目整合mybatis-plus

自己整合过程中会出现 work.web.exception.GlobalExceptionHandler :100 | 请求地址/admin/device/install/detail/1,发生未知异常. org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.fire.mapper.DeviceInstallMapper.selectById at o…...

FUTURE POLICE语音对齐系统:MySQL数据库集成与结果分析实战

FUTURE POLICE语音对齐系统&#xff1a;MySQL数据库集成与结果分析实战 1. 语音对齐数据管理的挑战与解决方案 语音识别与对齐技术正在改变我们处理音频内容的方式。FUTURE POLICE系统凭借其毫秒级精度的强制对齐能力&#xff0c;为语音数据处理树立了新标准。然而&#xff0…...

Phi-3-mini-128k-instruct低资源部署效果:4GB显存流畅运行实测

Phi-3-mini-128k-instruct低资源部署效果&#xff1a;4GB显存流畅运行实测 最近在折腾一些边缘设备上的AI应用&#xff0c;发现一个挺有意思的现象&#xff1a;很多开发者手头只有一些“古董级”的显卡&#xff0c;比如GTX 1650或者移动端的MX系列&#xff0c;显存也就4GB左右…...

rg -n 是什么意思?

关于 -n (Line number) 的原始英文说明在 rg --help 中&#xff0c;它是这样描述的&#xff1a;-n, --line-number Show line numbers. This is enabled by default when searching in a terminal.核心翻译&#xff1a; 显示行号。当在终端&#xff08;terminal&#xff09;中搜…...

WSL2上跑GraspNet避坑全记录:从CUDA版本冲突到Open3D图形显示,我花了4天踩的坑都在这了

WSL2环境下的GraspNet复现实战&#xff1a;十大典型问题与系统化解决方案 在Windows Subsystem for Linux 2&#xff08;WSL2&#xff09;环境中复现GraspNet这类涉及GPU计算与3D渲染的复杂AI项目&#xff0c;开发者往往会遇到各种环境配置、依赖冲突和图形显示问题。本文将基…...

企业如何防御LockBit 3.0?从IOC到实战检测规则编写指南

企业级防御实战&#xff1a;LockBit 3.0勒索病毒全维度对抗指南 1. 勒索病毒威胁态势与企业防御挑战 2023年全球网络安全报告显示&#xff0c;勒索软件攻击同比增长47%&#xff0c;其中LockBit系列占比高达28%。不同于传统恶意软件&#xff0c;LockBit 3.0采用模块化设计&#…...

别再踩坑了!Win10下从零编译Mamba-SSM 2.2.2的保姆级避坑指南(含修改好的源码包)

Win10平台Mamba-SSM 2.2.2终极编译指南&#xff1a;避开90%开发者踩过的坑 在深度学习领域&#xff0c;Mamba-SSM因其高效的状态空间模型架构而备受关注。然而&#xff0c;当开发者们兴冲冲地想在Windows 10平台上搭建这一环境时&#xff0c;往往会遭遇各种"玄学报错"…...

差点被这套AI工具搞离职...搞懂MCP和Skill后,我发现宇宙的尽头是“写小作文”

剥开神秘面纱前两天&#xff0c;隔壁组的新人小王差点被开除。这小子为了赶进度&#xff0c;搞了个瞎折腾的操作&#xff1a;把公司一个十几万行的老旧核心项目&#xff0c;一股脑全扔进 Cursor 里&#xff0c;连哄带骗地让 AI 帮他重构。结果呢&#xff1f;跑出来的代码简直是…...

从零开始:Windows与Ubuntu20.04双系统安装全指南

1. 为什么需要双系统&#xff1f; 对于很多刚接触Linux的朋友来说&#xff0c;直接在物理机上安装Ubuntu可能会有点担心。毕竟Windows用习惯了&#xff0c;万一Ubuntu用不顺手怎么办&#xff1f;这时候双系统就是最好的解决方案。我自己的第一台开发机就是WindowsUbuntu双系统&…...

青少年软件编程等级考试C/C++ 1~8级历年真题解析与备考指南

1. 青少年软件编程等级考试概述 对于很多刚开始学习编程的青少年来说&#xff0c;青少年软件编程等级考试是一个检验学习成果的好机会。这个考试分为1~8级&#xff0c;从最基础的C/C语法到复杂的算法和数据结构&#xff0c;循序渐进地考察学生的编程能力。我当年第一次参加这个…...

实时手机检测模型应用场景:打电话检测、安防监控实战案例

实时手机检测模型应用场景&#xff1a;打电话检测、安防监控实战案例 1. 模型概述与技术优势 1.1 高性能检测框架DAMOYOLO 实时手机检测-通用模型基于DAMOYOLO-S框架开发&#xff0c;这是一种面向工业落地的高性能目标检测解决方案。相比传统YOLO系列方法&#xff0c;DAMOYO…...