微服务框架(micro)
- 将复杂的系统使用组件化的方式进行拆分,并使用轻量化通讯方式进行整合的一种设计方法
微服务
- 通过这种架构设计方法拆分出来的一个独立组件化的小应用
单体式架构
- 分为三层,表示层,业务逻辑层,数据访问层(逻辑分层)
- 所有代码运行在统一进程当中
- 代码量小的时候可以使用,随着规模扩大缺点暴露出来(复杂性高,维护成本高,逻辑混乱,技术债务上升,交付周期过长,扩展性差)
微服务架构
优点
-
单一职责:每个服务都具有业务逻辑,符合高内聚低耦合,以及单一职责。不同服务通过管道的方式灵活组合,构建出庞大的系统
-
轻量级通信:跨语言,跨平台
-
独立性:每个服务都是独立的业务单元,也其他服务高度解耦,服务独立开发,测试和部署。。就是一个组出现bug,你自己去加班排查,不影响其他组。。每个服务单独进程
缺点
- 运维要求高
- 分布式的复杂性
- 接口调整成本高
- 重复劳动
需要学的组件
- 跨语言跨平台的通讯格式:protobuf
- 通讯协议:grpc
- 监控调度服务发现:consul
- 微服务框架:micro
- 部署:docker
protobuf
-
可拓展的序列化结构数据格式,适合用作数据存储和作为不同应用,不同语言之间相互通信得数据交换格式。只要实现了相同的协议格式(proto文件),编译成不同的语言版本,加入各自工程,这样不同语言就可以解析其他语言通过protobuf序列化得数据。
-
需要先知道一个协议格式,才能知道proto文件得内容是什么,安全性高
安装(大坑)
- sudo snap install protobuf --classic