Spring Cloud Alibaba 实战(3) - 微服务拆分与编写

2 单体应用

=====================================================================

一个归档包(例如war包)包含所有功能的应用程序,我们通常称为单体应用。而架构单体应用的方法论就是单体应用架构。

  • 架构图

2.1 单体架构的优点


  • 架构简单

  • 开发、测试、部署方便

2.2 单体架构的缺点


  • 复杂性高

  • 部署慢,频率低

  • 扩展能力受限

  • 阻碍技术创新

3 微服务

====================================================================

一词最早来自于Martin Fowler的一篇微服务文章

  • 翻译

微服务架构风格是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常用HTTP资源

API)。这些服务围绕业务能力构建并且可通过全自动部署机制独立部署。这些服务共用一个最小型的集中式的管理,服务可用不同的语言开发,使用不同的数据存储技术

3.1 特性


  • 每个微服务可独立运行在自己的进程里

  • 一系列独立,运行的微服务共同构建起整个系统

  • 每个服务为独立的业务开发,一个微服务只关注某个特定的功能,例如订单管理、用户管理等

  • 可使用不同的语言与数据存储技术(契合项目情

况和团队实力)

  • 微服务之间通过轻量的通信机制进行通信,例如通过REST API进行调用;

  • 全自动的部署机制

3.2 全景架构图


3.3 优点


  • 单个服务更易于开发、维护

  • 单个微服务启动较快

  • 局部修改容易部署

  • 技术栈不受限

  • 按需伸缩

3.4 缺点


  • 运维要求高

  • 分布式固有的复杂性

  • 重复劳动

3.5 适用场景


  • 大型、复杂的项目

  • 有快速迭代的需求

  • 访问压力大

3.6 不适用场景


  • 业务稳定

  • 迭代周期长

4 微服务拆分

======================================================================

4.1 拆法


◆ 领域驱动设计( Domain Driven Design )

◆ 面向对象 ( by name./ by verb. )

4.2 最佳实践


◆ 职责划分

◆ 通用性划分

4.3 粒度合理


◆ 良好地满足业务

◆ 幸福感

◆ 增量迭代

◆ 持续演进

  • 拆分

  • 项目架构图

5 数据库设计

======================================================================

5.1 数据表


6 创建小程序

======================================================================

7 前端代码 - JavaEdge-miniapp

========================================================================================

7.1 安装Node.js


建议和笔者保持一致

7.2 修改app信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值