Dubbo服务开发和运行流程【java面试题】

(1)问题分析:

考官主要想考核dubbo的原理,还有dubbo在项目中的使用。
 

(2)核心答案讲解:

dubbo服务开发流程:

maven工程中pom文件先导入dubbo依赖jar包

搭建zookeeper注册中心

写好服务端工程并配置dubbo服务端配置,并关联上zookeeper注册中心

服务端的实现类上添加@Service注解,此注解来自阿里巴巴的

写好客户端工程并配置dubbo客户端配置,并关联上zookeeper注册中心

在注入的服务的接口上添加@Reference注解
 

dubbo运行流程:

dubbo运行流程


 

1)服务容器负责启动,加载,运行服务提供者。

2)服务提供者在启动时,向注册中心注册自己提供的服务。

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

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

5)服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用

6)服务消费者和提供者,在内存中累计调用次数调用时间,定时每分钟发送一次统计数据到监控中心。

(3)问题扩展:

RPC协议:

RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。

说得通俗点,使用RPC协议使得服务器和服务器之间通信效率更高,更方便。

(4)结合项目中使用:

在分布式架构项目中,可以使用dubbo做接口暴露跟调用

dubbo02

相关文章

在网络请求时,总会有各种异常情况出现,我们需要提前处理这...
作者:宇曾背景软件技术的发展历史,从单体的应用,逐渐演进...
hello,大家好呀,我是小楼。最近一个技术群有同学at我,问我...
 一个软件开发人员,工作到了一定的年限(一般是3、4年左右...
当一个服务调用另一个远程服务出现错误时的外观Dubbo提供了多...
最近在看阿里开源RPC框架Dubbo的源码,顺带梳理了一下其中用...