前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >单体应用是这样的,程序员只要一把梭就行了,而微服务应用要考虑的事情就很多了

单体应用是这样的,程序员只要一把梭就行了,而微服务应用要考虑的事情就很多了

作者头像
Java3y
发布于 2024-06-26 04:36:51
发布于 2024-06-26 04:36:51
2000
举报
文章被收录于专栏:Java3yJava3y

上篇文章说了austin会用Spring Cloud Alibaba升级为分布式架构,代码我还在编写修改中,估计很快就可以开放出来。

今天随便聊点分布式架构这事吧。

我是2017~2018年学习Java的,分布式微服务这种概念在当时其实就挺火了,只是时间紧迫,当初学完了ssh/ssm,就觉得差不多可以去找工作了。

那时候大三找实习,很多公司还是ssm/ssh架构,有公司都说自己用的是SpringBoot,我一想,感觉还不错,至少比我这掌握的知识要好啊。

后来面了我进去实习的公司,他说用的是SpringCloud架构,我这一听就心动,我刚出来,学到技术就可以了,3500一个月就进去干了。

另外,老板给我承诺干满3个月,给我升到4000

等我进去了以后,大多数时间都是熟悉当下被分配的业务,实际上也没什么空管什么SpringCloud

不过,我还是在业余时间,抽空在实习的时候学习了下,毕竟在我看来算是新技术了。

在我学习的过程中,我再去审视实习的项目,看到它所谓的SpringCloud架构,我感觉被坑了。

注册中心的影子都看不见,服务之间的调用也没有,怎么能算是SpringCloud架构呢。

我看项目代码就用了些SpringCloud的一些组件,这些组件至于是不是真的有用,到现在其实我也没懂。

我在那呆了没多久,我就跑路去准备秋招了。可惜了,没领到4000的工资。

系统分分合合

后来,秋招进了电商公司,公司自研了RPC的框架,我估摸是基于Dubbo上做了开发吧?

我待了两年多也没细看实现原理,主要是大把东西可以学,可能也是因为RPC框架对调用者太透明了,平时也出不了什么问题,亦或是出了问题也跟我没啥关系吧。

到后来,降本增效,要缩减服务器,启动广进计划。

本来每个服务在线上都要分配两台机器(为了做高可用),现在要缩减服务器了,最简单的办法就是把系统合起来。

比如,本来有个消息推送后台web服务,微信管理后台web服务,本来是分开不同的服务的,一共要占用4台机器。

降本可以这样做,把消息推送后台web服务和微信管理后台web服务的代码合起来部署,这样线上一共只要2台机器,高可用没变,这就省了两台机器的钱,简直是美滋滋。

“什么?这两个系统本来就应该分开的,不搭边的,怎么能合起来啊?”

“真不是,那是你的项目名没取对,比如你叫奥斯丁管理后台,那不就得了。只要项目名不跟具体业务挂钩,在里面放什么都合理”

有理

大部分合并是同类型的业务进行合并,比如本来都是提供对外服务的,少部分确实是有些从RPC调用改为本地调用。

经过几个月奋斗,服务器哗啦啦的减,这个过程中小的事故是在所难免的,但运行了一段时间后,也没什么大问题。

微服务是真有必要吗?

有的时候我也在想,微服务是不是必要的东西。

1、它不解决高并发高性能高可用的问题,单体应用照样也能实现负载均衡,弹性扩缩容,还少了很多网络的交互呢。

2、说是解耦吧,我单体应用也能划分模块解耦

但得承认,确实分模块是没有微服务那么彻底,毕竟都进程隔离了。

进程隔离了,项目启动更快了,如果出问题,也只出在对应的进程里了。

Git仓库也被拆开了,多人协作时的冲突也没那么多了,能独立出团队开发了。

不过有一说一,Git冲突过多这事好解决,过多说明人力冗余了,降本增效一波(狗头)。

好处是有的,但没想象中那么美好。代码烂不烂,跟是不是微服务也没多大关系。

有的单体应用,模块划分得好,代码照样好看。有的微服务应用,共用代码到处复制,就为了省事不发包,每次改都要全局搜,每一份都有点细微的差别。

服务拆开了以后,问题倒是有一大堆,解决这些分布式问题的就是分布式治理的框架

光部署这些分布式治理组件,服务器数量就能蹭蹭涨上去了。

这肯定能利好云厂商。

对Java程序员是利空,得学这些技术栈了。

这些技术栈是不是真的能用到,是不是真能解决线上遇到的问题,这些都不好说。

但在简历上,貌似你就是要懂的。

大部分公司的大部分应用都用不上微服务这种架构,真没必要强上微服务。

SpringCloud也许是过渡方案

Spring Cloud微服务架构的一个解决方案,他的具体实现之一是:Spring Cloud Alibaba

Service Mesh服务网格)也是微服务架构的一个解决方案,他的具体实现之一是:istio

SpringCloud是侵入式的,istio是非侵入式的。Spring Cloud支持的,Service Mesh基本都支持。

我们要用SpringCloud要在代码中引入spring-cloud-starter-alibaba-nacos-discovery服务注册发现,spring-cloud-starter-loadbalancer服务负载均衡这种SDK包,要额外部署服务注册中心(如nacos)这种服务。

Service Mesh不用,它的目标就是要将微服务治理体系下沉为一套与业务无关的基础设施

我们只需要写简简单单的SpringBoot,不需要引入各种的服务发现,负载均衡的SDK,就能实现SpringCloud所类似的功能,服务治理的相关都由基建完成。

非侵入式,让程序员专注业务,是未来。

但SpringCloud还是得学

不管有没有必要上微服务,现在已经有很多公司已经用上了SpringCloud架构了。

比如我19年实习的小公司,算上我,一共就4个后端,都引入了SpringCloud的依赖...

SpringCloud也许是过渡方案,但存量的项目一般是不会重构改造的。

这道理很易懂,jdk都发布到23版本了,我们还在用8,是不是。

简历不写上微服务的技术栈,都不好意思投递了...

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java3y 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
微服务入门学习:SpringCloud、SOA、集群、分布式学习
微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。
程序员洲洲
2024/06/07
1540
微服务入门学习:SpringCloud、SOA、集群、分布式学习
面渣逆袭:微服务三十三问,两万字图文详解!速收藏!
微服务(Microservices)是一种软件架构风格,将一个大型应用程序划分为一组小型、自治且松耦合的服务。每个微服务负责执行特定的业务功能,并通过轻量级通信机制(如HTTP)相互协作。每个微服务可以独立开发、部署和扩展,使得应用程序更加灵活、可伸缩和可维护。
三分恶
2023/09/16
1.7K0
面渣逆袭:微服务三十三问,两万字图文详解!速收藏!
架构师必须要知道的阿里的中台战略与微服务
  传统企业平台都是烟囱式的系统架构,企业内部为了迎合业务发展不停的打造各种系统,导致各系统间的重复功能建设和维护带来的重复投资。重复投资不仅消耗的是人力,财力还有时间。但打通烟囱式系统间交互的集成和协作成本高昂,各大企业不得不借助ESB产品,构建企业服务总线,打通各系统间的交互问题。
欢醉
2019/05/25
1.4K0
SpringCloud——微服务介绍+系统架构
* 全部功能集成在一个工程中,对于大型项目来讲不易开发和维护* 项目模块之间紧密耦合,单点容错率低* 无法针对不同模块进行针对性能优化和水平扩展
用户10196776
2022/11/22
1.1K0
SpringCloud——微服务介绍+系统架构
这本书,让我秒懂了微服务架构
👆点击“博文视点Broadview”,获取更多书讯 通过采用微服务架构,企业最大的收益是帮助内部IT建设沿着可演进的方向发展、支持灵活扩展、降低运维成本、快速响应业务变化。 这些底层技术能力的提升让业务更加敏捷、成本可控,企业也可以从中获得技术红利和市场的竞争优势。 那么有什么方法可以让我们在较短的时间内掌握并且能够游刃有余地发挥微服务带给我们的开发成效呢? 看书显然是一条捷径,有人给你整理好,并且成本非常低。 目前市面上不乏介绍各种微服务开发框架和技术实践的书籍,也有专注于微服务理论知识的讲解,但总觉
博文视点Broadview
2023/05/06
2710
这本书,让我秒懂了微服务架构
Java面试——微服务
就目前而言,对于微服务业界并没有一个统一的,标准的定义。但通常而言,微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分一组小的服务,每个服务运行在其独立的自己的进程中,服务之间相互协调、互相配合,为用户提供最终价值。服务之间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的 RESTful API),每个服务都围绕着具体的业务进行构建,并且能够被独立的构建在生产环境、类生产环境等。另外,应避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建,可以有一个非常轻量级的集中式管理来协调这些服务,可以使用不同的语言来编写服务,也可以使用不同的数据存储。
Java架构师必看
2021/04/25
1.1K0
【 ECUG 演讲分享】吴海黎:CODING 微服务架构演进之路
近日,CODING 平台技术总监吴海黎参加了由 ECUG 社区举办的技术大会,与听众一同分享了 CODING 微服务架构的演进历程。让我们一起来欣赏精彩的演讲内容吧。
腾讯云 CODING
2020/01/16
7460
【 ECUG 演讲分享】吴海黎:CODING 微服务架构演进之路
微服务架构从阿里掀起变革!微服务全彩手册趁势崛起 (容器 k8s)
在当今的数字化经济时代,微服务架构已经成为公司业务构建的主流架构模式,代表了未来的技术发展趋势,同时微服务也成为开发者的必备技能。
愿天堂没有BUG
2022/10/28
4210
微服务架构从阿里掀起变革!微服务全彩手册趁势崛起 (容器 k8s)
基于SpringCloud的微服务架构演变史?
在公司业务初创时期,面对的主要问题是如何将一个想法变成实际的软件实现,在这个时候整个软件系统的架构并没有搞得那么复杂,为了快速迭代,整个软件系统就是由“App+后台服务”组成,而后台服务也只是从工程角度将应用进行Jar包的拆分。此时软件系统架构如下:
用户5927304
2019/07/31
3410
快速学习-微服务简介
随着互联网的发展,网站应用的规模也在不断的扩大,进而导致系统架构也在不断的进行变化。
cwl_java
2020/08/28
6620
快速学习-微服务简介
SpringCloud-微服务项目架构
在当今软件开发领域,微服务架构正成为构建灵活、可伸缩、独立部署的应用的首选,微服务架构作为一种灵活而强大的设计模式,通过将系统拆分为独立的、自治的服务,使得应用更容易维护、扩展和升级。本文将探讨微服务项目架构的关键特征和设计原则,帮助读者更好地理解和应用这一先进的软件设计范式。
Damon小智
2024/02/07
7231
SpringCloud-微服务项目架构
SpringCloud-Alibaba | 微服务架构介绍
微服务架构, 简单的说就是将单体应用进一步拆分,拆分成更小的服务,每个服务都是一个可以独立运行的项目。
码神联盟
2020/12/03
7560
SpringCloud-Alibaba |  微服务架构介绍
系统架构演进与Spring Cloud Alibaba微服务架构体系
随着互联网世界的快速发展,网站应用的规模也在不断地扩大,这种规模的扩大必然会影响这我们研发的项目的架构体系。
行百里er
2022/11/22
3770
系统架构演进与Spring Cloud Alibaba微服务架构体系
2018微服务年之服务网格Service Mesh
微服务自2014年3月由Martin Fowler首次提出以来,在Spring Cloud、Dubbo等各类微服务框架的帮助下,以燎原之势席卷了整个IT技术界,成为了最主流的分布式应用解决方案。但仍然还有很多问题没有得到根本性的解决,比如技术门槛高、多语言支持不足、代码侵入性强等。如何应对这些挑战成为了下一代微服务首要回答的问题。直到服务网格(Service Mesh)被提出,这一切都有了答案。
哲洛不闹
2018/09/14
8740
2018微服务年之服务网格Service Mesh
微服务架构:微服务究竟是灵丹还是毒药呢?
微服务架构是从单体架构演化而来的。所谓单体架构,指的就是整个互联网系统所有代码打包在一个程序中,部署在一个集群上,一个单体应用构成整个系统。而微服务架构则是将这个大的应用里面的一些模块拆分出来,这些模块独立部署在一些相对较小的服务器集群上,而应用通过远程调用的方式依赖这些独立部署的模块,完成业务处理。这些被独立部署的模块就被称为微服务,而这样的应用架构也被称为微服务架构。
35岁程序员那些事
2023/01/05
4950
微服务架构:微服务究竟是灵丹还是毒药呢?
一SpringCloud史上最详细微服务架构+系统架构的演变
一、微服务介绍 之前有大佬为了进大厂,辞职在家啃这张图,把这张图吃透了! 之前有大佬为了进大厂,辞职在家啃这张图,把这张图吃透了! 之前有大佬为了进大厂,辞职在家啃这张图,把这张图吃透了! 1.系统架构演变 随着互联网的发展,网站应用的规模也在不断的扩大,进而导致系统架构也在不断的进行变化。 从互联网早起到现在,系统架构大体经历了下面几个过程: 单体应用架构--->垂直应用架构--->分布 式架构--->SOA架构--->微服务架构,当然还有悄然兴起的Service Mesh(服务网格化)。 接下来
天蝎座的程序媛
2022/11/18
3.8K0
一SpringCloud史上最详细微服务架构+系统架构的演变
微服务框架与服务网格
在docker-k8s掀起的云原生浪潮下,使得微服务更加的蓬勃发展。那么要管理一个由众多微服务架构起来的系统,将是一个复杂而严肃的话题。
tunsuy
2023/08/19
2640
微服务框架与服务网格
应用技术架构 —— 微服务架构
在 2010s 进入移动互联网(web3.0)时代,互联网用户规模再次迎来井喷式增长,面向服务的技术架构在服务海量规模用户时显得力不从心。SOA 架构中 ESB 存在单点以及 RPC 中缺少服务的治理能力,ESB 和 RPC 架构都很难满足移动互联网海量用户的要求,微服务开始出现,并成为今天技术架构的主流。
腾讯云 CODING
2022/03/16
1.9K0
应用技术架构 —— 微服务架构
微服务2.0时代,论其痛点与触点
微服务自2014年3月由Martin Fowler首次提出以来,在Spring Cloud、Dubbo等各类微服务框架的帮助下,以燎原之势席卷了整个IT技术界,成为了最主流的分布式应用解决方案。但仍然还有很多问题没有得到根本性的解决,比如技术门槛高、多语言支持不足、代码侵入性强等。如何应对这些挑战成为了下一代微服务首要回答的问题。直到服务网格(Service Mesh)被提出,这一切都有了答案。
技术zhai
2019/02/15
1.6K0
微服务架构体系
分布式关注的是服务分开部署,也就是如何将单一服务部署,变为多服务部署(垂直+水平拆分)。 微服务关注的是服务拆分力度,即:一个服务要拆分到多大的维度合适
架构之家
2022/07/12
8990
微服务架构体系
推荐阅读
相关推荐
微服务入门学习:SpringCloud、SOA、集群、分布式学习
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档