一 定义
微服务架构是一项在云中部署应用和服务的新技术
可以在"自己的程序"中运行 , 并通过"轻量级设备与HTTP型API进行沟通"
微: 狭义来讲就是体积小 , 意思就是说单个服务的设计 ,所有参与人从设计 , 开发 , 测试 , 运维所有人加起来只需要2个披萨就够了
服务: 所谓服务 , 一定要区别与系统 , 服务一个或者一组相对较小且独立的功能单元 , 是用户可以感知最小功能集
1
2
3
4
二 特点
1 微服务不需要像普通服务那样成为一种独立的功能或者独立的资源
2 微服务是需要业务能力相匹配
3 微服务是利用组织的服务投资组合 , 然后基于业务领域功能分解它们 , 在看到服
务投资组合之前 , 它还是一个业务领域
1
2
3
4
5
6
三 基本思想
在于考虑围绕着业务领域组件来创建应用 , 这些应用可独立地进行开发 , 管理和加速 , 在分散的组件中使用微服务架构和平台 , 部署 , 管理和服务功能交付变得更加简单
1
四 诞生时间
出现于2012年
1
五 服务平台
开源工作流平台Imixs-Workflow
1
六 Imixs的微服务
基于Imixs的工作流引擎的复杂功能构建的
它可以以多种不同的方法来控制业务数据
可以发送电子邮件推送消息 , 日志业务交换 , 还可以确保所有类型业务数据的安全
1
2
3
七 工具开发
Seneca是构建微服务框架的工具
1
八 微服务风格
是一种使用一套小服务来开发单个应用的方式途径 , 每个服务运行在自己的进程中 , 并使用轻量级机制通信 , 通常是HTTP API , 这些服务基于业务能力构建 , 并能够通过自动化部署机制来独立部署
1
九 微服务与单体架构区别
1 单体架构带来的问题
1) 复杂性逐渐变高
2) 技术债务逐渐上升
3) 部署速度逐渐变慢
4) 阻碍技术创新
5) 无法按需伸缩
1
2
3
4
5
2 区别
1) 耦合度
单体: 所有的模块全都耦合在一起 , 代码量大 , 维护困难
微服务: 每个模块就相当于一个单独的项目 , 代码量明显减少 , 遇到问题也相
对来说比较好解决
2) 数据库
单体: 所有的模块都共用一个数据库 , 储存方式比较单一
微服务: 每个模块都可以使用不同的储存方式 (比如有的用redis , 有的用mysql)
数据库也是单个模块对应自己的数据库
3) 开发技术
单体: 所有模块开发所使用的技术一样
微服务: 每个模块都可以使用不同的开发技术 , 开发模式更灵活