没有合适的资源?快使用搜索试试~ 我知道了~
讲述如何搭建java微服务架构;微服务的原理;微服务的架构实战;
资源推荐
资源详情
资源评论
微服务架构培训
2018-04-18
目 录 Contents
■
单体应用
单体应用面临的问题
■
微服务架构
微服务架构的优势和挑战
■
微服务架构实践——服务拆分
微服务架构实践——开发
微服务架构实践——测试
微服务架构实践——部署发布
微服务架构实践——运维
单体应用
■
单体应用:
应用程序的全部功能被一起打包作为单个单元或应用程序进行部署,且部署后运行在同一进程
中。
以 JavaEE 为例,一般把 web 应用程序打包成 WAR ,然后部署在 tomcat 或 jetty 等 web 容器
中,后端连接一个 mysql 数据库。上图展示了一个典型的电商单体应用。
单体应用面临的问题
■
随着应用功能越发复杂,开发团队逐渐庞大,单体应用将面临以下问题:
代码维护成本高:由于应用功能复杂、代码量庞大,即使是老资格的开发人员也无
法掌控全局。无论是修订 bug 还是正确地添加一个功能,都费时费力。最终甚至
可能陷入越修复 bug 越多的恶性循环。
妨碍持续交付:首先,单体应用较大,构建、部署、测试时间也相应地比较长;其
次,对于单体应用而言,任何一处代码的微小改动都会导致程序需要被重新编译、
单元测试、代码检查、构建部署包、验证功能。以上两点显然拉长了交付周期,不
利于持续交付。
技术栈受限:单体应用的技术栈是在开发之前经过慎重评估后选定的,每个团队成
员都必须使用相同的开发语言、开发框架、关系型数据库等(有时甚至还限定了版
本)。随着技术的日新月异和应用的发展,如果团队想引入新技术,或者升级旧的
技术栈,都会面临风险,风险随着应用规模增大而增大。
水平扩展成本高:单体应用虽然很容易做水平扩展,但在不同模块发生资源冲突
时,扩展成本很高。比如, A 模块是 CPU 密集型, B 模块是内存密集型,由于这
些模块必须部署在一起,因此不得不在硬件选择上做并集,即硬件即要有强劲的
CPU 又要有足够大的内存
开发和部署效率低:庞大的代码会拖慢 IDE 的编译速度,降低了开发效率;庞大的
WAR 包,导致 web 容器启动极慢,降低了部署效率。
微服务架构
■
微服务架构:
针对传统单体应用面临的问题,软件工程领域逐步引入了微服务( Microservices )的理念。微
服务架构是 SOA (面向服务架构)的变体,提倡将应用构建为一组松耦合小服务的集合。这些服
务的功能是细粒度的,每个服务都可以被独立部署,运行在独立进程中,服务间采用轻量级的通
信协议进行沟通(一般是基于 http 的 restful API )。上图展示了电商应用的微服务架构。
剩余31页未读,继续阅读
资源评论
keviman5
- 粉丝: 0
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功