【小也的Java之旅系列】01 分布式、集群、微服务的区别

news2025/3/28 7:06:01

前言

做Java开发多年,一直以来都有想把Java做成一个系列的想法,最近整理自己的笔记发现有很多值得写的内容,但这些内容又往往杂乱不堪。CSDN上有很多高质量的Java博客,但大多不是从一个人成长的角度去写的。而我们——一个技术人员——一个人,是在不断的学习中成长的,这样的过程如果能体现在系列博客中那真的就太好了。于是,终于下定决心,想花一段时间整理成册——或许是几个月,或许是半年,或许是一年不止。希望自己能坚持下去。

为什么叫小也

孩子是我们之所以还努力的原因。

为什么用比喻方式写技术内容

大家会发现技术从来都不是枯燥的,枯燥的是工作:)。
鉴于读者可能有刚刚开始学习的同行,所以类比的方式讲解内容就非常有用。
在整个系列中,我们追随小也的步伐一步步成为熟悉,甚至精通Java的技术人员。

本系列适合什么样的人阅读

阅读本文最好有一定基础,最优人群是:

  1. 了解Java的基础语法
  2. 自己本身已经写过代码
  3. 对Java架构、大数据、轻代码等进阶有兴趣

如果你是个初出茅庐的初学者,对Java技术内容都不甚了解,也不用特别担心,我的另外一个系列你肯定感兴趣——《Java8系列博文合集》(或者访问我的博客园也可以阅读)。

系列准备写哪些内容

在这里插入图片描述
你没看错,原本的想法甚至包括了我的笔记的所有内容:Java、AI、前端等等。但由于太过庞杂(我的笔记又太乱 T T),准备优先完成Java系列…的红色部分。
其余内容将在漫长时间里逐一补全——希望大家收藏转发关注,给予我坚持下去的信心。

为什么从架构开始做本系列第一章

我一直有两个疑惑:
为什么老师们教英语的时候不先教音标和构词法,而是直接开始学单词和短语?
为什么学校教技术的时候,都要先教HelloWord,而不是架构?

这两个有什么关系?
教了音标我们就可以开口说话,教了构词法我们就可以快速掌握单词。
教了架构,我们可以明白代码为什么要这么写,思考问题应该从哪开始琢磨,掌握解决一类问题而不是一个问题。

当然,有人会说初学者直接教架构是大了些,但我想反其道而行之——我认为,与其快速在屏幕显示出HelloWord而沾沾自喜,我更想知道如今司空见惯的、到处都是的APP网站们都是怎么跑起来的。

正文

叔叔的烦恼——单体服务

小也的叔叔是个厨师,他开了间饭馆,饭店里人来人往,特别是饭点,完全走不动道。小也的叔叔经常给小也说:“客人总是抱怨等得久,我自己也经常累得不行。”
小也很聪明,他首先将问题画出来,标记出问题的关键点。
在这里插入图片描述

小也的建议——集群

问题

叔叔一个人工作太累了,没法快速完成产品需求(出餐)。最要命的是,如果叔叔身体不舒服,那饭店就没人工作了。
(翻译:单体服务一旦崩溃,系统将彻底瘫痪。)

思考

如果店里面有更多的厨师和工作台,不就可以了?

解决

设置更多工作台,招聘更多厨师与叔叔一起工作,这样效率就提高了。
(翻译:将程序部署在多个设备上同时运行,再搭配负载均衡,就更能保证系统的稳定性)
在这里插入图片描述

小也的思考——分布式

有了更多厨师的帮助,叔叔总算不那么累了,出餐也更快,过了没多久,叔叔的店面扩张了,现在有更多的人来吃饭,而且叔叔还增加了菜品,种类更丰富。
但没过多久,新的问题又出现了。
由于增加了太多菜品,虽然增加了厨师但经常出现餐品来不及做的情况。
小也拿出笔重新开始分析。

问题

菜品太多,经常出现其中某几个菜抄的慢而影响到一桌子菜的进度。
(翻译:前后端、数据库端等对资源消耗不同,可能会相互影响。)

思考

根本原因是因为素菜和荤菜的资源消耗不同,往往一桌子菜有荤菜又有素菜,但素菜都吃完了荤菜还没上。
(翻译:同一个系统,不同环境消耗资源不同,可能由于某个环节过载而影响产品整体效果。)

解决

将荤菜和素菜分开,荤菜慢,素菜快,给荤菜更多资源(厨师和工作台),减轻压力,提高效率。
在这里插入图片描述

有没有一劳永逸的方法——微服务

自从荤素区分后,出餐快了,餐品相互也没有影响,如果其中某个厨师请假也不影响饭店运转。
但过了一段时间,叔叔又找到了小也:“我最近又加了西餐,还想把日式料理也加上去……厨子是越来越多了,我发现我自己做老板的都管不过来了,这可怎么办?”

小也拿出笔再次思考。

问题

之前的问题都是客人多厨师少导致的,但到了现在,厨师已经越来越多,发现问题反倒是在资源(厨师和工作台)使用上。
(翻译:分布式虽然解决了不同子系统之间的相互影响,但随着系统越来越庞杂,系统之间的交互和配合就会出现新的问题。)

思考

根本原因是对厨师的管理不足,叔叔作为老板,不能够有效利用每一个人,厨房现在乱作一团,需要赶快解决人员协作。
无论是中餐、西餐还是以后可能增加的新菜品,我们的目的都是为了出餐,我们需要抽象思考餐品的制作过程,安排人员紧密搭配。

解决

从餐品制作过程(功能流程)入手,分为洗菜、切菜和炒菜,不同集群的厨师只做好自己的本职工作。如果需要,以后还可以增加新的功能集群(煲汤集群、腌菜集群…)。每个集群相互独立,但又有关联,统一为一个目标——业务流程服务。
在这里插入图片描述

已经优化到了极限吗?

预制菜的出现——中台

新的时代,预制菜已经满大街都是。菜品不一定从厨房出,而是统一从一个指定的厂家出,再由不同饭店简单加工即可食用。这就是中台。
中台将主要服务打包,使用者不需要了解实现细节,只需调研API即可。

人工智能厨子——AI驱动架构

大模型技术正在深度融入微服务生命周期管理,形成「AI+微服务」的融合架构:

据说,字节跳动用大模型实现了Go到Rust的代码迁移,通过LLM分析项目依赖关系和接口调用,生成迁移脚本并保证兼容性。
AI可以基于历史数据的AI模型可识别微服务链路异常,自动执行熔断、降级或路由切换。

不断升级——无服务架构和云原生

维度Serverless云原生(Cloud Native)​中台
核心定义无需管理服务器的计算模型,按需执行代码并按量付费。基于云计算特性的应用开发方法论,强调容器化、微服务、自动化和弹性扩展。企业级能力复用平台,整合通用业务/数据/技术能力以支撑多业务线协作。
技术特征事件驱动(如HTTP触发器)、按需弹性伸缩、冷启动延迟。容器化(Docker)、编排系统(Kubernetes)、服务网格(Istio)、持续交付(CI/CD)。API网关、微服务架构、统一配置中心、业务能力抽象化。
核心目标消除服务器运维负担,降低资源闲置成本。最大化云资源弹性,提升应用的可扩展性和可靠性。避免重复建设,加速业务创新与协作。
运维复杂度零运维​(由云厂商管理资源)。高复杂度​(需管理容器集群、服务网格等)。中等复杂度​(需持续迭代中台能力)。
应用场景突发流量处理(如秒杀)、轻量任务(如文件转换)、异步事件处理(如消息队列)。高并发互联网服务(如电商平台)、分布式数据库、微服务架构的复杂系统。多业务线共享能力(如用户中心、支付中台)、企业数字化转型中的能力沉淀。
典型技术/产品AWS Lambda、阿里云函数计算、Azure Functions。Kubernetes、Istio、Prometheus、Helm。阿里业务中台、腾讯数据中台、微服务化的用户认证中心。
成本模型按执行时间和资源使用量付费(后付费)。按资源预留量付费(预付费+弹性扩缩容)。前期建设成本高,长期通过复用降低业务线开发成本。
核心挑战冷启动延迟、状态管理困难、调试复杂。多集群管理复杂性、服务网格性能开销、跨云兼容性。业务边界划分模糊、中台与业务线需求冲突、能力迭代速度匹配问题。
与微服务关系可作为微服务的轻量化部署形式(如FaaS化微服务)。微服务是云原生的核心架构模式之一。中台通常基于微服务架构实现能力复用。
企业适用阶段初创企业快速试错、中小型业务轻量化部署。中大型企业复杂系统改造、需要长期技术沉淀的场景。集团化企业或多业务线公司,需解决重复建设和资源浪费问题。

总结

以上内容是快速了解架构的关系和区别,并且了解了以后架构发展大趋势。至于什么是微服务,具体该怎么用代码实现,将在之后的章节详细讲解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2319005.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于视觉的核桃分级与套膜装置研究(大纲)

基于视觉的核桃分级与套膜装置研究:从设计到实现的完整指南 (SolidWorks、OpenCV、STM32开发实践) 🌟 项目背景与目标 1.1 为什么选择视觉分级与套膜? 产业痛点: 中国核桃年产量全球第一,但…

JimuReport与deepseek结合,颠覆现有BI模式

在数字化转型的浪潮中,企业对数据的依赖程度越来越高,如何高效地分析和利用数据成为关键。JimuReport凭借其强大的报表设计能力和灵活的数据处理功能,已经成为众多企业的首选工具。如今,它即将与DeepSeek深度结合,为企…

11、STL中的set使用方法

一、了解 set 是 C 标准模板库(STL)中提供的有序关联容器之一。基于红黑树(Red-Black Tree)实现,用于存储一组唯一的元素,并按照元素的值进行排序。 set的特性 唯一性 键是唯一的。无重复。 有序性 按升序…

操作系统——(管程、线程、进程通信)

目录 一、管程机制 (1)管程定义 (2)特点: 二、进程通信 (1)概念 (2)高级通信机制 三、线程 (1)概念 (2)与进程比较…

Sqlserver安全篇之_启用和禁用Named Pipes的案列介绍

https://learn.microsoft.com/zh-cn/sql/tools/configuration-manager/named-pipes-properties?viewsql-server-ver16 https://learn.microsoft.com/zh-cn/sql/tools/configuration-manager/client-protocols-named-pipes-properties-protocol-tab?viewsql-server-ver16 默认…

Web开发-JS应用原生代码前端数据加密CryptoJS库jsencrypt库代码混淆

知识点: 1、安全开发-原生JS-数据加密&代码混淆 2、安全开发-原生JS-数据解密安全案例 一、演示案例-WEB开发-原生JS&第三方库-数据加密 前端技术JS实现: 1、非加密数据大致流程: 客户端发送->明文数据传输-服务端接受数据->…

比特币牛市还在不在

在加密货币的风云世界里,比特币的一举一动始终牵动着投资者们的神经。近期比特币的涨幅动作,再次引发了市场对于牛市是否仍在延续的激烈讨论。 在深入探索比特币市场的过程中,获取全面且及时的资讯至关重要。您可以通过访问Techub News&#…

Python、MATLAB和PPT完成数学建模竞赛中的地图绘制

参加数学建模比赛时,很多题目——诸如统计类、数据挖掘类、环保类、建议类的题目总会涉及到地理相关的情景,往往要求我们制作与地图相关的可视化内容。如下图,这是21年亚太赛的那道塞罕坝的题目,期间涉及到温度、降水和森林覆盖率…

跨平台RTSP高性能实时播放器实现思路

跨平台RTSP高性能实时播放器实现思路 目标:局域网100ms以内超低延迟 一、引言 现有播放器(如VLC)在RTSP实时播放场景中面临高延迟(通常数秒)和资源占用大的问题。本文提出一种跨平台解决方案,通过网络层…

编写一个简单的chrome截图扩展

文件结构: screenshot |-- background.js ---> service_worker运行的js |-- images ---> 图片 | |-- logo-128x128.png | |-- logo-16x16.png | |-- logo-32x32.png | -- logo-48x48.png -- manifest.json --->…

吴恩达机器学习笔记复盘(六)梯度下降算法

简介 梯度下降(Gradient Descent)是一种常用的优化算法,广泛应用于机器学习、深度学习等领域,在这里是用于求J(w,b)局部最小值。 我自己觉得这样说有点过于抽象。换个直观点的说法就是,一个人…

【机器学习chp14 — 3】生成式模型—生成对抗网络GAN(超详细分析,易于理解,推导严谨,一文就够了)

目录 三、生成对抗网络 ( Generative Adversarial Networks,GAN ) 1、GAN的基本思想 (1)生成器与判别器的基本结构与演变 (2)“对抗”机制及名词由来 2、GAN训练的基本算法 (1)网络初始化与…

机器人打磨控制技术

工具姿态调整运动 法线方向对齐运动:机器人实时调整工具姿态,使打磨工具的轴线与工件曲面的法线方向一致。例如,在球面打磨时,工具需始终垂直于球面切线。角度补偿运动:针对倾斜或不规则曲面,通过调整机器人…

K8S学习之基础四十:K8S配置altermanager发送告警到钉钉群

配置altermanager发送告警到钉钉群 ​ 创建钉钉群,设置机器人助手(必须是管理员才能设置),获取webhook webhook: https://oapi.dingtalk.com/robot/send?access_token25bed933a52d69f192347b5be4b2193bc0b257a6d9ae68d81619e3ae3d93f7c6…

Spring Boot + Spring Integration整合MQTT打造双向通信客户端

1. 概述 本文分两个章节讲解MQTT相关的知识,第一部份主要讲解MQTT的原理和相关配置,第二个章节主要讲和Spring boot的integration相结合代码的具体实现,如果想快速实现功能,可直接跳过第一章节查看第二章讲。 1.1 MQTT搭建 为了…

Java 填充 PDF 模版

制作 PDF 模版 安装 OnlyOffice 从 OnlyOffice 官网下载 OnlyOffice Desktop,安装过程很简单,一路下一步即可。用 OnlyOffice 制作 PDF 模版(表单) 使用 OnlyOffice 表单设计器,制作表单,如下图 注意命名…

Vulnhub-dedecms织梦通关攻略

姿势一、通过文件管理器上传WebShell 第一步:进入后台,找到文件管理器上传木马文件 第二步:使用蚁剑进行连接 #文件地址 http://localhost/dedecms/shell.php 姿势二、修改模板⽂件拿WebShell 第一步:修改模板文件,删除…

数据集获取

sklearn数据集 sklearn有四部分数据。其中sklearn的数据集有两部分真实的数据,一部分嵌入到了sklearn库中,即安装好sklearn后就自带了一部分数据,这些数据的规模比较小称为small toy datasets ,还有一部分数据是需要在网上下载的,sklearn提供了下载的api接口,这些数据规…

实验12深度学习

实验12深度学习 一、实验目的 (1)理解并熟悉深度神经网络的工作原理; (2)熟悉常用的深度神经网络模型及其应用环境; (3)掌握Anaconda的安装和设置方法,进一步熟悉Jupyte…

2024年消费者权益数据分析

📅 2024年315消费者权益数据分析 数据见:https://mp.weixin.qq.com/s/eV5GoionxhGpw7PunhOVnQ 一、引言 在数字化时代,消费者维权数据对于市场监管、商家诚信和行业发展具有重要价值。本文基于 2024年315平台线上投诉数据,采用数…