微服务

147 阅读2分钟

微服务框架(micro)

  • 将复杂的系统使用组件化的方式进行拆分,并使用轻量化通讯方式进行整合的一种设计方法

微服务

  • 通过这种架构设计方法拆分出来的一个独立组件化的小应用

单体式架构

  • 分为三层,表示层,业务逻辑层,数据访问层(逻辑分层
  • 所有代码运行在统一进程当中
  • 代码量小的时候可以使用,随着规模扩大缺点暴露出来(复杂性高,维护成本高,逻辑混乱,技术债务上升,交付周期过长,扩展性差)

微服务架构

优点

  • 单一职责:每个服务都具有业务逻辑,符合高内聚低耦合,以及单一职责。不同服务通过管道的方式灵活组合,构建出庞大的系统

  • 轻量级通信:跨语言,跨平台

  • 独立性:每个服务都是独立的业务单元,也其他服务高度解耦,服务独立开发,测试和部署。。就是一个组出现bug,你自己去加班排查,不影响其他组。。每个服务单独进程

缺点

  • 运维要求高
  • 分布式的复杂性
  • 接口调整成本高
  • 重复劳动

需要学的组件

  • 跨语言跨平台的通讯格式:protobuf
  • 通讯协议:grpc
  • 监控调度服务发现:consul
  • 微服务框架:micro
  • 部署:docker

protobuf

  • 可拓展的序列化结构数据格式,适合用作数据存储和作为不同应用,不同语言之间相互通信得数据交换格式。只要实现了相同的协议格式(proto文件),编译成不同的语言版本,加入各自工程,这样不同语言就可以解析其他语言通过protobuf序列化得数据。

  • 需要先知道一个协议格式,才能知道proto文件得内容是什么,安全性高

安装(大坑)

  • sudo snap install protobuf --classic