微服务架构
- 微服务是系统架构上的一种设计风格,它的主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自
独立的进程中运行,服务之间一般通过 HTTP 的 RESTfuL API 进行通信协作。 - 被拆分成的每一个小型服务都围绕着系统中的某一项或些耦合度较高的业务功能进行构建,并且每个服务都维护着白
身的数据存储、业务开发自动化测试案例以及独立部署机制。 - 由于有了轻量级的通信协作基础,所以这些微服务可以使用不同的语言来编写。
Spring Cloud
- Spring Cloud 是一系列框架的有序集合。
- Spring Cloud 并没有重复制造*,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来。
- 通过 Spring Boot 风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
- 它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、 断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。
- Spring Cloud项目官方网址:https://spring.io/projects/spring-cloud
- Spring Cloud 版本命名方式采用了伦敦地铁站的名称,同时根据字母表的顺序来对应版本时间顺序,比如:最早的Release版
本:Angel,第二个Release版本:Brixton,然后是Camden、Dalston、Edgware,Finchley,Greenwich,Hoxton。
Spring Cloud 与 Dubbo 对比
- Spring Cloud 与 Dubbo 都是实现微服务有效的工具
- Dubbo 只是实现了服务治理,而 Spring Cloud 子项目分别覆盖了微服务架构下的众多部件。
- Dubbo 使用 RPC 通讯协议,Spring Cloud 使用 RESTful 完成通信,Dubbo 效率略高于 Spring Cloud。
总结
什么是微服务架构?
- 定义:把一个业务复杂的系统,拆分成多个业务模块,每个业务模块独立成一个系统,且业务模块之间通过restful规范来进行通信
- 优势:
- 降低模块之间的耦合度,提升系统的维护性
- 提升系统的可升缩性
- 劣势:
- 多模块的管理或架构成本提升
什么是Eureka
定义:是一个用于注册微服务的注册中心
-
作用: 注册每个微服务的IP地址信息,进而解耦微服务
-
组成:
- 服务端(需要搭建):提供客户端注册、查询等功能
- 客服端(项目集成):注册微服务的信息到服务端
-
Eureka 是 Netflix 公司开源的一个服务注册与发现的组件 。
-
Eureka 和其他 Netflix 公司的服务组件(例如负载均衡、熔断器、网关等) 一起,被 Spring Cloud 社区整合为
Spring-Cloud-Netflix 模块。 -
Eureka 包含两个组件:Eureka Server (注册中心) 和 Eureka Client (服务提供者、服务消费者)。