什么是微服务
总结成六个字:“高内聚,低耦合”,通俗点说:微服务是一组小而自治的服务。
微服务是一种架构风格:
- 一组小服务
- 每个服务独立运行在内存中
- 服务之间使用轻量级通信
- 服务可独立部署
- 是基于业务能力实现
- 无集中式管理
微服务架构的优势
- 独立开发:所有微服务都可以根据各自的功能轻松开发
- 独立部署:根据他们所提供的服务,可以在任何应用中单独部署
- 故障隔离:即时应用中的一个服务不起作用,系统仍然继续运行
- 混合技术栈:可以用不同的语言和技术来构建同一应用程序的不同服务
- 粒度缩放:各个组件可根据需要进行扩展,无需将所有组件融合到一起
微服务有哪些特点
- 解耦:系统内的服务很大程度是分离。因此,整个应用程序可以轻松构建、更改和扩展
- 组件化:微服务被视为可以轻松更换和升级的独立组件
- 业务能力:微服务非常简单,专注于单一功能
- 自治:开发人员和团队可以彼此独立工作,从而提高速度
- 持续交付:通过软件创建,测试和批准的系统自动化,允许频繁发布软件
- 责任:微服务不关注应用程序作为项目。相反,他们将应用程序视为他们负责的产品
- 分散治理:重点是使用正确的工具来做正确的工作。这意味着没有标准化模式或任何技术模式。开发人员可以自由选择最有用的工具来解决他们的问题
- 敏捷:微服务支持敏捷开发,任何新功能都可以快速开发并再次丢弃
微服务架构如何运作
- 客户端:来自不同设备的不同用户发送请求
- 身份提供商:验证用户或客户身份并颁发安全令牌
- API网关:处理客户端请求
- 静态内容:容纳系统的所有内容
- 管理:在节点上平航服务并识别故障
- 服务发现:查找微服务之间通信路径的指南
- 内容交付网络:代理服务器及其数据中心的分布式网络
- 远程服务:启用驻留在IT设备网络上的远程访问信息
微服务架构的优缺点
优点
- 自由使用不同的技术
- 每个微服务都侧重于单一功能
- 支持单个可部署单元
- 允许经常发布软件
- 确保每项服务的安全性
- 多个服务是并行开发和部署的
缺点
- 增加故障排除挑战
- 由于远程呼叫而增加延迟
- 增加了配置和其他操作的工作量
- 难以保持交易安全
- 艰难地跨越各种便捷跟踪数据
- 难以在服务之间进行编码