为什么要用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

成功输入以后:

 

链接:https://www.jianshu.com/p/5e3cbac93689

简单搭建dubbo的更多相关文章

  1. springboot搭建dubbo+zookeeper简单案例

    背景:只是自己使用单机版zookeeper搭建dubbo的一个学习案例,记录成功的过程 1.搭建zookeeper坏境 使用docker来构建环境 1.1 拉取镜像:docker pull zooke ...

  2. dubbo入门教程-从零搭建dubbo服务

    [原创 转载请注明出处] 本文是学习了dubbo之后自己手动写的,比较通俗,很多都是自己学习之后的理解,写的过程中没有参考任何文章. 另外dubbo也有官方文档,但是比较官方,也可以多看看dubbo的 ...

  3. windows环境搭建dubbo服务

    windows环境搭建dubbo服务 1:首先需要下载dubbo的注册中心 zookeeper zookeeper注册中心下载地址链接:http://mirror.bit.edu.cn/apache/ ...

  4. python简单搭建HTTP Web服务器

    对于Python 2,简单搭建Web服务器,只需在i需要搭建Web服务器的目录(如C:/ 或 /home/klchang/)下,输入如下命令: python -m SimpleHTTPServer 8 ...

  5. springmvc4环境简单搭建和定时任务

    之前复制粘贴创建了几个ssm的项目,然而回头让自己写的时候还是一头雾水,究其原因是spring的陌生.仅仅是写过几个helloworld而已.而且是照着写.我都不知道springmvc到底需要多少ja ...

  6. 1.0、Struts2的简单搭建方法

    一.Struts2:是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet:用于jsp页面与Java代码之间的交互. 1.核心:Filter拦截器,对所有的请求进行拦截. 2.工作 ...

  7. 零配置简单搭建SpringMVC 项目

    SpringMVC是比较常用的JavaWeb框架,非常轻便强悍,能简化Web开发,大大提高开发效率,在各种Web程序中广泛应用.本文采用Java Config的方式搭建SpringMVC项目,并对Sp ...

  8. Ubuntu学习笔记-win7&Ubuntu双系统简单搭建系统指南

    win7&Ubuntu双系统简单搭建系统指南 本文是自己老本子折腾Ubuntu的一些记录,主要是搭建了一个能够足够娱乐(不玩游戏)专注练习自己编程能力的内容.只是简单的写了关于系统的安装和一些 ...

  9. java 零基础搭建dubbo运行环境

    一:简介    以前做项目时,分布式环境都是其它同事在搭建,自己也没参与分布式环境搭建,只负责开发,由于近段时间工作重心转到android,java后台有一段时间没有接触了,刚好这几天有空,决定自己动 ...

随机推荐

  1. java web 在tomcat没有正常输出

    目录 文章背景 目录 问题介绍 问题解决 说明 参考文章 版本记录 文章背景 调试程序时候突然发现一些位置设置的日志输出没有了,最后总算是解决了! 目录 问题介绍 本地运行时候的环境如下: windo ...

  2. NX二次开发-UFUN获取当前显示部件的TAG,UF_PART_ask_display_part

    NX9+VS2012 #include <uf.h> #include <uf_modl.h> #include <uf_part.h> UF_initialize ...

  3. NX二次开发-将对象移动到图层UF_OBJ_set_layer

    #include <uf.h> #include <uf_obj.h> #include <uf_modl.h> #include <uf_layer.h&g ...

  4. 笔试题-求小于等于N的数中有多少组素勾股数

    题目描述: 一组勾股数满足:a2+b2=c2: 素勾股数:a,b,c彼此互质. 输入正整数N: 输出小于等于N的数中有多少组勾股数. 例: 输入:10 输出:1 思路:我是直接暴力破解的…… 首先找出 ...

  5. LeetCode 175. Combine Two Tables (组合两个表)

    题目标签: 题目给了我们两个table,让我们合并,根据Person为主. 因为题目说了 提供person 信息,不管这个人有没有地址.所以这里用Left Join. Java Solution: R ...

  6. project2_login(登录窗口)

    该project是在网易云课堂上的公开课<用 python 和 tkinter 做简单的窗口视窗>课程当中学习的,是该课程中的一个结课小项目,项目中的知识点内容涉及该课程中所学习到的大多数 ...

  7. C89,C99: C数组&结构体&联合体快速初始化

    1. 背景 C89标准规定初始化语句的元素以固定顺序出现,该顺序即待初始化数组或结构体元素的定义顺序. C99标准新增指定初始化(Designated Initializer),即可按照任意顺序对数组 ...

  8. ps-手捧城堡滴水云雾图

    1打开背景图 置入第二张图片 栅格化-加入蒙版-渐变 置入第三张图片 栅格化-用快速选择工具选取-加入蒙版 置入第四张图片 栅格化-调整图层-点击城堡建立蒙版-点击手的蒙版 ctrl-点击城堡的蒙版- ...

  9. HDFS HA

  10. 深度探索C++对象模型之第二章:构造函数语意学之Copy constructor的构造操作

    C++ Standard将copy constructor分为trivial 和nontrivial两种:只有nontrivial的实例才会被合成于程序之中.决定一个copy constructor是 ...