分布式:
一个业务拆分为多个子业务,部署在不同的服务器上
集群:
同一个业务,部署在一个或多个服务器上
单体系统:
数据库、 服务端处理、 前端展现放在同一个工程中,最终经过编译、打包,部署在一台服务器上。
微服务系统:
是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间
通过基于HTTP的RESTful API进行通信协作。 被拆分成的每一个小型服务都围绕着系统中的某一项或
一些耦合度较高的业务功能进行构建, 并且每个服务都维护着自身的数据存储、 业务开发、自动化测
试案例以及独立部署机制。
特点:
1.按业务划分为一个独立运行的程序,即服务单元。
2.服务之间通过HTTP协议相互通信(HTTP的RESTFUL API或消息中间件MQ)。
3.可以用不同的编程语音。
4.可以用不同的存储技术(关系型数据库、非关系型数据库等)。
5.服务集中化管理(Eureka,Consul,ZooKeeper)。
6。微服务是一个分布式系统。
springCloud简介:
Spring Cloud是一个基千SpringBoot实现的微服务架构开发 工具。它为微服务架构中涉及的配置
管理、服务治理、 断路器、 智能路由、微代理、 控制总线、 全局锁、 决策竞选、分布式会话
和集群状态管理等操作提供了一种简单的开发方式。
Spring Cloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品,还可能会新增),
如下所述。
• Spring Cloud Config: 配置文件管理工具, 支持使用Git存储 配置内容, 可以使用它实现应用配置的
外部化存储,并支持客户端配置信息刷新、 加密/解密配置内容 等。
• Spring Cloud Netflix: 核心 组件, 对多个Netflix OSS开源套件进行整合。
• Eureka: 服务治理(注册与发现)组件, 包含服务注册中心、 服务注册与发现机制的实现。
• Hystrix: (熔断器)容错管理组件,实现断路器模式,帮助服务依赖中出现的延迟和为故障提供强大
的容错力。
• Ribbon: 客户端负载均衡的服务调用组件。
• Feign: 基于Ribbon 和 Hystrix 的声明式服务调用组件。
• Zuul: 网关组件, 提供智能路由、 访问过滤等功能。
• Archaius: 外部化配置组件。
• Spring Cloud Bus: 事件、 消息总线组件,常和Spring Cloud Config配合使用, 用于动态刷新配置等。
• Spring Cloud Cluster: 针对 ZooKeeper、 Redis、 Hazelcast、 Consul 的选举算法和通用状态模
式的实现。
• Spring Cloud Cloudfoundry: 与 Pivotal Cloudfoundry 的整合支持。
• Spring Cloud Consul: 服务发现与配置管理工具(跟Eureka类似)。
• Spring Cloud Stream: 数据流操作组件,可以封装Redis、RabbitMq、Kafka等组件,实现发送
和接收消息等
• Spring Cloud AWS: 用千简化整合 Amazon Web Service 的组件。
• Spring Cloud Security: 向服务单元提供了用户验证和权限认证,一般它会配合Spring Security OAuth2
组件一起使用,通过搭建授权服务,验证Token或者JWT这种形式对整个微服务系统进行安全验证。
• Spring Cloud Sleuth: Spring Cloud 应用的分布式跟踪实现, 可以完美整合 Zip虹n。
• Spring Cloud ZooKeeper: 基于 ZooKeeper 的服务发现与配置管理组件(跟Eureka类似)。
• Spring Cloud Starters: Spring Cloud 的基础组件, 它是基于Spring Boot 风格项目的基础依赖模块。
• Spring Cloud CLI: 用于在 Groovy 中快速创建 Spring Cloud 应用的 Spring Boot CLI插件。
. ......