认识微服务--微服务技术对比&SpringCloud
- 微服务结构
- 微服务技术对比
- Dubbo
- SpringCloud
- SpringCloudAlibaba
- 企业需求
- SpringCloud
知识内容来自于黑马程序员视频教学和百度百科。博主仅作笔记整理便于回顾学习。如有侵权请私信我。
微服务结构
微服务这种方案需要技术框架来落地,全球的互联网公司都在积极尝试自己的为服务落地技术。在国内最知名的就是SpringCLoud和阿里巴巴的Dubbo。
首先,需要做微服务的拆分。形成微服务集群。 集群中的每个微服务都要遵循单一职责 的原则。并且要面向服务,对外暴露服务的接口。这样,服务之间就可以做相互的调用了。不同技术实现不同接口的时候,可能会有差异。
注册中心: 维护微服务中每个结点的信息,并且监控结点的状态。
配置中心: 它可以统一去管理整个服务群体成千上百的这些配置。如果以后有些配置需要变更,只需要去找到配置中心便可。它可以去通知相关的微服务,实现配置的“热更新”。
服务网关: 由网关将用户请求路由到微服务群,在路由过程中可以做负载均衡。
路由或者服务之间调用时做好服务的容错处理,避免因服务故障带来的级联失败。还要做好服务保护,隔离等措施。
微服务技术对比
Dubbo
Dubbo早在2012年左右由阿里巴巴公司开源。那个时候它的核心就是服务远程调用以及注册发现。
- 注册中心: zookeeper,Redis;
这些并不是专业的注册中心,Redis是做缓存的,zookeeper是做集群管理的。所以并不具备完善的注册中心功能。 - 服务远程调用: Dubbo协议是当时的核心。遵循Dubbo的远程调用,必须定义Dubbo标准的接口。它要求必须用java实现等。
- 配置中心: 没有实现;
- 服务网关: 没有实现;
- 服务监控和保护: dubbo-admin,统计服务调用时的响应时间等。功能单一。
SpringCloud
SpringCloud并不是发明了什么,而是将全球各公司开源的微服务技术整合起来。而后形成一套完整的微服务体系。功能完善。
- 注册中心: 专业的注册中心Eureka,Consul。
- 服务远程调用: 基于http协议的标准Feign。成本低,学习简单。SpringCloud封装了Feign的客户端来发http请求。
- 配置中心: SpringCloudConfig。
- 服务网关: SpringCloudGateway(吞吐能力非常强),Zuul。
- 服务监控和保护: Hystrix。核心是保护,功能十分强大。
SpringCloudAlibaba
同时兼容Dubbo,SpringCloud这两种架构。
- 注册中心: Nacos,Eureka。Nacos既支持Dubbo调用,又支持Feign调用。
- 服务员远程调用: Duboo,Feign。
- 配置中心: SpringCloudConfig,Nacos。
- 服务网关: SpringCloudGateway,zuul。
- 服务监控和保护: Sentinel。
企业需求
SpringCloud
- SpringCloud是目前国内使用最广泛的微服务框架。官网地址
- SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验:
- SpringCloud与SpringBoot的版本兼容关系:
By–Suki 2022/12/29