侧边栏壁纸
博主头像
王小木人个人技术文章记录

这是很长,很好的一生

  • 累计撰写 141 篇文章
  • 累计创建 43 个标签
  • 累计收到 10 条评论

目 录CONTENT

文章目录

微服务架构Microservice介绍

王小木人个人技术文章记录
2021-06-10 / 0 评论 / 0 点赞 / 2,185 阅读 / 2,646 字

什么是微服务架构

将单个应用拆分成多个 微小独立的服务单独部署,每个小服务都在自己的进程中运行,并使用轻量级协议(HTTP)进行通讯,这些服务是小型构建模块,高度解耦,专注完成一项小任务,是一种便捷的模块化系统构建方法。

微服务架构的优缺点

微服务优点

  1. 开发简单
  2. 技术栈灵活
  3. 协议简单
  4. 服务独立无依赖
  5. 独立按需扩展
  6. 可用性高
  7. 高伸缩性
  8. 易于维护单一服务

微服务缺点

  1. 架构复杂
  2. 多服务运维难度
  3. 系统部署依赖
  4. 服务通讯成本
  5. 数据一致性
  6. 系统集成测试
  7. 重复工作
  8. 性能监控

微服务的典型应用场景

四大典型案例公司

淘宝 支付宝 微信 微博

典型场景

社交 电商 游戏 导航 聊天 搜索 IOT等

淘宝微服务结构体系
20210610 111903屏幕截图.png

微服务架构的常见RPC协议

微服务常用通信模式

  1. 同步
  2. 异步
  3. 混合

经典RPC协议

  1. HTTP/REST
  2. TCP
  3. UDP
  4. Dubbo
  5. Netty
  6. RMI
  7. Hessian
  8. gRPC
    ...

微服务常用的通信协议与框架中间件

同步调用

  1. HTTP/REST
  2. REST
  3. RPC

异步调用

  1. AMQP
  2. 消息队列(ActiveMQ,RabbitMQ,Kafka)

微服务架构的经典开发框架

  1. Java Spring Cloud:java开源微服务框架方案
  2. Dubbo:阿里巴巴开源服务治理框架
  3. Spring Cloud Alibaba:阿里开源java微服务框架方案
  4. SOFA:蚂蚁金服开源java金融微服务框架方案
  5. Go Micro:go语言开源微服务框架
  6. Seneca Microservices:Node.js微服务框架
  7. KumuluzEE: Java的微服务框架
  8. Enduro/x:c/c++/Go

微服务框架的对比

20210610 140524屏幕截图.png

总结:spring cloud 微服务生态最完善,最成熟

SpringCloud 微服务架构图

20210610 141039屏幕截图.png

Spring Cloud微服务架构方案

20210610 141451屏幕截图.png

微服务框架体系

20210610 141547屏幕截图.png

微服务架构的设计策略

微服务的设计原则

  1. 需求第一
  2. 单一职责
  3. 粒度适中
  4. 协议统一
  5. 独立开发
  6. 独立部署

微服务拆分原则

  1. 按照业务模块拆分
  2. DDD思路
  3. 单一职责

例如:电商架构设计
账号模块 商品模块 订单模块 评论模块...
20210610 143333屏幕截图.png

微服务架构设计考量

  1. 微服务拆分
  2. 微服务高可用
  3. 微数据安全
  4. 微服务数据同步
  5. 微服务监控

微服务架构中的经典设计模式

20210610 144006屏幕截图.png

微服务设计模式分类

20210610 144709屏幕截图.png

Spring Cloud微服务架构设计与开发实战

0

评论区