面试 Dubbo ,却问我和 SpringCloud 有什么区别?
程序员的成长之路
共 7572字,需浏览 16分钟
·
2023-10-16 10:35
阅读本文大概需要 7 分钟。
来自:blog.csdn.net/u011709538/article/details/131450031
Dubbo 、Springcloud? 这两有关系?
-
前言 -
一、RPC 框架的概念 -
什么是RPC框架 -
RPC 和 普通通信 的区别 -
二、常用 RPC 框架 -
Dubbo -
gRPC -
Thrift -
Feign -
三、dubbo 与 Springcloud -
Dubbo 的模型 -
Springcloud -
dubbo 与 Springcloud 的区别
1前言
Dubbo 和 Springcloud 有什么区别?
2RPC 框架的概念
1. 什么是RPC框架
RPC(Remote Procedure Call - 远程调用) 是一种客户端和服务器端之间远程通信的模式,通过这种模式可以使得不同的进程、甚至不同的机器之间可以像调用本地函数一样调用远程函数。RPC框架就是一套实现RPC协议的软件框架,用于简化远程调用的过程,让开发者可以更方便地进行远程调用操作。
-
远程调用接口定义: 定义远程调用的函数、参数和返回值,通常使用IDL(接口定义语言)进行定义。 -
远程调用代理: 用于将本地调用转化为远程调用,同时负责处理对远程调用的参数的序列化和反序列化。 -
传输协议: 用于在客户端和服务器之间传输远程调用的请求和响应,通常使用TCP或HTTP协议。 -
服务注册与发现: 用于将服务注册到注册中心,并让客户端发现可用的服务。 -
负载均衡: 用于管理多个服务提供者,并将请求均衡地分配给它们,以提高系统的稳定性和可用性
2. RPC 和 普通通信 的区别
为什么我们会有RPC 这种说法,”前台访问后台“ 这种模式算不算 RPC?
-
技术实现方式不同:
-
调用方式不同:
-
服务定位方式不同:
-
数据传输方式不同:
需要注意的是,还是那句话,RPC是手段,更是思想,并不规定其具体的实现方式,上述也只是通常情况下RPC的特征。
3常用 RPC 框架
-
特点:轻量级、高性能、多协议、多语言、丰富的治理能力
-
特点:跨语言、高性能、基于Protocol Buffers数据格式、支持多种平台、支持流式数据传输
-
特点:跨语言、高性能、多协议、多语言、支持异步调用、支持服务发现和负载均衡
-
特点:高性能、基于接口定义、多种编码方式、集成负载均衡、支持断路器
4dubbo 与 Springcloud
1. Dubbo 的模型
-
调用者先部署,怎么能拿到被调用方的IP并配置呢 -
调用的序列化协议、传输协议怎么确定 -
被调用方是集群,该怎么处理调用的逻辑 -
被调用方宕机,怎么自动切换另一台 -
同步或非同步的调用都需要自己实现
2. Springcloud
Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus, one-time tokens, global locks, leadership election, distributed sessions, cluster state). Coordination of distributed systems leads to boiler plate patterns, and using Spring Cloud developers can quickly stand up services and applications that implement those patterns. They will work well in any distributed environment, including the developer’s own laptop, bare metal data centres, and managed platforms such as Cloud Foundry.
Spring Cloud 为开发人员提供了在分布式系统中快速构建一些常见模式的工具(例如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)。分布式系统的协调导致了样板模式,使用 Spring Cloud 开发人员可以快速建立实现这些模式的服务和应用程序。它们可以在任何分布式环> > 境中很好地工作,包括开发人员自己的笔记本电脑、裸机数据中心和托管平台,如Cloud Foundry。
-
分布式/版本化配置 -
服务注册和发现 -
路由 -
服务到服务呼叫 -
负载平衡 -
断路器 -
全局锁 -
领导层选举和集群状态 -
分布式消息传递
-
https://spring.io/projects/spring-cloud
3. dubbo 与 Springcloud 的区别
Dubbo 和 Springcloud 有什么区别?
推荐阅读:
还在使用 RestTemplate?来了解一下官方推荐的 WebClient !
Java8 Stream 一行代码实现数据分组统计、排序、最大值、最小值、平均值、总数、合计
互联网初中高级大厂面试题(9个G) 内容包含Java基础、JavaWeb、MySQL性能优化、JVM、锁、百万并发、消息队列、高性能缓存、反射、Spring全家桶原理、微服务、Zookeeper......等技术栈!
⬇戳阅读原文领取! 朕已阅
评论