当前位置:主页 > 查看内容

开发者学堂课程干货总结——Spring Cloud微服务架构设计与开发实

发布时间:2021-07-01 00:00| 位朋友查看

简介:哈喽各位同学们大家好呀 小编今天带着开发者学院中课程“微服务架构的优缺点”干货总结来了~一起学习新课程吧 课程链接以及图谱地址小编已经为大家指路了 搭配学习效果更佳 课程名称 微服务架构Microservice的优缺点 课程地址 https://developer.aliyun.com/……

哈喽各位同学们大家好呀 小编今天带着开发者学院中课程“微服务架构的优缺点”干货总结来了~一起学习新课程吧

课程链接以及图谱地址小编已经为大家指路了 搭配学习效果更佳

课程名称 微服务架构Microservice的优缺点

课程地址 https://developer.aliyun.com/learning/course/60/detail/1106?spm a2c6h.21258778.0.0.72ae43db9RXbsI

图谱名称 Alibaba Java 技术图谱

图谱地址 https://developer.aliyun.com/graph/java?spm a2c6h.21110250.J_5703890090.6.700e3c67EjOBeJ

微服务架构Microservice的优缺点


一、微服务Microservice优点?

一 微服务特点一 快速响应需求变化?

微服务架构诞生在SOA时代 在移动互联网时代蓬勃发展并崛起 从早期的互联网公司开始 快速过渡到现在的移动互联网公司 都在大量使用微服务架构 包括大家熟悉的淘宝、微博、微信、抖音等平台 都是很典型的代表。微服务架构很重要的特点就是 快速响应需求变化 业务迭代非常快 每月甚至每周都会有大量的改版信息。?

之前在采用单体巨型非微服务架构有个问题 系统里面的业务模块非常多 大家一起发布、修改、编译很难进行协调 可能是几千人的开发团队 很难做到敏捷开发、发布、上线。?

使用微信、微博、淘宝、抖音超过5年会感受到 迭代非常快 而且经常上线新功能 比如支付宝之前只有支付担保交易 现在可以在上面交水电费、做地铁、城市健康码功能等。淘宝的各种新功能 比如生鲜、直播等。抖音之前只做短视频 现在也开始做电商 可以评论、加好友等等。?

总的来说 之前单体巨型架构模式 已经无法适应快速变化的业务发展需求。快速响应需求变化是微服务架构的重要特点。?

微服务 船小好调头?

微服务本质上是小微程序 相比较来说 很重要的特点是拆分概念。微服务首先是拆分 把大的拆成小的 把整体拆成部分。每个部分单独开发迭代 是很重要的优势 在中国书画里面叫船小好调头。?

中国是公有制为主体 私有制作有效补充的经济体制结构。而且私有企业民营企业 要求船小好调头 能够更灵活的根据市场需求调整经营策略。比如现在的全民电商、全民直播 是商业的微型化、敏捷化的表现形式 我们的微服务是一样的道理 各个领域有很多概念相通。?

微服务优点 ??

微服务优点是拆完以后更灵活 各个子系统可以独立开发、独立测试、独立部署、独立进程 最后在集成。?

image.png?

比如账号系统比较稳定 基本上不用改 前期有三到五个成员开发 后期只需要一个人维护。后面有新业务 比如淘宝直播、菜鸟快递、余额宝项目上线 再成立新的团队 进行快速开发。现在很多项目都是前期只有一个小组 后面再组建团队上线很多新的功能 比如微信 是从腾讯内部孵化出来 前期只成立了很小的项目组 后期做成上万人的公司。支付宝也是淘宝内部孵化的项目。这种公司成立以后 又开始孵化出更多的业务部门。?

独立开发拆分以后自主性更强了 独立开发、独立测试、独立部署、独立进程 是微服务快速响应业务需求变化的重要特点。?

?

二 特点二 敏捷开发、敏捷运维DevOps?

早期20年前提出敏捷开发 在微服务时代依然适用 本质上就是“快” 提升开发运维的效率 快速响应用户的需求。?

传统软件公司为什么不适合大量推广微服务 比如工厂的管理软件 用VB开发 用wondows?xp?、wondows?7都可以直接解决问题 20年不变 这个项目不用敏捷开发也行 开发完成后用两个成员维护着。业务非常稳定 没有发展 或只在某个阶段平稳发展 比如银行系统 国内四大银行 早期的Java系统 基本上都是oracle或DB2框架开发 基本上都不会改 因为很多代码封装在存储过程中 改的话容易出问题。新项目可能开始用微服务架构 拆分出独立的数据库 独立架构。?

微服务架构的优点 ?

微服务架构的优点 本质上就是拆完以后更好开发。通常是HTTP协议 能信使用语言中立协议等 优点和缺点是相对某个技术架构的 不是绝对的。?

总结如下 ?

1. 易于替换 ?

2. 独立部署 ?

3. 专注某个任务 ?

4. 高度解耦 ?

5. 基于功能进行组织 商品、支付、评论、机票、新闻、酒店、游戏等 ?

6. 服务可以使用不同的语言、系统、平台 ?

7. 通信使用语言中立的协议 ?

8. 通常是http ?

9. 独立技术栈 ?

10. 易于测试。?

?

?

?

?

巨型服务VS微服务?

早期的单体巨型服务 分层架构 适用于比较稳定的系统 比如银行系统 现在还在使用。随着业务的发展变化 可以更换新的架构。微服务架构非常灵活 合适迭代发展快的项目 比如当下流行的电商业务。?

image.png?

?

二、微服务Microservice缺点?

微服务不是银弹 ?

微服务并不适合所有的场景 因为一旦拆开 通信成本就会上升 架构复杂度会上升 开发人员需要更多 集成测试、部署都会变得更复杂 所以技术选型一定要慎重。?

微服务的优缺点 ?

合格的架构师 应该以公司业务需求作为出发点 但是很多架构师设计架构的时候 实际并不是这样 有很多其他因素在 会设计不可维护的架构。比如为了对外宣传、便于接到业务 年长的架构师担心被公司裁掉 设计不可维护的架构等。?

正常情况下 需要从成本、复杂度、测试、监控等方面出发 架构服务。如果在业务快速创新的公司 选择微服务架构 如果在业务比较稳定的公司 可以选择单体架构或者早期的架构。?

微服务优点 ?

① 开发简单 ?

② 技术栈灵活 ?

③ 协议简单 ?

④ 服务独立无依赖 ?

⑤ 独立按需扩展 ?

⑥ 可用性高 ?

⑦ 高伸缩性 ?

⑧ 易于维护单一服务。?

微服务的缺点 ?

① 架构复杂 ?

② 多服务运维难度 ?

③ 系统部署依赖 ?

④ 服务间通信成本 ?

⑤ 数据一致性 ?

⑥ 系统集成测试 ?

⑦ 重复工作 ?

⑧ 性能监控。?


本文转自网络,原文链接:https://developer.aliyun.com/article/784994
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:云原生可观测最佳实践路径解读 下一篇:没有了

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐