微服务解惑
微服务与容器
微服务又指的是在传统应用架构的基础上,按照业务能力将系统拆分成多个服务,每个服务都是一个独立的应用,对外提供一些列的公共服务API,服务之间以轻量的方式互相调用。
微服务里的每个服务都是一个组件,通过编排组合从而达到独立、解耦、组件化、易维护、可复用、可替换、高可用的设计原则。微服务后,自动化部署以及运维是比较头疼的事,容器技术解决了这个问题。
- 好的架构需要考虑后面的扩展以及修改
- 好的架构是解耦的,需改一个地方不会影响另外一个地方
- 好的架构是轻便灵活的,一个应用最好只解决一个问题,而不是叠加功能
微服务的标签
- 单一职责
- 微
- 面向服务
- 自治
- 易扩展
- 流程化
微服务的不足
- 时效性·服务间的调用延时可能导致系统相应慢的问题
- 一致性·微服务在保证一致性上需要做更多的工作
微服务的价值
- 资源价值,资源不足是自动扩容,资源过量时自动缩容;
- 业务价值,工作量、人员数量、交付质量、交付周期;
- 技术价值,技术是为业务来服务的(个人标注:技术也是业务的一部分而不只是为业务而服务)
- 用户价值,用户体验好,服务上线快
- 未来价值,技术不成为业务的瓶颈
微服务的小目标
- 持续交付
- 业务敏捷
- 独立演进
- 高可用
- 高性能
微服务的拆与不拆
依据:数据模型、业务模型、关键指标,粒度平衡,边界合理
DevOPS
开发与运维是一个整体,devops是一种思维方式,微服务与devops是天生一对
SpringCloud特点
- 功能齐全
- 标准化
- 简单方便
- 按需取用
- 轻量
- 易扩展、易维护
- 可复用性
分布式系统组件及操作
配置管理(Spring cloud config)、服务发现/调用(Feign)、断路器、智能路由(ZUUL)、微代理、控制总线、一次性Token、全局锁、决策竞选、分布式会话、集群状态。
注册中心(Eureka)、负载均衡(Ribbon)、断路器(Hystrix)、服务追踪(Sleuth,zipkin)、权限(string security)、接口可视化(Swagger)。
以上内容为《微服务那些事儿》读书笔记。
参考资料
[1]. 微服务那些事儿,纪晓峰著