一文了解微服务
原文作者:NGINX
原文链接:一文了解微服务
转载来源:NGINX 中文官网
NGINX 唯一中文官方社区 ,尽在 nginx.org.cn
微服务是一种使用多个小组件构建复杂应用的方法。本文介绍了它的工作原理、优缺点及其可带来的优势。
什么是微服务?
微服务是一种利用多个小组件(每个组件执行一种功能,例如身份验证、通知或支付处理)构建大型复杂应用的软件架构方法。每个微服务都是软件开发项目中的一个独立单元,具有自己的代码库、基础设施和数据库。微服务协同工作,通过 Web API 或消息队列进行通信,以对传入事件作出响应。
简化的微服务架构
关于微服务的视频
-
什么是微服务?
-
NGINX Plus 助力 BuzzFeed 迁移至微服务
为何采用微服务架构?
在传统单体架构中,一个应用的所有功能均在单个代码库中实现。这种方法有几个弊端:
-
随着应用日趋复杂,任何一位开发人员都很难弄清整个代码库。新入职的开发人员也很难上手。一个解决办法是将不同的功能模块分配给不同的开发人员或团队。这样开发人员可以更轻松地掌控自己的代码,但问题是会更难跟踪与其他模块的依赖关系。因此,一个模块的变更很有可能会影响其他模块。
-
当您需要添加或增强功能时,您必须编译并测试整个应用,以验证该变更是否会破坏模块之间的兼容性。然后,您必须将整个应用作为单个二进制文件进行部署。
而微服务架构则将应用功能划分成多个独立的微型服务(service),有助于简化 CI/CD。微服务开发速度更快且更易于理解和维护。每个服务均可由只专注于该服务的团队独立开发。该团队可以选择最适合微服务的编程语言、开发平台和数据库。微服务通常封装为容器,以进一步简化部署。
微服务具有松散耦合性,这意味着它们不依赖于其他微服务的内部构件。它们之间通过 API 进行通信。只要每个微服务暴露的 API 保持向后兼容,对一个微服务进行更改时,便无需更新其他任何微服务。
简而言之,想要在微服务架构中进行修改的开发人员可以在单个微服务容器中执行这一操作,而在单体架构中操作的开发人员则可能不得不耗费大量的时间来重写整个堆栈。
微服务使用群体
为了快速响应不断变化的业务需求,技术团队纷纷转而采用微服务架构。开发人员正引领这一变革,这在很大程度上是因为更多企业授予了开发人员选择应用和交付工具的权限。2020 年开展的一项 NGINX 用户调查显示,超过一半的受访者在其部分或全部应用中使用微服务。 2022 年,在正弃用单体系统的公司工作的更多 NGINX 用户表示,之所以采用微服务,在一定程度上是因为容器编排所允许的可扩展性。
微服务 101:优缺点
微服务可将传统的单体应用转变为更加灵活、安全且高效的架构,从而帮助您节省大量时间、成本和资源。下面总结了微服务的优缺点,这些优缺点可能影响应用性能和设计。
优点:
-
开发人员可以自由地独立开发和部署服务,从而提高决策速度。
-
得益于微服务的小规模和自主性,基于微服务的方法能够缩短开发周期,因为不同的团队可以同时实现不同的服务。团队之间的依赖性通常会减弱甚至消除。
-
微服务可轻松地部署至容器,有助于减少开销并提高跨不同环境的可移植性。
-
由于微服务很容易与 CI/CD 工具集成,因此开发人员可实施现代 DevOps 实践,例如自动化 CI/CD 流水线。
-
轻松扩展应用,按需“调整大小”,因为通常每个服务都弹性十足。
-
微服务更易于构建、测试和维护。
-
服务围绕业务功能组织实施。
-
开发人员可以采用最适合特定服务的技术。
-
更轻松地隔离故障——如果一个微服务发生故障,其他微服务仍可继续运行。
缺点:
-
微服务架构会加剧复杂性,因为开发人员必须降低容错率,缩短网络延迟,处理不同的编程语言,并跨多个服务实现负载均衡。
-
由于微服务具有分布式特性,因此微服务故障排除可能繁琐复杂。
-
增加应用中的微服务数量会增加集成和管理工作。
-
处理多个数据库
API 是微服务吗?
简而言之,不是。API 本身不是微服务。但 API 正越来越多地作为应用内的通信机制集成到微服务架构中。一个微服务的功能暴露为一组 API 端点,其他微服务通过对相应端点进行 API 调用来调用该功能。
为何使用容器来运行微服务?
容器化平台支持开发人员以不受基础设施限制的最高效方式隔离、扩展并部署微服务,同时最大限度地减少对用户的干扰。设想这样一种情景:在您的应用前面部署单个负载均衡和流量路由服务器集群。借助在 DNS 中发布的静态公共 IP 地址,客户端可将其请求发送到这个稳定的入口点,然后该请求会被转发到相应的容器。如果添加或删除这些容器,只需更新内部地址即可将这些请求定向到新的 IP 地址。您也可以通过 DNS 在内部发布这些地址。
微服务案例
微服务加速了受严格管制行业中的无缝安全迁移
一家身处受严格监管行业的跨国公司必须按照规定的时间表升级其系统,以确保遵守不断演进的标准和最佳实践。这家公司的应用组合每天通过其系统处理数百万笔交易。多年来,即使在开源升级和第三方安全插件集成期间,该公司仍然遵守行业要求。然而,在最近的一次升级中,由于插件互斥问题,该公司遇到了一些难题。该公司曾考虑从数据中心迁移到 AWS 公有云,但安全插件问题促使其迁移到了微服务架构。这种解决方案的成本更低,并可帮助该公司快速实现安全合规。
请阅读此客户成功案例,了解有关微服务迁移的更多信息。
博文
成功案例和用例
参考资料
资源推荐
点击此处免费查看 Microservices June 微服务之月 2023 议程内容以及全部课程回放。
NGINX 唯一中文官方社区 ,尽在 nginx.org.cn

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
官答丨slow_query_log_file实例内存中变量与配置文件设置的不一致
官答|slow_query_log_file实例内存中变量与配置文件设置的不一致 官答栏目针对GreatSQL数据库中的问题,选取官方论坛和讨论群中的典型提问进行深入解答。内容涵盖数据库安装部署、配置优化、故障排查、性能测试等方面。 在文章中,我们不仅提供解决方案,还会结合实例深入剖析问题的成因,提升读者对GreatSQL数据库的理解能力。 如果你在管理、使用GreatSQL数据库时遇到棘手的技术难题,想系统地学习提高数据库技能,就来看看官答的文章吧。这里不仅可以找到可靠的解决方法,还能从中学习到数据库优化的经验和思路。 通过阅读官答的内容,可以全面地掌握GreatSQL数据库管理的技能,熟练应对各种故障情况。快来关注官答栏目,与我们一起成长! 本问题是来自论坛,用户使用数据库环境大概介绍如下: 名称 版本 操作系统版本 BigCloud Enterprise Linux 8 数据库版本 GreatSQL-8.0.32-25 用户问题 用户提供的问题信息内容如下: 1、my.cnf配置文件慢慢日志文件路径相关配置: slow_query_log_file = /data/GreatSQ...
- 下一篇
居中艺术:在网页设计中实现完美居中布局的挑战与解决方案
引言 在数字时代,用户与界面的每一次互动都是对产品体验的一次投票。完美的用户体验往往建立在细节之上,而对齐——尤其是居中布局——是这些细节中的关键一环。居中布局不仅仅是一种视觉美学的追求,它更是一种信息呈现的逻辑,能够引导用户的注意力,提升阅读和浏览的舒适度。 然而,正如 Niki 在其个人博客上发表的文章《计算机科学里最大的难题:居中显示》中所讲,实现完美的居中布局并非易事。它涉及到对字体度量、行高、图标与文本对齐等复杂问题的深入理解,并且需要设计师和开发者齐心协力。 居中的重要性 在网页设计中,居中对齐通过创建清晰的视觉焦点,有效减轻用户的认知负担,并帮助他们快速把握页面核心内容和结构。居中的设计元素,如标题和按钮,能显著提升页面的吸引力和专业度。 当呈现给最终用户时,很多知名公司的应用和网站仍然存在居中对齐的问题。你是否曾经也注意到了这些歪歪扭扭的居中对齐了呢? Github按钮中图标和文本没有居中对齐。 图片来源于:https://tonsky.me/blog/centering X(Twitter)没有居中对齐 图片来源于:https://tonsky.me/blog/cen...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- MySQL8.0.19开启GTID主从同步CentOS8