在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
什么是Dubbo?
Dubbo 是阿里开源的远程服务调用(RPC)的分布式框架,提供了 SOA 服务治理方案;它的架构主要有五个角色/核心组件,分为是 Container(容器)、Provider(服务的提供方)、Registry(注册中心)、Consumer(服务的消费方)、Monitor(监控中心)。
容器主要负责启动、加载、运行服务提供者;
同时服务提供者在启动时,向注册中心注册自己提供的服务;
消费者向注册中心订阅自己的服务;
注册中心返回服务提供者列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者;
对于服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另外一台调用;
服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心;

Dubbo 在项目中是怎么用的?
Dubbo 在项目中主要用来实现不同系统之间的服务调用,由于项目是按照不同的功能分了不同的系统,按照三层架构又分了不同的服务,其中三层架构中的控制层作为服务的消费方,业务层和持久层共同作为服务的发布方,这样的架构实现了系统的服务化,提高了开发效率,实现了业务的解耦。
项目中通过 Dubbo 和 Spring 的整合,采用全 Spring 配置方式,只需要用 Spring 来加载Dubbo 的配置,完成了服务的发布和调用。我们主要在服务的暴露方通过<dubbo:service>标签来暴露服务,在服务的消费方通过<dubbo:reference>标签来引用服务,注册中心我们选用的是 zookeeper,对服务的URL进行了管理和配置。
Dubbo 都支持什么协议?
Dubbo 支持 Dubbo 协议、RMI 协议、hessian 协议、Http 协议等。
Dubbo 协议:缺省协议、采用了单一长连接和 NIO 异步通讯、使用线程池并发处理请求,能减少握手和加大并发效率、采用的是 Hession 二进制序列化、性能较好,推荐使用。
主要应用于传入传出参数数据包较小(建议小于 100K),消费者比提供者个数多,由于是单一连接,因为尽量不要传输大文件。
RMI 协议:采用 JDK 标准的 RMI 协议(基于 TCP 协议)、堵塞式短连接、JDK 标准序列化方式、同步通讯。适用于消费者和提供者个数差不多的,可传文件。测试发现偶尔会连接失败,需要重建 Stub。
Hessian 协议:采用 http 通讯,采用 Servlet 暴露服务,多连接短连接的同步传输方式,采用hession 的二进制序列化,适合提供者比消费者多。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Java开发工程师面试准备
Java开发工程师面试准备,首先找一个好模板,可以参考一些优秀简历,借鉴优质的内容,将自身的优势展示出来,做好面试前的准备,不要平时很认真工作,面试前因为没有时间准备充分而吃亏。除此之外还要在专业技能Java开发方便做功夫。
10469
2019-04-24 19:54:48
Java开发Overload 和 Override 的区别是什么?
Java开发Overload 和 Override 的区别是什么?Overloaded 的方法是否可以改变返回值的类型?Overload 是重载的意思,Override 是覆盖的意思,也就是重写。重载 Overload 表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同)。
11529
2019-05-24 15:22:03
什么是 java 序列化?如何实现 java 序列化? Serializable 接口的作用?
将一个 java 对象变成字节流的形式传出去或者从一个字节流中恢复成一个 java 对象,例如,要将 java 对象存储到硬盘或者传送给网络上的其他计算机,这个过程我们可以自己写代码去把一个 java 对象变成某个格式的字节流再传输。
9130
2019-06-03 11:26:48
2019蚂蚁金服Java开发面试题含答案
一般来讲,蚂蚁金服这样的大公司都会有至少三次的技术面试。前一轮的问题一般都是比较基础的问题,当然对于许多人来讲,基础性的问题也不一定简单。本文就专门针对Java开发的面试者,整理出了最新的蚂蚁金服一面题,并附上了参考答案,希望可以帮到即将要到蚂蚁金服面试的求职者。如果近期没有面试需求的朋友,也可以查漏补缺,看看自己的学习有哪些欠缺的地方。
7941
2019-12-02 19:29:44
Java集合ArrayList教程学习路线分享
Java集合ArrayList教程学习路线分享,我们需要学习:ArrayList集合底层数据结构、ArrayList源码分析、ArrayList继承关系等相关知识,学习ArrayList基本应用,通过底层原理分析让大家更深层次的理解ArrayList,真正做到学以致用。
7083
2020-03-19 15:04:21
