微服务

 简而言之, 微服务架构 是将 应用 程序 分解 为 可 独立 开发 和 部署 的 小规模、 微型 应用 的 一种 方式。 这些 微服 务 之间 互相协作, 以 实现 更大 的 应用 程序 的 功能。

与 单体 应用 程序 架构 相比, 微服 务 架构 有 以下 特点:

  • 微服 务 易于 理解: 每个 微 服务 与 应用 程序 的 其他 微服 务 之间 有一个 很小 且 有限 的 契约。 因此, 微服 务 更加 专注 于 目标, 作为 一个 单元, 微服 务 更易 于 理解。 微服 务 易于 测试: 事情 越小, 就 越 便于 测试。 
  • 微服 务 较少 受到 库 不兼容 的 影响: 因为 每个 微服 务 都有 自己的 构建 依赖 项 的 集合, 而这 些 依赖 项 不会 与其 他的 微服 务 共享, 所以 不太 可能 会 出现 库 冲突 的 现象。
  • 微服 务 能够 独立 扩展: 如果 指定 的 微服 务 需要 更多 的 处理 能力, 那么 内存 分配 和/ 或 实例 数量 可以 按比例 增加, 而 不会 影响 整体 应用 中 其他 微 服务 的 内存 和 实例 数量。
  • 每个 微服 务 可以 选择 不同 的 技术: 每个 微服 务 可以 选择 完全 不同 的 语言、 平台、 框架 和 库。
  • 微服 务 可以 更加 频繁 地 发布 到 生产 环境 中: 尽管 微服 务 架构 的 应用 是由 许多 微服 务 组成 的, 但是 部署 每个 微 服务 的 时候, 并不 需要 其他 的 微服 务 都已 经 部署 就绪。

使用 Spring 和 Netflix 的 Eureka 服务注册中心 实现 基于 Spring 的 微服务注册发现

通过 Spring Cloud 的 Config Server 探讨 中心化的配置, Config Server 服务 能够 为 应用 中的 所有 微服务 提供 中心 化 的 配置

借助 Netflix Hystrix 实现 断路器 模式, 让 服务 面对 失败 时 更具 弹性。

Spring Cloud 是一 个 非常 大的 伞形 项目, 由 多个 独立 的 子项 目 组成, 每个 子项 目 都以 某种 形式 支撑 着 微 服务 的 开发。

服务 注册 中心 Eureka。

 微 服务 要 借助 注册 中心 实现 彼此 发现 的 功能。

在 微服 务 应用 中, Eureka 会 担当 所有 服务 的 注册 中心。  在 整体 应用 中 它的 目的 是 让 其他 的 服务 能够 互相 发现。

为了 避免 每次 都 选择 同一个 实例, 最好 用 一些 客户 端 负载 平衡 算法 分散请求

 Ribbon 是一 个 客户 端 负载 平 衡器,

 

 

 

 

 

 

你可能感兴趣的:(Spring,Boot)