Dubbo现在用的多吗?他的核心原理是什么?

2021-04-02 16:51发布

8条回答
Java研究室
2楼 · 2021-04-06 16:46

用dubbo是想利用分布式集群的形式来提高服务的并发量,适用与大型项目.如果不用它还想提高并发另一个解决方案是springCloud+微服务.适合大中小型项目.当前对并发要求的项目还是很多的,所以dubbo用的也相对较多.建议如果是初学者可以跳过dubbo直接学习第二个方案,使用场景更多.至于核心原理不建议现在就去掌握.循序渐进,慢慢来真的使用了再研究.不要上来就去学原理。毕竟相对枯燥.简单说一点基本就分4中角色.提供者,消费者注册到注册中心dubbo下的zk.然后消费者通过服务rpc调用即可.第四个是监控中心可以服务的注册情况.暂时了解这么多即可,后续有需要可以再提

不不就不
3楼 · 2021-04-07 09:48

用的多

dubbo原理和机制:应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成。  注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小。  监控中心负责统计各服务调用次数,调用时间等,统计先在内存汇总后每分钟一次发送到监控中心服务器,并以报表展示。  服务提供者向注册中心注册其提供的服务,并汇报调用时间到监控中心,此时间不包含网络开销。  服务消费者向注册中心获取服务提供者地址列表,并根据负载算法直接调用提供者,同时汇报调用时间到监控中心,此时间包含网络开销。

AW
4楼 · 2021-04-08 16:17

节点角色说明:

Provider: 暴露服务的服务提供方。

Consumer: 调用远程服务的服务消费方。

Registry: 服务注册与发现的注册中心。

Monitor: 统计服务的调用次调和调用时间的监控中心。

Container: 服务运行容器


调用关系说明:


0:服务容器负责启动、加载、运行服务提供者。


1:服务提供者在启动的时候,向注册中心注册自己提供的服务。


2:服务消费者在启动的时候,向注册中心订阅自己所需的服务。


3:注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。


4:服务消费者,从提供者地址列表中,基于负载均衡的算法,选一台服务提供者进行调用,如果调用失败,则在重新调用一次。


5:服务消费者和服务提供者在内存中累计调用次数和调用时间,定时发送数据到监控中心。


如果要使用dubbo,那就离不开注册中心。dubbo依赖第三方软件来提供注册中心服务。ZooKeeper是一个不错的选择。




小小收藏家
5楼 · 2021-04-09 15:47

用的多

dubbo原理和机制:应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成。  注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小。  监控中心负责统计各服务调用次数,调用时间等,统计先在内存汇总后每分钟一次发送到监控中心服务器,并以报表展示。  服务提供者向注册中心注册其提供的服务,并汇报调用时间到监控中心,此时间不包含网络开销。  服务消费者向注册中心获取服务提供者地址列表,并根据负载算法直接调用提供者,同时汇报调用时间到监控中心,此时间包含网络开销。



清屿
6楼 · 2021-04-11 14:30

用dubbo是想利用分布式集群的形式来提高服务的并发量,适用与大型项目.如果不用它还想提高并发另一个解决方案是springCloud+微服务.适合大中小型项目.当前对并发要求的项目还是很多的,所以dubbo用的也相对较多.建议如果是初学者可以跳过dubbo直接学习第二个方案,使用场景更多.至于核心原理不建议现在就去掌握.循序渐进,慢慢来真的使用了再研究.不要上来就去学原理。毕竟相对枯燥.简单说一点基本就分4中角色.提供者,消费者注册到注册中心dubbo下的zk.然后消费者通过服务rpc调用即可.第四个是监控中心可以服务的注册情况.暂时了解这么多即可,后续有需要可以再提

我的网名不再改
7楼 · 2021-04-11 17:00

Dubbo 是一个分布式服务框架,是阿里巴巴开源项目 ,被国内电商及互联网项目中使用,Dubbo 致力于提供高性能和透明化的 RPC 远程服务调用方案,以及 SOA 服务治理方案。简单的说,Dubbo 就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有 Dubbo 这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架。



节点角色说明:

Provider: 暴露服务的服务提供方。

Consumer: 调用远程服务的服务消费方。

Registry: 服务注册与发现的注册中心。

Monitor: 统计服务的调用次调和调用时间的监控中心。

Container: 服务运行容器


调用关系说明:


0:服务容器负责启动、加载、运行服务提供者。


1:服务提供者在启动的时候,向注册中心注册自己提供的服务。


2:服务消费者在启动的时候,向注册中心订阅自己所需的服务。


3:注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。


4:服务消费者,从提供者地址列表中,基于负载均衡的算法,选一台服务提供者进行调用,如果调用失败,则在重新调用一次。


5:服务消费者和服务提供者在内存中累计调用次数和调用时间,定时发送数据到监控中心。


如果要使用dubbo,那就离不开注册中心。dubbo依赖第三方软件来提供注册中心服务。ZooKeeper是一个不错的选择。


服务提供者配置常用名称如下:



注意:dubbo:annotation 用于包扫描


服务消费者配置常用名称如下:


消费者需要调用远程服务:



十七
8楼 · 2021-04-12 08:43

dubbo现在使用比较普遍的哦,核心原理就是远程调用服务。

dubbo的组成分为,容器、服务提供者、服务消费者、监控中心、注册中心五个部分,执行原理是:

  1. 加载容器,启动服务提供者

  2. 服务提供者向注册中心(官方推荐使用zookeeper作为注册中心)注册服务

  3. 消费者向注册中心订阅服务

  4. 注册中心将服务地址告诉消费者

  5. 消费者根据服务地址采用负载均衡的算法去找到服务

  6. 管理中心定期监控服务调用的频率


如果你还不理解,我可以举个例子:

假如我要去吃海底捞,我要在美团上先搜索附近的海底捞门店。

美团就相当于容器,海底捞就相当于服务提供者,我相当于消费者。

海底捞在美团上入驻了,向美团这个平台注册了门店地址,我在美团搜索了海底捞发现了很多海底捞门店,美团会智能的推送最近的门店给我,我就获取了海底捞门店的地址,就可以去海底捞吃火锅了,去到海底捞发现人满了,我还可以选择其他的海底捞门店(负载均衡),当海底捞门店的地址发生变化,美团还好动态地把最新的海底捞门店地址告诉我。

希希
9楼 · 2021-09-30 09:40

Dubbo是一种服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和  Spring框架无缝集成。

主要的核心部件:

Remoting: 网络通信框架,实现了 sync-over-async 和

request-response 消息机制.

RPC: 一个远程过程调用的抽象,支持负载均衡、容灾和集群功能

Registry: 服务目录框架用于服务的注册和服务事件发布和订阅


相关问题推荐

  • 回答 36

    看军事新闻的同学应该都知道,一艘航空母舰作战能力虽然很强,但是弱点太明显,就是防御能力太差,单艘的航空母舰很少单独行动,通常航空母舰战斗群才是主要军事力量,你可以把单艘航母理解为的单体应用(防御差,机动性不好),把航母战斗群(调度复杂,维护...

  • 回答 31

    初始化过程细节:首先进行的就是将服务装载到容器中,然后准备注册服务。和Spring中启动过程类似,Spring启动时,将bean装载进容器中的时候,首先要解析bean。所以dubbo也是先读配置文件解析服务。解析服务:基于dubbo.jar内的META-INF/spring.handlers配置,...

  • 回答 27

    分布式事务 指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上 。换成比较容易理解的话,就是多个事务之间再保持事务的特性,也就是多个事务之间保证结果的一致性。分布式事务解决方案1、基于XA协议的两阶...

  • 什么是接口幂等性?2021-02-24 18:21
    回答 25

    1. 接口调用存在的问题        现如今我们的系统大多拆分为分布式SOA,或者微服务,一套系统中包含了多个子系统服务,而一个子系统服务往往会去调用另一个服务,而服务调用服务无非就是使用RPC通信或者restful,既然是通信,那么就有可能在服务器处理...

  • 回答 21

    前提是另外一个bean在bean容器中能找到

  • 回答 22

    1.View——表示层1.1准备数据实现方式:struts,servlet等1.2显示数据实现方式:extjs,jsp,jquery,html等2.Service——业务层实现方式:drools等3.Dao——数据访问层实现方式:hibernate、mybatis等...

  • SpringCloud Netflix和Sprin2020-11-12 09:41
    回答 8
    已采纳

    SpringCloud Netflix和SpringCloud Alibaba的区别如下图:

  • 回答 16

    哨兵(Sentinel)是 redis 的高可用性解决方案,前面我们讲的主从复制它是高可用的基础,需要人工介入才能完成故障转移,哨兵可以解决这个问题,在主从复制情况下,当主节点发生故障时,哨兵可以自动的发现故障并且完成故障转移,实现真正的 redis 高可用。在...

  • 回答 8

    redis为什么会有高并发问题redis的出身决定Redis是一种单线程机制的nosql数据库,基于key-value,数据可持久化落盘。由于单线程所以redis本身并没有锁的概念,多个客户端连接并不存在竞争关系,但是利用jedis等客户端对redis进行并发访问时会出现问题。发生连...

  • 回答 4

    不需要。一般是service分出去。然后其它放在web层即一个jar为service业务处理,一个为web层war包

  • 回答 7

    在回答这个问题之前,我们先回答一下什么是锁。普通的锁,即在单机多线程环境下,当多个线程需要访问同一个变量或代码片段时,被访问的变量或代码片段叫做临界区域,我们需要控制线程一个一个的顺序执行,否则会出现并发问题。如何控制呢?就是设置一个各个线...

  • 回答 6

     springmvc位于表现层,主要与浏览器进行交互(接收和响应浏览器请求)。springmvc采用MVC设计模型,模型由model、view和controller组成。         model(模型):对应JavaBean         view(视图):对应JSP         controller(控制器)...

没有解决我的问题,去提问