微服务架构下的组件需求
下面是基于一个请求进来之后,所需要用到的组件和功能
从图可以看到,如果要实施微服务,我们需要解决很多的问题,比如
1. 服务注册发现
2. 远程服务调用
3. 负载均衡
4. 断路器
5. 分布式消息
6. 配置中心
7. 链路监控
所以,spring cloud提供了一些解决这类问题的工具,比如服务注册提供了Eureka/Consoul/zookeeper;远程调用基于RestTemplate针对http协议调用的封装;负载均衡采用Ribbon、断路器采用hystrix;分布式消息基于kafka、rabbitMQ;配置中心基于config;链路监控基于sleuth.
但是,从这些组件中,我们发现了一些问题,这些组件并不是spring提供的啊,比如eureka、ribbon、hystrix是netflix开源的。而kafka、zookeeper是一些独立的组件,和spring似乎没有关系。没错,这就是spring团队的强大之处,他们很少重复早轮子,而是他们利用别人造好的轮子来进行封装使得用户在使用的时候更加方便。
举个简单例子,比如最早spring只提供了IOC和AOP的核心功能,而像ORM框架、缓存、MVC框架,spring只是提供了一种兼容以及支持,所以当时大家说spring是万能胶,可以把各种各样的框架整合进来。
当然,spring也会对一些市面上做得不好的技术进行替代,比如struts2.,我记得当时公司使struts2经常出现各种漏洞,所以spring mvc才被创造出来并且很快代替了struts。成为现在的主流框架。
所以,对于spring cloud来说也是如此,spring cloud并不是一个框架,因为Spring Cloud的核心并没有实现服务注册、熔断、配置中心等功能,它提供了一个标准规范。而Spring Cloud Netflix才是spring Cloud规范的一种实现。
微服务架构下的组件需求相关推荐
- 在微服务架构下基于 Prometheus 构建一体化监控平台的最佳实践
欢迎关注方志朋的博客,回复"666"获面试宝典 随着 Prometheus 逐渐成为云原生时代的可观测事实标准,那么今天为大家带来在微服务架构下基于 Prometheus 构建一体 ...
- 如何在微服务架构下进行数据设计?
作者:唐建法 && Mongoing中文社区 来自:http://www.mongoing.com/ 微服务是一个软件架构模式,对微服务的讨论大多集中在容器或其他技术是否能很好的实施微 ...
- 用友云微服务架构下配置文件管理利器:配置中心
微服务架构是这几年IT领域的一个高频词汇,越来越多的项目和应用正在以微服务的思想进行重构.相比于单体应用和SOA架构,微服务优势也逐渐凸显,被广大架构师和技术人员引入和推崇.当然,单体应用.SOA.微 ...
- 微服务架构下 CI/CD 如何落地
本文系云原生应用最佳实践杭州站活动演讲稿整理.杭州站活动邀请了 Apache APISIX 项目 VP 温铭.又拍云平台开发部高级工程师莫红波.蚂蚁金服技术专家王发康.有赞中间件开发工程师张超,分享云 ...
- 架构 | 微服务架构下如何解耦,对于已经紧耦合下如何重构?
点击上方"朱小厮的博客",选择"设为星标" 当当满200减40优惠码「J2KNAE」 来源:知乎 今天准备谈下微服务架构下各个微服务间如何解耦,以及对于已经紧耦 ...
- 微服务 松耦合_超值干货:微服务架构下如何解耦,对于已经紧耦合下如何重构?...
今天准备谈下微服务架构下各个微服务间如何解耦,以及对于已经紧耦合的微服务如何进行重构.要明白实际上微服务后续出现的诸多问题往往都是一开始微服务模块划分就不合理导致,对于具体的模块划分方法和原则,我总结 ...
- 如何实现微服务架构下的分布式事务?
摘要:微服务架构下,如何克服分布式事务难题? 什么是微服务?微服务有什么优势和困难? 什么是微服务架构? 简而言之,微服务架构的系统是一个分布式的系统,按业务进行划分为独立的服务单元,解决单体系统的不 ...
- 【华为云技术分享】HDC.Cloud|华为云Stack大咖说:如何实现微服务架构下的分布式事务
离华为开发者大会2020(Cloud)开幕仅剩一月左右,让开发者们和华为大咖近距离沟通的扫地僧早午餐会也已经开放预约.但是,有些小伙伴们已经等不及到二月了,别急,福利这不就来了吗!华为云Stack混合 ...
- 微服务架构下的软件测试实践
随着企业开发模式逐渐从传统的整体式(Monolithic)产品交付,向快节奏的微服务架构迁移,软件测试人员也必须相应地调整自己的测试方法和工具,才能多快好省地提高测试覆盖率,尽早发现潜在的缺陷.在快速 ...
最新文章
- 屏幕为什么要正负压供电_负压变换器的设计
- 目标检测 yolov1
- JAVA四种引用方式
- 【小白学习C++ 教程】九、C++中字符型、字符串和转义字符
- oracle重建服务器,Oracle重建控制文件的实例教程
- Dubbo核心知识点
- 2017.3.16 聪聪可可 思考记录(非常不容易)
- python隐式调用_c#隐式调用python_C#调用python脚本样例
- python是干什么用的-python是做什么用的 python有什么用 - 驱动管家
- 13.地区设置(Locale Settings)
- .Net Core WebApi集成JWT实现身份认证
- Mybatis-Plus:Sql 注入器(扩展BaseMapper)
- HR面试问题总结(HR面经)
- 创建输入控件(input控件、文本框、密码框、单项选择、多项选择、重置与提交按钮的设置)
- Mysql对应的dul_Dul基本使用
- ANSYS FLUENT三维非结构网格数值计算及后处理——教室全新风送风与排风
- SpringBoot项目中增加favicon.ico图标
- linux man手册返回错误 man: command exited with status 159
- Qt编写可视化大屏电子看板系统1-布局方案
- 对单片机通信方式(中断和轮询)的理解