微服务中 “微“ 到底是什么?

简介: 抛去教条性质的解释,从巨石应用到微服务应用,耦合度是其中最大的变化。或是将多个模块中重复的部分进行拆分,或是纯粹为了拆分膨胀的单体应用,这些拆分出来的部分独立成一个服务单独部署与维护,便是微服务了。拆分后自然而然会催生出一些必要的需求:

微服务是什么

抛去教条性质的解释,从巨石应用到微服务应用,耦合度是其中最大的变化。或是将多个模块中重复的部分进行拆分,或是纯粹为了拆分膨胀的单体应用,这些拆分出来的部分独立成一个服务单独部署与维护,便是微服务了。


拆分后自然而然会催生出一些必要的需求:


从本地方法调用的关系衍变成远程过程调用的关系,那么可靠的通信功能是首要的。

随着拆分工作的推进,资源调度关系会变得错综复杂,这时候需要完善的服务治理。

调用关系网的整体复杂化还会给我们带来更大的风险,即链式反应导致服务雪崩的可能性,所以如何保障服务稳定性也是微服务架构中需要考虑的。

这点就不是内需而算是自我演进了,服务化后,如果能结合容器化、Devops技术实现服务运维一体化,将大大降低微服务维护的成本,不管是现在还是将来。

微服务是什么样的

从目前常见网站架构的宏观角度看,微服务处在中间的层次。红框圈出的部分都属于微服务的范畴。包括最基础的rpc框架、注册中心、配置中心,以及更广义角度的监控追踪、治理中心、调度中心等。


image.png


从微服务自身角度来看,则大致会包含以下这些模块:


服务注册与发现

rpc远程调用

路由与负载均衡

服务监控

服务治理


image.png

服务化的前提

是不是只要套上微服务框架就算是一个微服务了呢?虽然这样有了微服务的表,但却没有微服务的实质,即”微“。微服务化的前提是服务拆分到足够”微“,足够单一职责,当然拆分程度与服务边界都需要结合业务自行把握。


广义的服务拆分即包含了应用拆分,也包含了数据拆分。


应用拆分后需要引入微服务框架来进行服务通信与服务治理,这也就是传统定义上的微服务。


数据拆分后同样需要引入一系列手段来进行保障,由于不是与微服务强相关的话题,在此只做简单阐述:


分布式id

新表优化

数据迁移与数据同步

sql调用方案改造

切库方案

数据一致性


相关文章
|
6月前
|
人工智能 弹性计算 自然语言处理
建站花多少钱?2026年阿里云建站方案、费用价格、功能与选型指南
在数字化需求日益增长的当下,搭建网站成为个人展示、企业推广的重要途径。阿里云针对不同技术基础与业务规模,推出 “自购服务器建站”“万小智 AI 模板建站”“云企业官网定制建站” 三种核心方案,价格从 38 元 / 年到数万元 / 年不等,覆盖从个人到中大型企业的全场景需求。以下结合最新信息,从方案细节、价格体系、功能对比等维度展开解析,提供客观选型参考。
|
9月前
|
存储 机器学习/深度学习 算法
订单拆单合并处理接口设计与实现
本文介绍电商系统中订单拆单与合并接口的设计与实现,涵盖核心功能、RESTful API设计、Python伪代码示例及性能优化。通过规则驱动的拆分(如按仓库)和合并(如同地址聚合),提升配送效率,降低运营成本,适用于多仓储、高并发场景,助力开发者高效构建订单处理系统。(239字)
|
缓存 负载均衡 应用服务中间件
Nginx
Nginx 以其卓越的性能、稳定性和灵活性,成为现代网络架构中不可或缺的一部分。通过合理配置和优化,它能够为各种应用提供高效、可靠的服务支持。同时,随着技术的不断发展,Nginx 也在不断演进和完善,以适应日益复杂的网络环境和需求。无论是在传统的 Web 应用还是新兴的云计算、微服务架构中,Nginx 都将继续发挥重要作用。
714 157
|
运维 监控 网络安全
小米路由器R2D开启SSH+Frp内网穿透,让爸妈在老家轻松追剧
小米路由器R2D开启SSH+Frp内网穿透,让爸妈在老家轻松追剧
1688 0
|
边缘计算 网络协议 物联网
探索未来网络:从IPv4到IPv6的技术革新与挑战
本文旨在探讨互联网协议从IPv4向IPv6演进的必然性,分析这一转变背后的技术驱动因素,并阐述IPv6相较于IPv4在地址空间、安全性、效率及未来技术适应性方面的优势。同时,文章也讨论了在IPv4向IPv6过渡过程中面临的主要挑战,包括兼容性问题、网络安全风险、成本考量以及技术实施的复杂性。通过案例分析,本文进一步说明了全球范围内不同规模组织如何成功实施IPv6转换,以及从中学到的经验教训。最后,本文预测了IPv6在未来互联网发展中的潜在影响,强调了其对于支持物联网(IoT)、5G及边缘计算等新兴技术的关键作用,同时指出了仍需解决的开放性问题和研究方向。
691 27
|
设计模式 前端开发 算法
Java编程技巧之样板代码
在日常编码的过程中,可以总结出很多“样板代码”,就像”活字印刷术中的“活字”一样。当我们编写新的代码时,需要用到这些“活字”,就把“样板代码”拷贝过来,修改替换一下就可以了,写起代码来“极为神速”。“样板代码”其实就是一种样例、一种模式、一种经验……总结的“样板代码”越多,编写代码的格式越规范、质量越高、速度越快。
Java编程技巧之样板代码
|
存储 缓存 NoSQL
软件体系结构 - 缓存技术
【4月更文挑战第20天】软件体系结构 - 缓存技术
882 7
|
Linux 网络安全 数据安全/隐私保护
linux免密登录最简单--图文详解
linux免密登录最简单--图文详解
393 2
|
资源调度 JavaScript 前端开发
「Vue3系列」Vue3起步/创建项目
在 Vue 3 中创建项目,通常使用 Vue CLI(命令行工具)来简化项目的初始化过程。Vue CLI 是一个强大的工具,它可以帮助你快速搭建 Vue.js 项目,并且内置了对 Vue Router、Vuex、CSS 预处理器、PWA 支持、单元测试等的集成。
1145 1