微服务定义

什么是微服务呢,根据亚马逊CEO Bezos给出的有趣定义,单个微服务的设计、开发、测试和运维的所有人加在一起吃饭,只需要两个批萨就够了,这是就是著名的two pizza team rule。

微服务的优势

对比非微服务来讲,常规系统存在的问题是扩展性差,可靠性不高,维护成本高,同时与某种技术栈强绑定的,切换及更新的成本。而微服务则是通过Restful架构风格进行交互,可以简单理解成是各个字符串之间的交互,与技术实现语言无关,扩展性强。其优势信息如下:

  • 单个微服务代码量小,易修改和维护
  • 单个微服务可以独立部署与运行
  • 单个微服务拥有独立进程,运态的启停
  • 相关的微服务可以做负载均衡,提高性能和可靠性
  • 可以独立对外提供服务

完整微服务需要的支撑

  • 日志和审计
  • 监控和警告
  • 消息总线
  • 服务的注册与发现
  • 负载均衡
  • 部署与升级
  • 服务调度机制
  • 主机资源管理

扩展支持

  • 认证及授权
  • 统一构建及打包
  • 统一服务测试
  • 服务依赖关系管理
  • 统一问题跟踪调试框架(或称为调用链)
  • 灰度发布

创建微服务的前提要素

1.微服务体积小,可以小团队完整支撑
2.能够独立的部署与运行
3.使用轻量级的通讯框架和架构
4.服务之间的关系是松耦合的

Comments
Write a Comment