SpringCloud是什么
- 就目前而言,对于微服务,业界并没有一个统一的,标准的定义。
- 但通常而言,微服务架构是一种架构模式,或者说是一种架构风格,它体长将单一的应用程序划分成一组小的服务,每个服务运行在其独立的自己的进程内,服务之间互相协调,互相配置,为用户提供最终价值,服务之间采用轻量级的通信机制(HTTP)互相沟通,每个服务都围绕着具体的业务进行构建,并且能狗被独立的部署到生产环境中,另外,应尽量避免统一的,集中式的服务管理机制,对具体的一个服务而言,应该根据业务上下文,选择合适的语言,工具(Maven)对其进行构建,可以有一个非常轻量级的集中式管理来协调这些服务,可以使用不同的语言来编写服务,也可以使用不同的数据存储。
再来从技术维度角度理解下:
- 微服务化的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,彻底地去耦合,每一个微服务提供单个业务功能的服务,一个服务做一件事情,从技术角度看就是一种小而独立的处理过程,类似进程的概念,能够自行单独启动或销毁,拥有自己独立的数据库
微服务架构的四个问题,
服务很多,客户端如何访问?
服务之间如何通信?
服务如何治理?
服务挂了怎么办?
1,springcloud NetFlix 一站式解决方案
访问api网关:zuul组件
通信Http,Rpc:Feign http同步方式
注册和发现:Eureka
熔断机制:Hystrix
2,Apache Dubbo Zookeeper 半自动
访问api网关:无,借用第三方,如zuul
通信Http,Rpc:Dobbo
注册和发现:Zookeeper
熔断机制:无,借用第三方,如Hystrix
3,springcloud Alibaba 新一站式解决方案
服务网格 server mesh
解决四个问题
API
Http,Rpc
注册和发现
熔断机制
SpringBoot和SpringCloud的关系
SpringBoot专注于开苏方便的开发单个个体微服务;
SpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体微服务,整合并管理起来,为各个微服务之间提供:配置管理、服务发现、断路器、路由、为代理、事件总栈、全局锁、决策竞选、分布式会话等等集成服务;
SpringBoot可以离开SpringCloud独立使用,开发项目,但SpringCloud离不开SpringBoot,属于依赖关系;
SpringBoot专注于快速、方便的开发单个个体微服务,SpringCloud关注全局的服务治理框架;