[微服务学习记录] 1. 相关定义

前言

近期在学习微服务相关的知识,参考的是千峰达摩院的微服务2.0教程。我会把学习过程中提炼出来的知识记录并分享出来~

微服务

微服务是一种架构思想,实际开发使用分布式系统。

  • 要求
    该架构要求实现高可用、高性能、高并发。
    高内聚:一个服务只提供一个功能,且具有自己的数据库,这样适合水平扩展
    需要解决基础设施问题:docker、kubernets

  • 优点

  1. 可以解决复杂问题
  2. 单一服务修改、重构容易,适合多团队开发
  3. 单一服务单独部署,可持续集成
  4. 单一服务可以独立扩展,并使用与其最匹配的硬件资源
  • 现状&未来
    未来,一个方法就是一个服务提供者
    当前Java、go微服务做的好,而go正在赶超

  • 相关技术
    docker:轻应用,沙箱机制
    k8s:容器编排和管理

CAP定理

一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。

  • 一致性
    更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一致。
    这里是强一致性,要不一起成功,要不一起失败
  • 可用性
    服务一直可用,而且是正常响应时间。
  • 分区容错性
    分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。
    比如深圳机房和上海机房,上海机房无法使用的话深圳机房还可以用(这也叫异地多活)

BASE理论

BASE 理论是对 CAP 理论的延伸,支持大型分布式系统。核心思想是即使无法做到强一致性(CAP 的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性。

  • 基本可用(Basically Available)
    基本可用是指分布式系统在出现故障的时候,允许损失部分可用性,即保证核心可用。
    电商大促时,为了应对访问量激增,部分用户可能会被引导到降级页面,服务层也可能只提供降级服务(如取消注册服务、聊天服务)。这就是损失部分可用性的体现。
  • 软状态(Soft State)
    软状态是指允许系统存在中间状态,而该中间状态不会影响系统整体可用性。分布式存储中一般一份数据至少会有三个副本,允许不同节点间副本同步的延时就是软状态的体现。MySQL Replication 的异步复制也是一种体现。
  • 最终一致性(Eventual Consistency)
    最终一致性是指系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。
    弱一致性和强一致性相反,最终一致性是弱一致性的一种特殊情况。

参考

【千锋达摩院】微服务架构 2.0

个人公众号,定期分享各种技术干货,欢迎扫码关注!

[微服务学习记录] 1. 相关定义_第1张图片
扫描上方二维码获取更多技术分享

你可能感兴趣的:([微服务学习记录] 1. 相关定义)