微服务的由来
服务
在互联网世界中,我们手机中的 APP 都可以称为微服务, 顾名思义, 为某一个方向,目的提供资源或者技术支撑的服务,尽可能量化的形式,比如我们使用的支付,就是一个微服务。
支付宝为例,它的主要方向是支付,旗下有花呗,借呗,基金,股票,生活缴费等等多个服务共同组成一个 APP,随之时间的迭代,支付宝中的微服务多达上万个,他们都是怎么实现的呢? 本期跟随卢卡的视角,我们一探究竟?
从单体到微服务
微服务的由来:
微服务的提出者是马丁福勒;他在论文中这样描述到,
While there is no precise definition of this architectural style
就目前而言,对于微服务业界并没?有一个统一的、标准?的定义
但通常而言, 微服务架构是一种架?构模式或者说是一种?架构风格,它提倡将?单一应用程序划分成?一组小的服务,每?个服务运行在其独?立的自己的进程中?,服务之间互相协?调、互相配合,为?用户提供最终价值?。服务之间采用轻?量级的通信机制互?相沟通(通常是基?于 HTTP 的 RESTful API)。每个?服务都围绕着具体?业务进行构建,并?且能够被独立地部?署到生产环境、类?生产环境等。另外?,应尽量避免统一?的、集中式的服务?管理机制,对具体?的一个服务而言,应?根据业务上下文,选?择合适的语言、工?具对其进行构建,?可以有一个非常轻量?级的集中式管理来?协调这些服务,可?以使用不同的语言?来编写服务,也可?以使用不同的数据?存储。
本质
微服务是一种架构的模式(风格):
将项目业务划分为一个个小而独立的单体,这个单体保证自己独立的业务功能,能够低耦合--类似于进程-
我总结为: (高内聚,低耦合,实时响应,集群部署,各司其职)
为什么会需要微服务
当单体服务支持不了,日益增长的需求以及用户之后,逐渐的需要分层,量化单体中的单个功能,其中各个功能各司其职,组成一个服务环境。
微服务的优缺点
微服务的优点:
1.高内聚的目标模块方法--专注于一个业务功能;
2.开发简单,易于维护,效率高;
3.无语言的限制实现;低耦合的特性;
4.特殊的:微服务只是业务逻辑的代码,不会与 Html.css 和其他界面组件混合;
5.微服务有自己的数据库,自己存储数据库的能力,也可以是用统一的数据库;
缺点:
1.开发人员的系统的复杂性(处理分布式)
2.多个服务包的增多,运维压力增大;
也就是我们分布式要解决的:
系统环境版本依赖,
服务之间的通信响应
数据一致性
性能,并发,稳定性
微服务的技术栈:
目前主流与的是 netfix 公司的 springcloud,和 dubboRpc 和基础 zookeeper 等多个机制组成的,
springCloud 作为分布式微服务的架构,是微服务的一站式解决方案, 也就说一体机和组装机的区别
就目前来说,dubboRPC 通信用的多一点,但是未来肯定是 springcloud 的天下,因为未来所以的服务都会上云,云计算,云服务器,大数据等,都需要大的计算平台去支撑。
卢卡寄语
微服务的本质是将功能量化,高内聚自己的行为,划分模块去通信,真正做到低耦合的去实现多模块的调用, 每个模块有自己独立的环境,数据库,一一区分又互不干预,为总体的用户提供服务。
今天的分享就到这里了, 我是卢卡,记得点赞再走哦
版权声明: 本文为 InfoQ 作者【卢卡多多】的原创文章。
原文链接:【http://xie.infoq.cn/article/ca8c7bb348cd633eb9c5f0d56】。文章转载请联系作者。
评论