您的位置:首页 > 运维架构 > 网站架构

微服务架构实践-七牛技术总监肖勤

2017-03-03 09:09 731 查看

微服务架构实践-七牛技术总监肖勤

 转自:http://www.csdn.net/article/2015-08-07/2825412


微服务架构优势

肖勤首先简单介绍了微服务(Microservices)的内涵及优势,他表示,微服务架构的本质,是用一些功能比较明确、业务比较精练的服务去解决更大、更实际的问题。




微服务架构将服务拆分,分别采用相对独立的服务对各方面进行管理,彼此之间使用统一的接口来进行交流,架构变得复杂,优势也很明显:

复杂度可控:在将应用分解的同时,规避了原本复杂度无止境的积累。每一个微服务专注于单一功能,并通过定义良好的接口清晰表述服务边界。由于体积小、复杂度低,每个微服务可由一个小规模开发团队完全掌控,易于保持高可维护性和开发效率。
独立部署:由于微服务具备独立的运行进程,所以每个微服务也可以独立部署。当某个微服务发生变更时无需编译、部署整个应用。由微服务组成的应用相当于具备一系列可并行的发布流程,使得发布更加高效,同时降低对生产环境所造成的风险,最终缩短应用交付周期。
技术选型灵活:微服务架构下,技术选型是去中心化的。每个团队可以根据自身服务的需求和行业发展的现状,自由选择最适合的技术栈。由于每个微服务相对简单,当需要对技术栈进行升级时所面临的风险较低,甚至完全重构一个微服务也是可行的。
容错:当某一组建发生故障时,在单一进程的传统架构下,故障很有可能在进程内扩散,形成应用全局性的不可用。在微服务架构下,故障会被隔离在单个服务中。若设计良好,其他服务可通过重试、平稳退化等机制实现应用层面的容错。
扩展:单块架构应用也可以实现横向扩展,就是将整个应用完整的复制到不同的节点。当应用的不同组件在扩展需求上存在差异时,微服务架构便体现出其灵活性,因为每个服务可以根据实际需求独立进行扩展。


微服务架构实践

肖勤介绍重点介绍了七牛图片处理(FOP)场景的微服务应用。FOP服务早期的架构以它的每一个应用为后端。随着用户越来越多,流量越来越高,负载均衡逐渐出现了带宽和流量的压力。



七牛将图像处理服务拆成两个部分,分别负责处理文件的传输和图像本身的处理。从负载均衡过来的请求不再是完整的文件,而是文件的地址。这样,负载均衡和流量优化跟整个图像处理没有关系,可以做单独的部署。而对于稍微复杂一些的请求(如图片格式和尺寸的变更,添加水印),就用管道的方式把不同的服务串联起来最终实现。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  微服务架构实践