一、dubbo是什么?

1)本质:一个Jar包,一个分布式框架,,一个远程服务调用的分布式框架。

既然是新手教学,肯定很多同学不明白什么是分布式和远程服务调用,为什么要分布式,为什么要远程调用。我简单画个对比图说明(图1看到图2。画板画的,勿喷)。

你想一下,以前什么的都在一个服务器上,调用方法直接就自然而然调用了,没啥问题。现在因为需求增多拆分了这么多个,部署在不同的服务器上,那是不是相对以前都在一个服务器上,现在分布式后,web层调用service层的服务变成了远程调用?那怎样像以前那样都在一个服务器上自然而然调用方法呢?dubbo来解决。这就是下面dubbo的好处。

二、Dubbo的好处?

1.透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。

2.软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器,降低成本,减少单点。

3. 服务自动注册与发现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者。(下面讲解)

Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。

三、dubbo架构图如下所示:

讲解他的架构图之前,我们先普及下几个概念。

节点角色说明:

Provider(生产者): 暴露服务的服务提供方。

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

如图,我们可以简单理解为web1234需要调用service1234的服务,所以web1234是消费者,service1234是生产者。

那如果按照上面,消费者调用生产者的服务,那是不是如下图:

你看着晕不晕?晕不晕?晕不晕?反正我是晕了,万一分布式得更多呢?,所以我们需要他:

Registry(注册中心): 服务注册与发现的注册中心。dubbo推荐的是zookeeper。什么是zookeeper?zookeeper是用于分布式中一致性处理的框架。更多的可以查看我之前的文章:这么说吧,zookeeper 很简单,其实就是个框架,是一致性处理用的。简单的讲,zookeeper就是个中介,卖楼的(生产者)把楼盘信息放在中介(注册中心)那里,想买楼的(消费者)去中介那里获得楼盘资源清单。于是,我们的图变成了这样:

是不是好很多了?还不够, 我们还需要个监控中心(干嘛用的?当然是监控用的,调用失败怎么办?挂了怎么办?): Monitor: 统计服务的调用次调和调用时间的监控中心。(不画图了)

然后,Provider放在容器里运行,就叫做Container服务运行容器。(不画图了)

最终dubbo架构,如图(从0开始看起):

自己脑海里按照上图走了一遍后,看看自己想的是不是和下面说明一样。

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

1. 服务提供者(生产者)在启动时,向注册中心注册自己提供的服务。

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

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

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

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

Dubbo+Zookeeper 基础讲解相关推荐

  1. 微服务的一种开源实现方式——dubbo+zookeeper

    转自: http://blog.csdn.NET/zhdd99/article/details/52263609 微服务架构成了当下的技术热点,实现微服务是要付出很大成本的,但也许是因为微服务的优点太 ...

  2. (五)springmvc+mybatis+dubbo+zookeeper分布式架构 整合 - maven构建根项目

    上一篇我们介绍<springmvc+mybatis+dubbo+zookeeper分布式架构 整合 - maven模块规划>,从今天开始,我们将对代码的每一个构建做详细的记录,能够帮助大家 ...

  3. 精华【分布式、微服务、云架构dubbo+zookeeper+springmvc+mybatis+shiro+redis】分布式大型互联网企业架构!...

    2019独角兽企业重金招聘Python工程师标准>>> 框架简介--主要定位于互联网企业架构,已内置企业信息化系统的基础功能和高效的代码生成工具,包括:系统权限组件.数据权限组件.数 ...

  4. 精华【分布式微服务云架构dubbo+zookeeper+springmvc+mybatis+shiro+redis】分布式大型互联网企业架构!

    摘要: 开发工具 1.Eclipse IDE:采用Maven项目管理,模块化. 2.代码生成:通过界面方式简单配置,自动生成相应代码,目前包括三种生成方式(增删改查):单表.一对多.树结构.生成后的代 ...

  5. zookeeper中展示所有节点_Zookeeper系列一:Zookeeper基础命令操作

    有些事不是努力就可以改变的,五十块的人民币设计的再好看,也没有一百块的招人喜欢. 前言 由于公司年底要更换办公地点,所以最近投了一下简历,发现面试官现在很喜欢问dubbo.zookeeper和高并发等 ...

  6. dubbo + zookeeper学习

    title: dubbo + zookeeper学习 基础知识 什么是分布式 分布式系统是若干独立计算机的集合: 对用户来说像单个系统. 系统垂直拆分面临的问题 (1)界面,业务逻辑实现分离 (2)应 ...

  7. Dubbo+zookeeper使用方法以及注意事项

    Dubbo+zookeeper使用方法以及注意事项 最近在一个项目中想做一个数据库查询的服务,目的是将数据库查询这块从程序中脱离出来,形成一个公共的服务平台,大家都可以调用,经过考虑决定选用Dubbo ...

  8. Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例

    摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! "看看星空,会觉得自己很渺小,可能我们在宇宙中从来就是一个偶然.所以,无论什么事情,仔 ...

  9. JEESZ架构、分布式服务:Dubbo+Zookeeper+Proxy+Restful

    分布式 分布式服务:Dubbo+Zookeeper+Proxy+Restful 分布式消息中间件:KafKa+Flume+Zookeeper 分布式缓存:Redis 分布式文件:FastDFS 负载均 ...

最新文章

  1. TF之DD:利用Inception模型+GD算法生成带背景的大尺寸、高质量的Deep Dream图片——五个架构设计思维导图
  2. 笔记-项目范围管理-复习要点
  3. MVC之排球比赛计分程序 ——(二)架构概要设计
  4. (转)互联网——降级论
  5. 超详细的Java面试题总结之JavaWeb基础知识总结,java开发面试笔试题
  6. 累累白骨下,共享单车的困局
  7. Error:Cause: org/gradle/api/publication/maven/internal/DefaultMavenFactory Android
  8. 【vue】--路由解耦 传值的方式
  9. 移远EC20串口使用阻塞问题
  10. 计算机音乐的制作流程,Premiere制作音乐电子相册的方法和流程 计算机类数媒...
  11. LoadRunner压力测试
  12. python怎么重新运行_如何用python重新运行程序
  13. SSH项目整合基本步骤
  14. Java毕设项目-学生档案管理系统
  15. 微信小程序账号注册初始化环境搭建
  16. win10常用快捷键和常用DOS命令
  17. 【压力测试 2】JMeter压力测试之Internal server error 500 问题解决思路
  18. el-cascader
  19. LeetCode-Python-1276. 不浪费原料的汉堡制作方案(鸡兔同笼 + 数学)
  20. 思岚科技邀您体验智能黑科技 届时将惊现明星大咖!

热门文章

  1. html怎样自动播放视频,html5如何实现自动播放视频?
  2. php主键自增sql语句,sql 自动增长的主键
  3. c++该转java吗_java多线程,静态方法加锁后,调用该方法会影响其它方法吗?
  4. mysql5好还是8_定投扣款哪天好?周一还是周五,月末还是月初?(定投知识8)...
  5. python程序设计教程上海交通大学_上海交通大学 python程序设计课程PPT Ch2.ppt
  6. centos查看正在运行的服务_RHEL8或CentOS8上如何配置NTP服务器和客户端
  7. 使用Intellij idea新建Java Web项目(servlet) 原理及初步使用
  8. 深入理解JVM之对象分配流程
  9. [Swift]LeetCode212. 单词搜索 II | Word Search II
  10. 虚拟世界来自现实世界,同时又促进现实世界