微服务架构实践-七牛技术总监肖勤
2017-03-03 09:09
731 查看
微服务架构实践-七牛技术总监肖勤
转自:http://www.csdn.net/article/2015-08-07/2825412
微服务架构优势
肖勤首先简单介绍了微服务(Microservices)的内涵及优势,他表示,微服务架构的本质,是用一些功能比较明确、业务比较精练的服务去解决更大、更实际的问题。复杂度可控:在将应用分解的同时,规避了原本复杂度无止境的积累。每一个微服务专注于单一功能,并通过定义良好的接口清晰表述服务边界。由于体积小、复杂度低,每个微服务可由一个小规模开发团队完全掌控,易于保持高可维护性和开发效率。
独立部署:由于微服务具备独立的运行进程,所以每个微服务也可以独立部署。当某个微服务发生变更时无需编译、部署整个应用。由微服务组成的应用相当于具备一系列可并行的发布流程,使得发布更加高效,同时降低对生产环境所造成的风险,最终缩短应用交付周期。
技术选型灵活:微服务架构下,技术选型是去中心化的。每个团队可以根据自身服务的需求和行业发展的现状,自由选择最适合的技术栈。由于每个微服务相对简单,当需要对技术栈进行升级时所面临的风险较低,甚至完全重构一个微服务也是可行的。
容错:当某一组建发生故障时,在单一进程的传统架构下,故障很有可能在进程内扩散,形成应用全局性的不可用。在微服务架构下,故障会被隔离在单个服务中。若设计良好,其他服务可通过重试、平稳退化等机制实现应用层面的容错。
扩展:单块架构应用也可以实现横向扩展,就是将整个应用完整的复制到不同的节点。当应用的不同组件在扩展需求上存在差异时,微服务架构便体现出其灵活性,因为每个服务可以根据实际需求独立进行扩展。
微服务架构实践
肖勤介绍重点介绍了七牛图片处理(FOP)场景的微服务应用。FOP服务早期的架构以它的每一个应用为后端。随着用户越来越多,流量越来越高,负载均衡逐渐出现了带宽和流量的压力。七牛将图像处理服务拆成两个部分,分别负责处理文件的传输和图像本身的处理。从负载均衡过来的请求不再是完整的文件,而是文件的地址。这样,负载均衡和流量优化跟整个图像处理没有关系,可以做单独的部署。而对于稍微复杂一些的请求(如图片格式和尺寸的变更,添加水印),就用管道的方式把不同的服务串联起来最终实现。
相关文章推荐
- 七牛技术总监肖勤:微服务架构实践经验分享
- 七牛技术总监肖勤:微服务架构实践经验分享(摘抄)
- 七牛技术总监肖勤:微服务架构实践经验分享
- 基于微服务架构的技术实践(附PPT)
- 大型互联网架构师教你如何实践微服务架构全方位的技术
- 容器SDN技术与微服务架构实践
- 360搜索在微服务架构下的技术平台实践(三) -- Thor
- SOA架构,微服务,技术实践汇总
- 微服务架构设计实践系列之十:技术架构
- 360搜索在微服务架构下的技术平台实践(一) -- 单体架构
- 360搜索在微服务架构下的技术平台实践(二) -- 微服务架构
- 容器SDN技术与微服务架构实践
- MVC项目实践,在三层架构下实现SportsStore-09,ASP.NET MVC调用ASP.NET Web API的查询服务
- 用Elasticsearch构建电商搜索平台,一个极有代表性的基础技术架构和算法实践案例
- 分布式服务架构:原理、设计与实践
- “.NET技术”使用WCF实现SOA面向服务编程—— 架构设计
- 阿里架构师的述说:支付宝和蚂蚁花呗的技术架构及双十一实践
- 微服务架构实践感悟
- Kubernetes微服务架构应用实践