为什么要用dubbo?

当网站规模达到了一定的量级的时候,普通的MVC框架已经不能满足我们的需求,于是分布式的服务框架和流动式的架构就凸显出来了。

单一应用架构

当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM) 是关键。

垂直应用架构

当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC) 是关键。

分布式服务架构

当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。

此时,用于提高业务复用及整合的分布式服务框架(RPC) 是关键。

流动计算架构

当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。

此时,用于提高机器利用率的资源调度和治理中心(SOA) 是关键。

废话不多说,先搭建一个看看是怎么一回事?–

目前对我来说就是,我A工程想调用B工程中的方法怎么办?我import不进来啊,这时候我就需要远程调用的方法了,怎么远程调用呢?dobbu给我提供了一个好的开源框架,那我就用它来操作吧!

dubbo和zookeeper啥关系?

简单来说打个比方:dubbo就是动物园的动物,zookeeper是动物园。如果游客想看动物的话那么就去动物园看。比如你要看老虎,那么动物园有你才能看到。换句话说我们把很多不同的dubbo(动物)放到zookeeper(动物园中)提供给我们游客进行观赏。这个过程中三个关键:场所、供给者、消费者。

再说一个分布式的项目,server(消费)层与 service(供给)层被拆分了开来, 部署在不同的tomcat中, 我在server层需要调用 service层的接口,但是两个运行在不同tomcat下的服务无法直接互调接口,那么就可以通过zookeeper和dubbo实现。就好比把动物放到动物园,我们要看了直接去动物园就行。而不能直接去动物生活的地方去看,会有性命安全之忧(比如你去看老虎)。

我们通过dubbo 建立service这个服务,并且到zookeeper上面注册,填写对应的zookeeper服务所在 的IP及端口号。

下面我们的server层需要来调用 service接口了,由于在不同的工程中,它是无法直接找到service接口的,我们使用dubbo再来引用注册进入的dubbo服务。

我们先填写zookeeper服务所在 的IP及端口号,再填写我们需要调用的接口名字。

这样,就能实现调用。。。

搭建简单的dubbo

1.下载zookeeperhttp://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.5.3-beta/zookeeper-3.5.3-beta.tar.gz

2.配置:

zookeeper的配置文件在conf目录,有zoo_sample.cfg 和 log4j.properties,将zoo_sample.cfg 重命名成zoo.cfg,因为 zookeeper 在启动时会找这个文件作为默认配置文件。

3.修改zoo.cfg.

# the directory where the snapshot is stored.

# do not use /tmp for storage, /tmp here is just

# example sakes.

dataDir=D:\\server\\zookeeper-3.5.3-beta\\data

dataLogDir=D:\\server\\zookeeper-3.5.3-beta\\log

#dataDir=/tmp/zookeeper

从上面代码可以看到添加了两行。在本机里。zookeeper放在D盘里,然后就添加了dataDir及dataLogDir两个变量。与此同时在zookeeper文件根目录下新建data及log两个文件夹,如果不创建,后面运行脚本是会报错。

完成后,进入bin目录,运行zkServer.cmd脚本,然后就可以在单机上将zookeeper跑起来了。

剩下来的事情就是去配置DUBBO的XML文件了,通过IP地址的设置,提供本地的服务。

管理中心(动物园)和供给者(各种动物),消费者(万千游客)

dubbo的使用,其实只需要有管理中心(动物园)和供给者(各种动物),消费者(万千游客)这三个就可以使用了,但是并不能看到有哪些消费者和提供者,为了更好的调试,发现问题,解决问题,因此引入dubbo-admin。通过dubbo-admin可以对消费者和提供者进行管理。

dubbo-admin的下载,可自行到官网下载:https://github.com/alibaba/dubbo

下载下来是这样的一个目录结构:

这里我们只关心dubbo-admin这个文件夹,将dubbo-addmin打成war包,war包网上也有,但是下载了很多下来都会有问题,原因是每个人的电脑配置环境不一样,因此我们自己打包一个war就好。

打包war包,进入dubbo-admin这个文件目录 运行命令:

mvn package

如果看到下图结果,说明打包成功了:

打包成功之后,就会发现dubbo-admin下多了个target文件夹,打开target文件夹,发现里面有个war包:

把dubbo-admin-2.5.7.war文件复制到tomcat的webapps目录下,

在tomcat的bin目录下运行:tomcat8.0w.exe

它会自动在webapps下生成一个文件夹,然后关闭tomcat8.0w.exe,修改端口号改成9090

然后启动在bin目录下启动tomcat8.0.exe即可:

启动后,输入

http://localhost:9090/dubbo-admin-2.5.7/

然后会提示你输入用户名和密码—-都是root

这个和你的配置文件里面的内容是相关的:

D:\server\Tomcat 8.5\webapps\dubbo-admin-2.5.7\WEB-INF

我的目录如图上所示,里面有一个dubbo.properties的文件:

dubbo.registry.address=zookeeper://127.0.0.1:2181dubbo.admin.root.password=root dubbo.admin.guest.password=guest

成功输入以后:

到此这篇关于文章就结束了!

上述面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2020收集的一些大厂的面试真题(都整理成文档,小部分截图),有需要的可以 点击进入 查看领取资料。

点关注,不迷路!如果本文对你有帮助的话不要忘记点赞支持哦!

zookeeper 密码_阿里资深JAVA架构带你深度剖析dubbo和zookeeper关系相关推荐

  1. 阿里资深系统架构师九峰谈云计算

    为什么80%的码农都做不了架构师?>>>    阿里资深系统架构师九峰谈云计算 被誉为改写IT面貌的"第三次IT革命"的主角云计算,已经从最初的"萌动& ...

  2. [Java并发包学习]深度剖析ConcurrentHashMap

    [Java并发包学习]深度剖析ConcurrentHashMap 概述 还记得大学快毕业的时候要准备找工作了,然后就看各种面试相关的书籍,还记得很多面试书中都说到: HashMap是非线程安全的,Ha ...

  3. 带你深度剖析《数据在内存中的存储》——C语言

    文章目录 一.数据类型介绍 二.整型在内存中的存储方式 2.1 原码.反码.补码的讲解 2.2 大小端介绍 2.2.1 大小端的概念 2.2.2 为什么要区分大小端存储呢? 2.2.3 大小端判断练习 ...

  4. 阿里java架构师+职级_阿里 P8 高级架构师年入100W+,到底什么水平?

    原标题:阿里 P8 高级架构师年入100W+,到底什么水平? 大家都知道,阿里P8高级技术专家,基本上是一线技术人能达到的最高职级,也是很多程序员追求的目标.达到年入百万的P8 Java高级架构师级别 ...

  5. 架构的演进,阿里资深Java工程师表述架构的腐化之谜

    前言 新技术层出不穷.过去十年时间里,我们经历了许多激动人心的新技术,包括那些新的框架.语言.平台.编程模型等等.这些新技术极大地改善了开发人员的工作环境,缩短了产品和项目的面世时间.然而作为在软件行 ...

  6. 超赞!阿里资深P9架构师总结出第一本《Java异步编程实战》

    什么是异步编程: 传统的同步编程是一种请求响应模型,调用一个方法,等待其响应返回 异步编程就是要重新考虑是否需要响应的问题,也就是缩小需要响应的地方.因为越快获得响应,就是越同步化,顺序化,事务化,性 ...

  7. 一位资深Java架构师的晋级心得

    架构师是什么? 是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物.一个架构师得需要足够的想像力,能把各种目标需求进行不同维度的扩展,为目标客户提供更为全面的需求清 ...

  8. 一个资深Java架构师告诉你我们是如何将一个项目做烂的

    首先我想声明一个项目做烂不是你一个人挖坑就行的,这是一个很大的工程 需要团队协作 既然标题都用到了"烂"这个词,那什么才是烂呢? 在你的项目里,"烂"和&quo ...

  9. 阿里P7 java架构师 springcloud、jvm、netty 、redis、数据结构、分布式高并发 视频 下载分享

    作为普通java码农,你是否因为日复一日地写着业务代码无法深入了解前沿技术而感到焦虑: 作为经验尚浅的架构负责人,你是否在为新项目如何做到高并发秒杀.熔断.限流而感到无所适从: 作为一个跳槽求职者,你 ...

最新文章

  1. Expo大作战(十八)--expo如何发布成独立应用程序,打包成apk或者ipa,发布到对应应用商店...
  2. python学习笔记十五:日期时间处理笔记
  3. mysql 优化300例_MySQL配置文件my.cnf参数优化和中文详解
  4. 51nod 1158 全是1的最大子矩阵(单调栈 ,o(n*m))
  5. Linux学习总结(61)——Ansible 快速入门学习
  6. 微信公众平台服务框架
  7. 阿里线上bug排查命令
  8. 高性能MySQL笔记——MySQL基础(一)
  9. matlab电力系统建模与仿真实验,基于MATLAB的小型电力系统的建模与仿真.doc
  10. html5读取umd,教程:使用umd、commonjs和es三种模式制作自己的React 组件(库)
  11. 破解计算机win7管理员密码,教你win7旗舰版怎么破密码
  12. 2022年全新PHP程序开发在线工单管理系统源码,售后工单系统
  13. 转载:APM文件夹释义
  14. 第一章---计算机系统概论
  15. Monkey测试教程
  16. 教你如何用C++快速生成1000万个随机数
  17. common.io中Tailer类读取文件内容乱码问题解决
  18. 信息学奥赛一本通 1005:地球人口承载力估计
  19. c语言出圈问题10人,第38套题:c语言出圈问题分析.doc
  20. 手机的IMEI、MEID、ICCID、UDID、IMSI

热门文章

  1. 面试必备:多线程学习(一)
  2. vue如何新建一个项目(超详细哦--转)
  3. ueditor百度富文本编辑器linux下报错: class path resource [config.json] cannot be resolved to absolute file path
  4. 天猫整站SSM-分页-总结(做个人学习笔记整理用)
  5. conda虚拟环境中安装ipython
  6. Linux C编程一些优秀的博客链接
  7. 1044. 火星数字(20)
  8. html地图缩放比例,百度地图之添加控件——比例尺、缩略图、平移缩放
  9. 【OS学习笔记】三十 保护模式九:段页式内存管理机制概述
  10. 在工程中最常用的 vim使用技巧