SpringCloud学习 什么是微服务(一)
关于SpringCloud,我是看了周老师的《SpringCloud与Docker微服务架构实战》之后才有了一点了解,做下记录,以供后期学习。本人知识有限,如有不对,欢迎批评
1.什么是单体应用,单体应用的特点
相信大家自接触开发以来,在开发过程中我们多人开发,都是分模块开发,一人负责一个模块,但是最终打包的时候无论你分了多少模块都是打成了一个war包,所有的模块、功能都被包含在这个war包中。这样的应用称为:单体应用
1.1单体应用的问题
很多项目都是从单体应用开始的,单体应用部署简单,在项目初期不会出现什么问题,但是随着后期需求的增加变更,迭代次数的增多,开发人员的变更,系统中代码混乱,冗余代码成堆,但是还不敢随意修改,随着时间的推移,维护成本越来越高。
在系统运行方面,可能一个功能模块的Bug最终会导致整个项目的崩溃,在这种种情况下,微服务的出现似乎就能很大程度上的解决目前面临的问题
2.什么是微服务
鉴于单体应用所遇到的问题,微服务所应具备的功能应该就是把之前的单体应用的拆分,一个模块一个服务(应用),服务之间通过轻量级通信机制来通信(数据交流),每个模块一个服务或者更加细化的分成不同的服务,不同的服务之间可以用不同的语言进行开发
微服务有哪些特点:
(1) 每个微服务运行在自己的进程中
(2)多个微服务构建出一个系统
(3)每个微服务是独立的开发,只关注于某个特定模块活功能
(4)微服务之间通过轻量级通信通信来交流
(5)不同服务可以使用不同的语言开发
3.SpringCloud
我对于SpringCloud的理解其实就是分布式架构,对于微服务我们都知道用SpringBoot,那么分布式呢,对于分布式,目前比较流行的有阿里的Dubbo和Spring社区的SpringCloud springCloud就是一个比较全面地解决分布式中问题的东西
至于说springcloud项目,我的理解就是客户端只与网关进行交流,而微服务只与网关进行交流,这样我们的客户端就不用访问不同微服务,减轻了客户端的复杂性。总之就是多个微服务为网关提供数据接口,客户端通过网关来获取数据,网关在我目前的理解中就是一个中间层的,来整合所有微服务的数据接口最后统一为客户端提供
本来想写一下SpringCloud 结果全写成废话了,我都不知道自己写的是什么鬼
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库