什么是微服务架构

  简单地说,微服务是系统架构上的一种设计风格,它的主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间通过基于HTTP的RESTful API进行通信协作。被拆分成的每个小型服务都围绕着系统中的某一项或一些耦合度较高的业务功能进行构建,并且每个服务都围绕着自身的数据存储、业务开发、自动化测试案例以及独立部署机制。由于有了轻量级的通信协议基础,所以这些微服务可以使用不同的语言来编写。

与单体系统的区别

单体系统:(1)耦合性高; (2)随着系统的发展,维护成本会越来越大,且难以控制;(3)动一发而系全身。

微服务架构:(1)不同模块设计成不同的服务,只需修改自身模块部分,对其他不影响;

SpringCloud简介

  SpringCloud是一个基于SpringBoot实现的微服务架构开发工具。 它为微服务架构中涉及的配置管理、服务治理、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。

  SpringCloud包含了很多个子项目:

  SpringCloud Config :配置管理工具,支持使用git存储配置内容,可以使用它实现应用配置的外部化存储,并支持客户端配置信息刷新、加密/解密配置内容等。

  SpringCloud Netflix:核心组件,对多个Netflix OSS开源套件进行整合。

    (1)Eureka:服务治理组件,包含服务注册中心、服务注册于发现机制的实现。

    (2)Hystrix:容错管理组件,实现断路器模式,帮助服务依赖中出现的延迟和为故障提供强大的容错能力。

    (3)Ribbon:客户端负载均衡的服务调用组件。

    (4)Feign:基于Ribbon和Hystrix的声明式服务调用组件。

    (5)Zuul:网关组件,提供智能路由、访问过滤等功能。

    (6)Archaius:外部化配置组件。

  SpringCloud Bus:事件消息总线,用于传播集群中的状态变化或事件,以触发后续的处理,比如用来动态刷新配置等。

  SpringCloud Cluster:针对zookeeper、Redis、HazelCast、Consul的选举算法和通用状态模式的实现。

  SpringCloud Cloudfoundry: 与 Pivotal Cloudfoundry的整合支持。

  Spring Cloud Consul: 服务发现与配置管理工具。

  Spring Cloud Stream: 通过 Redis、Rabbit 或者 Kafka 实现的消费微服务,可以通过简单的声明式模型来发送和接收消息。

  Spring Cloud AWS: 用千简化整合 Amazon Web Service的组件。

  Spring Cloud Security: 安全工具包, 提供在 Zuul 代理中对 0Auth2 客户端请求的中继器。

  Spring Cloud Sleuth: Spring Cloud应用的分布式跟踪实现,可以完美整合 ZipKin。

  Spring Cloud ZooKeeper: 基于ZooKeeper的服务发现与配置管理组件。

  Spring Cloud Starters: Spring Cloud 的基础组件,它是基于Spring Boot风格项目的基础依赖模块。

  Spring Cloud CLI: 用于在 Groovy 中快速创建 Spring Cloud 应用的Spring Boot CLI插件。

最新文章

  1. 【调侃】IOC前世今生
  2. .Net开源网络爬虫Abot介绍
  3. Entity Framework 迁移命令 详解
  4. jQuery的$.ajax示例
  5. User Managerment 职责不能使用的问题
  6. Java知识点:Object类
  7. Android_Intent_note
  8. CString——Left、Right、Find、ReverseFind
  9. linux Apache rotatelogs 故障原因及解决方案未生效
  10. linux下php开发环境搭建(nginx+php+mysql)
  11. 一、iOS中的事件可以分为3大类型
  12. 用StyleCop规范团队代码
  13. array_filter与array_map
  14. javasrcipt的作用域和闭包(二)
  15. 一篇面经(BAT面试)(转)
  16. DNS域名解析中A、AAAA、CNAME、MX、NS、TXT、SRV、SOA、PTR各项记录的作用
  17. 动态规划模板2|LCS最长公共子序列
  18. Graphite grafana
  19. 1.ajax简单实现异步交互
  20. Android process 的启动流程

热门文章

  1. Spring cloud微服务安全实战-4-11Zuul网关安全开发(四)
  2. 构造方法(和python初始化变量类似)
  3. oracle 索引聚簇表的工作原理
  4. NativeExcel3使用示例
  5. Python - Django - 静态文件相关
  6. iOS扩大按钮的点击范围
  7. win10安装MySQL 8
  8. 常见问题:计算机网络/运输层/UDP
  9. js 判断字符串是否为JSON格式
  10. MySQL面试 - 读写分离