微服务架构 原来应用开发还可以这么美好

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,182元/月
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
简介:

单体应用这种传统开发思维已经难以在新时代站住脚了。

一个简单的应用会随着时间推移逐渐变大。在每次的sprint中,开发团队都会面对新“故事”,然后开发许多新代码。几年后,这个小而简单的应用会变成了一个巨大的怪物。

一旦你的应用变成一个又大又复杂的怪物,那开发团队肯定很痛苦。敏捷开发和部署举步维艰,其中最主要问题就是这个应用太复杂,以至于任何单个开发者都不可能搞懂它。因此,修正bug和正确的添加新功能变的非常困难,并且很耗时。另外,团队士气也会走下坡路。

微服务架构 原来应用开发还可以这么美好

最后,单体式应用使得采用新架构和语言非常困难。比如,设想你有两百万行采用XYZ框架写的代码。如果想改成ABC框架,无论是时间还是成本都是非常昂贵的,即使ABC框架更好。因此,这是一个无法逾越的鸿沟。你不得不在最初选择面前低头。

相对于单体(Monolithic)应用而言,微服务是采用一组服务的方式来构建一个应用,服务独立部署在不同的进程中,不同服务通过一些轻量级交互机制来通信,例如 RPC、HTTP 等,服务可独立扩展伸缩,每个服务定义了明确的边界,不同的服务甚至可以采用不同的编程语言来实现,由独立的团队来维护。

比喻来讲,单点服务是把所有的东西放在一个大盒子里,这个大盒子里什么都有。微服务更像是车箱,每个箱子里包含特定的功能模块和物品,所有东西可以很灵活地拆分出来。换言之,在单点服务中,所有的部件都在一个巨大的软件包中。在微服务架构下,有很多独立存在的小服务,通过 API 接口连接成庞大的系统。

表面上看来,微服务架构模式有点像SOA,他们都由多个服务构成。但是,可以从另外一个角度看此问题,微服务架构模式是一个不包含Web服务(WS-)和ESB服务的SOA。微服务应用乐于采用简单轻量级协议,比如REST,而不是WS-,在微服务内部避免使用ESB以及ESB类似功能。微服务架构模式也拒绝使用canonical schema等SOA概念。

微服务架构下,技术选型是去中心化的。每个团队可以根据自身服务的需求和行业发展的现状,自由选择最适合的技术栈。由于每个微服务相对简单,当需要对技术栈进行升级时所面临的风险较低,甚至完全重构一个微服务也是可行的。当某一组建发生故障时,在单一进程的传统架构下,故障很有可能在进程内扩散,形成应用全局性的不可用。在微服务架构下,故障会被隔离在单个服务中。若设计良好,其他服务可通过重试、平稳退化等机制实现应用层面的容错。

使用微服务构建适合云的新型应用是很有意义的,因为它让你既利用了横向扩展架构,也利用了纵向扩展架构,还额外得到API的组合,且在整个业务中可重复利用。可能在每一分钟都在交付新服务,这样你就会拥有一个敏捷的且即时响应的应用程序平台,当然这一平台一直在不断改进中,微服务架构也在前进着。


本文作者:张存

来源:51CTO

相关文章
|
物联网 开发者
Wifi-nodeMCU-esp8266 固件库下载与调试工具介绍 | 学习笔记
快速学习 Wifi-nodeMCU-esp8266 固件库下载与调试工具介绍
Wifi-nodeMCU-esp8266 固件库下载与调试工具介绍 | 学习笔记
|
达摩院 Java 开发工具
Python、Java SDK两种方式调用阿里云人脸检测与五官定位
阿里云视觉智能开放平台基于达摩院自研的人脸人体分析技术,提供人脸检测与五官定位、人脸属性识别、人脸比对、人脸搜索、人体检测、人体属性、行为分析等多种功能,为开发者和企业用户提供高性能高可用的人脸人体识别服务。广泛应用于数字门店、楼宇门禁、身份识别、互动娱乐、IPC摄像头、内容广告等领域。此篇文章简单介绍人脸人体与五官定位python,java两种方式调用。
797 0
Python、Java SDK两种方式调用阿里云人脸检测与五官定位
|
9月前
|
SQL 人工智能 BI
《解锁AI与SQL Server的高效协作,提升并发查询能力》
在数字化转型中,企业业务激增使SQL Server面临并发查询的严峻挑战。传统优化手段难以应对复杂场景,而AI技术通过深度数据分析、智能执行计划调整和动态资源分配,精准解决性能瓶颈。案例表明,AI可大幅提升系统响应速度与吞吐量,助力企业在高并发场景下实现高效稳定运行,为未来业务增长提供坚实保障。
198 5
|
自动驾驶 安全 物联网
2G、3G、4G与5G技术:主要区别详解
2G、3G、4G与5G技术:主要区别详解
7455 14
|
自然语言处理 供应链 Cloud Native
天源迪科与阿里云发布联合解决方案,基于阿里云原生产品打造卓越的数字化采购平台
随着云上时代日益蓬勃,云原生成为企业精益实践的最好“扶手”,助力企业在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。
3528 109
天源迪科与阿里云发布联合解决方案,基于阿里云原生产品打造卓越的数字化采购平台
|
Shell Linux BI
Linux基础服务巡检脚本模板
Linux基础服务巡检脚本模板 收集的一个没有自动化巡检工具的时候,的每日巡检工具, 测试了支持Redhat, Ubuntu能用,单少部分部分命令出错。 结果能看。
2365 0
|
消息中间件 人工智能 负载均衡
怎样才能高效的拨打电话—,人工智能系统,呼叫中心,外呼系统建设
外呼平台是一个与通话相关的多功能管理平台,将通信资源与相关应用技术的管理能力平台化,高效利用通信资源,外呼能力赋能产品服务创新和客户响应能力,同时无缝对接业务、数据、AI等其他能力。外呼平台集成了资源隔离和资源分配,机器人和IVR会话管理,坐席管理等多种应用能力。完成资源的高效利用和运营的高效管理,做到配置化,可视化,分钟级别告警。下面主要围绕外平台,建设过程中遇到哪些问题,又是怎么解决展开的。 一、外呼平台建设 外呼给人的第一印象就是打电话,但是加上了平台,就会变成怎么高效拨打电话,高效运营管理和新的赋能,图1是外呼平台的网络拓扑图。 ​ 外呼平台网络拓扑图 外呼平台是以开源的呼叫中心服务
|
网络虚拟化
【eNSP 华为模拟器】vlan划分实验【图文】
【eNSP 华为模拟器】vlan划分实验【图文】
662 0
【eNSP 华为模拟器】vlan划分实验【图文】
|
Ubuntu NoSQL Linux
【Docker】7. 镜像-加载原理、分层原理、commit镜像
【Docker】7. 镜像-加载原理、分层原理、commit镜像
【Docker】7. 镜像-加载原理、分层原理、commit镜像
|
Python
Matplotlib在图形中添加辅助网格和辅助线
当我们查看图形时,可能需要快速估计出图形中某一部分的坐标,这时,向图形中添加辅助网格或辅助线将是一种提高图形可读性的良好方法。
2195 0
Matplotlib在图形中添加辅助网格和辅助线

热门文章

最新文章