Java进阶学习 - Dubbo框架

1.简介

Dobbo是一个高性能的RPC框架,解决了分布式钟的调用问题
优点:解决了分布式系统中互相调用问题
缺点:缺少统一管理的调度中心

2.为什么Dubbo说自己性能高?

要从底层原理说起,一个RPC框架-远程过程调用,提升性能的最关键,最耗时的
两方面入手:序列化和网络通信

1. 序列化
本地的对象要在网络上传输,必须要实现Serializable接口。然而Dubbo采用的就是最高效的二进制流。
2. 网络通信
不同于HTTP需要进行7步走(三次握手和四次挥手),Dubbo采用Socket通信机制,一步到位,提升了通信效率,并且可以建立长连接,不用反复连接,直接传输数据

3.dubbo概述

Apache Dubbo 是一款高性能,轻量级的开源Java RPC框架,提供三大核心能力:
面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现

4.dubbo框架

服务提供者(Provider): 暴露服务的服务提供方,服务提供者在启动时,向注册中心注册自己提供的服务。

服务消费者(Consumer): 调用远程服务的服务消费方,服务消费者在启用时,向注册中心订阅自己所需的服务,服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。

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

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

4.1 dubbo支持的协议

dubbo支持多种协议,dubbo官方推荐使用dubbo协议。
dubbo协议默认端口20880

使用dubbo协议,Spring配置文件加入:

<dubbo:protocol name="dubbo" port="20880"/>

Java进阶学习 - Dubbo框架(持续更新中~~)相关推荐

  1. Go语言开发学习笔记(持续更新中)

    Go语言开发学习笔记(持续更新中) 仅供自我学习 更好的文档请选择下方 https://studygolang.com/pkgdoc https://www.topgoer.com/go%E5%9F% ...

  2. 阿里最新面试必备项之Java的String类,持续更新中!

    最新腾讯面试必备项之Java的String类,持续更新中! 1.1 String的特性 String类:代表字符串.Java程序中的所有字符串字面值(如"abc")都作为此类的实例 ...

  3. C语言学习笔记Day3——持续更新中... ...

    上一篇文章C语言学习笔记Day2--持续更新中- - 八. 容器 1. 一维数组 1.1 什么是一维数组 当数组中每个元素都只带有一个下标(第一个元素的下标为0, 第二个元素的下标为1, 以此类推)时 ...

  4. 【Vue全家桶+SSR+Koa2全栈开发】项目搭建过程 整合 学习目录(持续更新中)

    写在开头 大家好,这里是lionLoveVue,基础知识决定了编程思维,学如逆水行舟,不进则退.金三银四,为了面试也还在慢慢积累知识,Github上面可以直接查看所有前端知识点梳理,github传送门 ...

  5. 软件编程学习网站汇总——持续更新中

    持续更新各种国内外关于编程语言学习及讨论的网站,有时间我会添加介绍,不过相信很多网站你们都熟悉了,喜欢的可以收藏,我也留着等以后需要的时候翻阅. 若链接有错误,提醒我下,我来改正.有其他好的站也可以推 ...

  6. Spring、SpringMVC、SpringBoot及其插件学习笔记集合(持续更新中....)

    笔记目录 语言 1.MyBatis 1.1 普通用法 1.1.1 配置文件 1.1.2 mapper文件 1.2 通用mapper文件 2.Thymeleaf 2.1 命名空间 2.2 依赖 2.3 ...

  7. java画图卡通人物,持续更新中

    Cache aside Cache aside也就是旁路缓存,是比较常用的缓存策略. (1)读请求常见流程 应用首先会判断缓存是否有该数据,缓存命中直接返回数据,缓存未命中即缓存穿透到数据库,从数据库 ...

  8. java web学习笔记(持续更新)

    java web学习笔记 一.Java Web简介 二.认识Servlet 1.什么是Servlet? 2.请求路径 3.tomcat 4.Servlet的使用 三.Servlet简单应用 1.创建S ...

  9. Java面试题大全(持续更新中),java框架面试题springboot

    class Student { static { System.out.println("Student 静态代码块"); //3 } { System.out.println(& ...

最新文章

  1. TiDB 在知乎万亿量级业务数据下的实践和挑战
  2. FONT Awesome 图标
  3. 没有什么是日本牛郎店做不到的......
  4. java cr_WildFly 10 CR 2发布– Java EE 7,Java 8,Hibernate 5,JavaScript支持热重载
  5. JSR 299 建议草案第二版已提交
  6. asp.net微软图表控件MsChart
  7. sql full left right inner cross 基础
  8. zetoro导入csl 软件学报
  9. Android 四大组件学习之BroadcastReceiver一
  10. 清风老师数学建模视频课程第1讲层次分析法
  11. BlackBerry 黑莓 7230 7290 快捷键
  12. EPUB、CAJ 、PDF 格式的区别,有什么好用的epub阅读器
  13. c语言程序设计景点售票系统,c语言售票系统.docx
  14. Oracle between and
  15. Flutter 布局之企鹅电竞
  16. 常用网站攻击手段及防御方法
  17. 计算机无法登陆账户 让注销,电脑开机出现登陆账户,点了以后就马上注销,怎么处理?...
  18. 动态规划-剪绳子问题
  19. Geohash应用——附近乡镇信息挖掘(提升检索召回与准确)
  20. Zabbix-Linux-邮箱报警

热门文章

  1. linux操作redis
  2. 2006年5月23号 12点
  3. c语言程序重命名,如何在C语言编程里面修改源文件名字?
  4. linux播放器切换,让mplayer成为linux下的万能播放器(更新)
  5. JAVA综合练习-动物乐园
  6. HMI-62-【多媒体】空调部分 3
  7. pycuda 之 安装与简单使用
  8. 纵横网络靶场社区-wp
  9. 【网络安全】brainpan-windows缓冲区溢出详解
  10. 利用bastille配置安全的linux系统