微服务-微服务解惑

微服务解惑

微服务与容器

微服务又指的是在传统应用架构的基础上,按照业务能力将系统拆分成多个服务,每个服务都是一个独立的应用,对外提供一些列的公共服务API,服务之间以轻量的方式互相调用。
微服务里的每个服务都是一个组件,通过编排组合从而达到独立、解耦、组件化、易维护、可复用、可替换、高可用的设计原则。微服务后,自动化部署以及运维是比较头疼的事,容器技术解决了这个问题。

  • 好的架构需要考虑后面的扩展以及修改
  • 好的架构是解耦的,需改一个地方不会影响另外一个地方
  • 好的架构是轻便灵活的,一个应用最好只解决一个问题,而不是叠加功能

微服务的标签

  • 单一职责
  • 面向服务
  • 自治
  • 易扩展
  • 流程化

微服务的不足

  • 时效性·服务间的调用延时可能导致系统相应慢的问题
  • 一致性·微服务在保证一致性上需要做更多的工作

微服务的价值

  • 资源价值,资源不足是自动扩容,资源过量时自动缩容;
  • 业务价值,工作量、人员数量、交付质量、交付周期;
  • 技术价值,技术是为业务来服务的(个人标注:技术也是业务的一部分而不只是为业务而服务)
  • 用户价值,用户体验好,服务上线快
  • 未来价值,技术不成为业务的瓶颈

微服务的小目标

  • 持续交付
  • 业务敏捷
  • 独立演进
  • 高可用
  • 高性能

微服务的拆与不拆

依据:数据模型、业务模型、关键指标,粒度平衡,边界合理

DevOPS

开发与运维是一个整体,devops是一种思维方式,微服务与devops是天生一对

SpringCloud特点

  • 功能齐全
  • 标准化
  • 简单方便
  • 按需取用
  • 轻量
  • 易扩展、易维护
  • 可复用性

分布式系统组件及操作

配置管理(Spring cloud config)、服务发现/调用(Feign)、断路器、智能路由(ZUUL)、微代理、控制总线、一次性Token、全局锁、决策竞选、分布式会话、集群状态。

注册中心(Eureka)、负载均衡(Ribbon)、断路器(Hystrix)、服务追踪(Sleuth,zipkin)、权限(string security)、接口可视化(Swagger)。

以上内容为《微服务那些事儿》读书笔记。

参考资料

[1]. 微服务那些事儿,纪晓峰著