当前位置:网站首页>不吹不黑,这的确是我看过微服务架构最好的文章!
不吹不黑,这的确是我看过微服务架构最好的文章!
2022-08-05 05:18:00 【乘云科技】
2014年,Martin Fowler 与 James Lewis 共同提出了微服务的概念,定义了微服务是由以单一应用程序构成的小服务,自己拥有自己的行程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTTP API 通信。同时服务会使用最小的规模的集中管理 (例如 Docker) 能力,服务可以用不同的编程语言与数据库等组件实现。
微服务 (Microservices) 就是一些协同工作小而自治的服务。
微服务与SOA
面向服务的体系结构SOA (Service-Oriented Architecture) 听起来和微服务很像,但 SOA早期均使用了总线模式,这种总线模式是与某种技术栈强绑定的,比如:J2EE。这导致很多企业的遗留系统很难对接,切换时间太长,成本太高,新系统稳定性的收敛也需要一些时间,最终 SOA 看起来很美,但却成为了企业级奢侈品,中小公司都望而生畏。
微服务架构
合久必分,鉴于「单体应用程序」有上述的缺点,单个应用程序被划分成各种小的、互相连接的微服务,一个微服务完成一个比较单一的功能,相互之间保持独立和解耦合,这就是微服务架构。
技术异构性
不同服务内部的开发技术可以不一致,你可以用java来开发helloworld服务A,用golang来开发helloworld服务B,大家再也不用为哪种语言是世界上最好的语言而争论不休。
可扩展性
庞大的单体服务如果出现性能瓶颈只能对软件整体进行扩展,可能真正影响性能的只是其中一个很小的模块,我们也不得不付出升级整个应用的代价。这在微服务架构中得到了改善,你可以只对那些影响性能的服务做扩展升级,这样对症下药的效果是很好的。
简化部署
如果你的服务是一个超大的单体服务,有几百万行代码,即使修改了几行代码也要重新编译整个应用,这显然是非常繁琐的,而且软件变更带来的不确定性非常高,软件部署的影响也非常大。在微服务架构中,各个服务的部署是独立的,如果真出了问题也只是影响单个服务,可以快速回滚版本解决。
服务注册与发现
微服务之间相互调用完成整体业务功能,如何在众多微服务中找到正确的目标服务地址,这就是所谓「服务发现」功能。
在IT世界没有什么技术是永不过时的,微服务架构的演进就是一个例子。我们不知下一个技术迭代为何时,但微服务框架在我们努力奋斗的每一天每一秒中从未停下更新的脚步。作为IT行业的一角,我们应该对技术饱含热情、积极面对变化、利用新技术让我们再次站在顶峰处。
边栏推荐
猜你喜欢

基于STM32F407的WIFI通信(使用的是ESP8266模块)

(C语言)计算结构体大小——结构体内存对齐

深度学习系列(二)优化器 (Optimization)

每日一题-删除链表的倒数第 N 个结点-0718

【nodejs】第一章:nodejs架构

每日一题-两数相加-0711

2020年手机上最好的25种免费游戏

物联网-广域网技术之NB-IoT
![[Kaggle project actual combat record] Steps and ideas sharing of a picture classification project - taking leaf classification as an example (using Pytorch)](/img/7d/7f1301c30034f1c247d41f04c40244.png)
[Kaggle project actual combat record] Steps and ideas sharing of a picture classification project - taking leaf classification as an example (using Pytorch)

每日一题-单调栈
随机推荐
深度学习系列(一)简介、线性回归与成本函数
栈的应用——力扣 20.有效的括号
【ts】typescript高阶:映射类型与keyof
【UiPath2022+C#】UiPath 练习和解决方案-变量、数据类型和控制流程
网络通信及相关函数介绍
2020年手机上最好的25种免费游戏
游戏引擎除了开发游戏还能做什么?
LeetCode刷题之第416题
如何使用Houdini进行程序化优化?
电子产品量产工具(2)- 输入系统实现
【UiPath2022+C#】UiPath 循环
吞吐?带宽?傻傻分不清楚
【Promise高级用法】实现并行和串行API
leetCode刷题之第31题
五、请求处理—Rest映射是怎样实现的?
每日一题-DFS
教你如何封装功能组件和页面组件
D45_摄像机组件Camera
常用 crud 的思考和设计
C语言—三子棋的实现