一:Dubbo简介 

  Dubbo是阿里巴巴提供的开源的SOA(面向服务的体系结构)服务化治理的技术框架,据说只是一部分开源的,但一些基本的需求已经可以满足的,而且可扩展性。是一种能取代PHRPC的服务调用方式,优点在于配置简单,二次开发性强,同时DUBBO对代码的侵入性低。

  二:Dubbo整体理解

  现在DUBBO的配置文件主要分为两部门dubboConsumer.xml (可以理解为客户端) ,dubboProvider.xml(服务端)用通俗的话来讲dubboConsumer是调用方,dubboProvider是被调用方.

  Dubbo的框架图:

  

  怎么去理解这个框架呢?  简单的说就是对于服务端与客户端来说它们有一个公共的注册中心Registry ,服务端会将需要被调用的服务放到注册中心上去,客户端将会去注册中心里调用自己需要的服务,现在我的会搭建DUBBO的监控中心Monitor,用于对DUBBO调用的监控,包括了解接口调用的具体走向,黑白名单控制等(这上面有很多可视化的功能,后期可以自己摸索)。

  三:本地环境搭建

  在明白DUBBO整体结构之后,我们本地环境的搭建就变得容易了,我们首先需要一个注册中心,然后让我们的服务端和客户端都指向这个注册中心,然后客户端要调用哪个接口在dubboConsumer.xml(名字可以自定义,具体说明什么,请看下面实例)中说明一下,服务端要暴露哪个接口在dubboProvider.xml里说明一下。这样简单的DEMO就可以完成了。下面,LZ将自己的整个搭建过程详细的分享给大家。

  3.1.注册中心搭建(Registry)

  关于这个注册中心,LZ这里给到的是zookeeper.rar的压缩包。解压之后,我们需要在zookeeper注册中心中新建两个目录,一个叫data,一个叫logs。如图:

  

  当然LZ提供的这个压缩包已经建好了这两个文件夹。这两个文件夹简单的理解就是存放数据和日志的地方。然后我们点开目录中的conf文件夹,找到zoo.cfg,打开此配置文件,如图:

  

  1.控制心跳和超时,以毫秒为单位。

  2.初始化时间,以毫秒为单位。

  3.请求与响应时间,以毫秒为单位。

  4.数据存放的地方,这就是一开始LZ说的,新建文件夹data的地方。

  5.日志存放的地方,这就是一开始LZ说的,新建文件夹logs的地方。

  6.监听客户端连接的端口。

  下面就是启动注册中心了:你可以通过命令窗口的形式启动,也可以找到解压的zookeeper,E:\DubboxService\zookeeper\bin,双击zkServer.cmd即可启动注册中心。

  3.2.监控中心搭建(Monitor)

  关于监控中心,LZ这里给到的是dubbo-admin-2.5.4.war,这仅仅是个war包,还需要部署服务器。首先找一个tomcat服务器,把此war包拷贝到tomcat目录\webapps\ 下。 其次,将dubbo-2.5.3.jar文件拷贝到tomcat目录\lib\ 下。双击startup.bat启动tomcat。

  启动tomcat之后,我们找到此目录下:E:\DubboxService\tomcat_dubbox_admin_service\webapps\ROOT\WEB-INF,如图:

   

  打开dubbo.properties配置文件,如图:

  

  第一行:ip地址即为我们启动注册中在哪个地方的ip地址,注册中心默认端口号2181,当然你一台机器上起两个注册中心,那么另外一个注册中心的端口号就可以改为2182等。既然是监控中心,言外之意就是要知道注册中心在哪里,我去监控谁,这里的ip就告诉你了,你要去监控谁。

  第二行与第三行:我前面说过,这个监控中心中有很多可视化的管理功能,需要用户名和密码登录方可,这两行就是设置不同权限的密码。

  注意:在这里提醒一下大家,要先启动注册中心,然后在启动监控中心。

  在浏览器中输入localhost:8088(这个端口号是自己修改的,因为LZ的tomcat较多,有时候同时启动好几个tomcat,为避免冲突,故该之)如图:

  

  输入用户名及密码,这里的用户名及密码,是我们前面提到过的。如图:

  

  至此,监控中心以搭建完成。

  3.3.客户端搭建(Consumer)

  客户端以LZ实际的项目为例,以freight-enquiry-rest为客户端为例:

  首先:maven依赖Dubbo框架所需要的jar包:如图pom文件中添加:

  

  其次:在工程的配置中添加Dubbo客户端的配置文件:

  

  下面LZ来解释一下下图该配置文件:

  

  1.添加Dubbo的命名空间及约束规则,但是这个dubbo.xsd网上仓库下载不到,需要自己网上下载dubbo.xsd文件,然后手动加到eclipse中。如果不这样,下面用到的属性标签就会找不到,会报错。下面是添加dubbo.xsd的过程:

  

  图上标注的地方,相信广大博友都能看的懂。LZ建议,这个xsd文件放到一个何时的位置保存,以备后续用到。

  2.分析该配置项:

  Application你自己定义的名字。

  Address注册中心的地址(这个地址LZ的项目是统一管理的,放在diamond服务器上)。

  Check是否检查服务端是否存在。

  Id调用的接口名。

  Interface接口的全类名。

  Reggroup  默认是dubbo,环境隔离属性。

  最后,客户端的配置基本都以完成。

  3.4.服务端搭建(Provider)

  服务端以LZ实际的项目为例,以efcl-enquiry-ds为服务端为例:在这里不多说,基本上类似客户端的搭建步骤一样,只是服务端的配置信息与客户端的配置信息不同。LZ在这里只提供截图。(算我偷懒了)

  pom文件:

  

  工程目录结构:

  

  服务端配置文件内容:

  

  最后说一下:最后一行中的ref是该接口的具体实现类,就是spring容器中的bean的id。

  3.5.说在最后

  相信广大博友发现,LZ这里提到的服务端和客户端的配置文件中,像这种"${dubbo.address}"取值的地方,可能不解。前面也提到过,这是LZ本人实际项目把配置统一管理的效果。

  配置信息统一管理之Diamond服务:

  

  本地服务加载配置信息:

  

  所以这样以来,我刚才的服务端与客户端的配置文件中,这样就可以取到值了。

  客户端调用:

  

  -------------------------------------------------------------------------------------------------------------------------

  LZ现在对dubbo的使用只是冰山一角,DUBBO有非常丰富的配置标签属性,如果后续有兴趣可以去查阅这两个网址:

  DUBBO的使用场景,优势等

  http://www.iteye.com/magazines/103

  DUBBO的使用官网

  http://dubbo.io/User+Guide-zh.htm

Dubbo使用详解及环境搭建的更多相关文章

  1. CefSharp 集成谷歌浏览器详解---(一)环境搭建(没测试过,不知道好不好用)

    https://blog.csdn.net/zpyxman/article/details/78538808

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

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

  3. 详解intellij idea搭建SSM框架(spring+maven+mybatis+mysql+junit)(下)

    在上一篇(详解intellij idea 搭建SSM框架(spring+maven+mybatis+mysql+junit)(上))博文中已经介绍了关于SSM框架的各种基础配置,(对于SSM配置不熟悉 ...

  4. 详解Windows平台搭建Androiod开发环境

    http://blog.csdn.net/lyq8479/article/details/6348330 1.安装JDK 2.安装SDK管理器,安装SDK(在线.离线) 3.下载安装Eclipse 4 ...

  5. glusterfs详解及kubernetes 搭建heketi-glusterfs

    本文包含: gluster各存储卷详解.创建及使用 gluster-kubernetes搭建glusterfs存储 前言 传统的运维中,往往需要管理员手动先在存储集群分配空间,然后才能挂载到应用中去. ...

  6. 【嵌入式开发】 Bootloader 详解 ( 代码环境 | ARM 启动流程 | uboot 工作流程 | 架构设计)

    作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42462795 转载请著名出处 相关资源下载 :  -- u-boo ...

  7. Dubbo配置文件详解

    为新项目练手,把项目中用到的web service.RMI的服务改用Dubbo+Zookeeper+Spring,网上找到几篇不错的配置详解 1.此篇博文主要从以下几种配置方式来讲 XML 配置文件方 ...

  8. linux超级块和inode 详解 和 df 、du 命令详解与环境变量

    一.inode块,Unix文件的核心. 首先需要明白的是,在Unix操作系统中的任何资源都被当作文件来管理.如目录.光驱.终端设备等等,都被当作是一种文件.从这方面来说,Unix操作系统中的所有的目录 ...

  9. 图文详解如何快捷搭建LNMP服务环境

    上一篇与大家一起学习了下如何搭建LAMP环境的知识,今天小编再和大家分享下如何快捷地搭建LNMP环境,并搭建起一个网站.Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/S ...

随机推荐

  1. (转)ubuntu下如何查看软件安装目录以及安装版本

    1.查询版本 aptitude show 软件名 例如:aptitude show kde-runtime 显示如下: ****@ubuntu:~$ aptitude show kde-runtime ...

  2. boost vc编译

    0.下载:http://www.boost.org/ 1.编译b2.exe,bjam.exe. 双击根目录下面的bootstrap.bat文件,生成b2.exe,bjam.exe(或者使用vs的命令行 ...

  3. Android实现点击事件的4种方式

    一.通过在activity_main.xml中,按钮button控件中添加onclick事件实现 在   activity_main.xml 对应的按钮Button中加入下面红色事件 <Butt ...

  4. ASPCMS 多条件查询

    1. 表单样例: <form name="topFrm" id="topFrm" action="/search.asp"> & ...

  5. 【转】cocos2d-x windows开发环境配置

    声明:本教程在参考了以下博文,并经过自己的摸索后实际操作得出,本教程系本人原创,由于升级后的cocos2d-x有了一些变化,目前的博文还没有关于Cocos2d-x 2.2.1最新版搭建Android交 ...

  6. [C++程序设计]内置函数

    注意: 可以在声明函数和定义函数时同时写 inline,也可以只在其中一处声明inline,效果相同,都能按内置函数处理. 使用内置函数可以节省运行时间,但却增加了目标 程序的长度.因此一般只将规模很 ...

  7. ecos编译redboot,vmware运行redboot,执行hello world(图形配置)

    1- 下载源文件 :~/ecos$ ls -lrt total 80 drwxr-xr-x 7 XXXX XXXX  4096 Mar 27  2009 ecos-3.0 -rw-r--r-- 1 X ...

  8. Zend Studio 文件头和方法注释设置

    在zend studio中选择窗口->首选项->PHP–>编辑器 –>模板 –>新建 然后添加 funinfo或fileinfo 模板代码根据下边定义的COPY过去就可以 ...

  9. 15个顶级Java多线程面试题及回答

    Java 线程面试问题 在任何Java面试当中多线程和并发方面的问题都是必不可少的一部分.如果你想获得任何股票投资银行的前台资讯职位,那么你应该准备很多关于多线程 的问题.在投资银行业务中多线程和并发 ...

  10. HDU 1026 Ignatius and the Princess I(BFS+优先队列)

    Ignatius and the Princess I Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d &am ...