千家信息网

Dubbo是什么?如何使用Dubbo?

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,Dubbo是什么?如何使用Dubbo?这些问题可能是我们日常工作会见到的。通过这些问题,希望你能收获更多。下面是揭开这些问题的详细内容。Dubbox简介Dubbox 是一个分布式服务框架,其前身是阿里
千家信息网最后更新 2026年10月31日Dubbo是什么?如何使用Dubbo?

Dubbo是什么?如何使用Dubbo?这些问题可能是我们日常工作会见到的。通过这些问题,希望你能收获更多。下面是揭开这些问题的详细内容。

Dubbox简介

Dubbox 是一个分布式服务框架,其前身是阿里巴巴开源项目Dubbo ,被国内电商及互联网项目中使用,后期阿里巴巴停止了该项目的维护,当当网便在Dubbo基础上进行优化,并继续维护,为了与原有的Dubbo区分,故将其命名为Dubbox。

Dubbox 致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbox就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbox这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架。

节点角色说明:

  • Provider: 暴露服务的服务提供方。
  • Consumer: 调用远程服务的服务消费方。
  • Registry: 服务注册与发现的注册中心。
  • Monitor: 统计服务的调用次调和调用时间的监控中心。
  • Container: 服务运行容器。

调用关系说明:

  • 服务容器负责启动,加载,运行服务提供者。
  • 服务提供者在启动时,向注册中心注册自己提供的服务。
  • 服务消费者在启动时,向注册中心订阅自己所需的服务。
  • 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推
    送变更数据给消费者。
  • 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,
    如果调用失败,再选另一台调用。
  • 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计
    数据到监控中心。

Zookeeper 介绍

官方推荐使用 zookeeper 注册中心。注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小。

Zookeeper 是 Apacahe Hadoop 的子项目,是一个树型的目录服务,支持变更推送,适合作为Dubbox 服务的注册中心,工业强度较高,可用于生产环境。

Zookeeper 在Linux系统的安装

安装步骤:
第一步:安装 jdk
第二步:把 zookeeper 的压缩包上传到 linux 系统。
注意:Alt+P 进入SFTP ,输入put d:\zookeeper-3.4.6.tar.gz 上传
第三步:解压缩压缩包

tar -zxvf zookeeper-3.4.6.tar.gz

第四步:进入 zookeeper-3.4.6 目录,创建 data 文件夹。

mkdir data

第五步:进入conf目录 ,把 zoo_sample.cfg 改名为 zoo.cfg

cd confmv zoo_sample.cfg zoo.cfg

第六步:打开zoo.cfg , 修改 data 属性:dataDir=/root/zookeeper-3.4.6/data

Zookeeper 服务启动

进入bin目录,启动服务输入命令

 ./zkServer.sh start

输出以下内容表示启动成功

关闭服务输入命令

./zkServer.sh stop

输出以下提示信息

查看状态:

./zkServer.sh status

如果启动状态,提示

如果未启动状态,提示:

Dubbo本地 JAR包部署与安装

Dubbo的jar包并没有部署到Maven的中央仓库中,大家在Maven的中央仓库中可以查找到Dubbo的最终版本是2.5.3 , 阿里巴巴解散了Dubbo团队后由当当网继续维护此项目,并改名为 Dubbox ,坐标不变,版本变更了,但是并没有提交到中央仓库。
我们现在需要手动将Dubbox的jar包安装到我的本地仓库中。
先将dubbo-2.8.4.jar包放到d:\setup, 然后输入命令

mvn install:install-file -Dfile=d:\setup\dubbo-2.8.4.jar -DgroupId=com.alibaba -DartifactId=dubbo -Dversion=2.8.4 -Dpackaging=jar

下载网址:https://github.com/dangdangdotcom/dubbox/tree/dubbox-2.8.4
下载后直接解压,解压后,直接cd进入dubbo中进行maven的打包,然后在target目录就会生成dubbox-2.8.4.jar包

入门实战

  • 创建Maven工程(WAR)dubboxdemo-service ,在pom.xml中引入依赖
4.0.0cn.itcast.dubboxdemodubboxdemo-service0.0.1-SNAPSHOTwar                4.2.4.RELEASE                                org.springframework            spring-context            ${spring.version}                            org.springframework            spring-beans            ${spring.version}                            org.springframework            spring-webmvc            ${spring.version}                            org.springframework            spring-jdbc            ${spring.version}                            org.springframework            spring-aspects            ${spring.version}                            org.springframework            spring-jms            ${spring.version}                            org.springframework            spring-context-support            ${spring.version}                                       com.alibaba            dubbo            2.8.4                                        org.apache.zookeeper            zookeeper            3.4.6                            com.github.sgroschupf            zkclient            0.1                                   javassist            javassist            3.11.0.GA                               org.apache.maven.plugins    maven-compiler-plugin    2.3.2        1.7    1.7                            org.apache.tomcat.maven                tomcat7-maven-plugin                                                        8081                                        /                            
  • 在工程的webapps下创建WEB-INF文件夹,创建web.xml
                  contextConfigLocation        classpath:applicationContext*.xml              org.springframework.web.context.ContextLoaderListener     
  • 创建业务接口,创建包cn.ldc.org.dubbodemo.service,用于存放业务接口,创建接口
package cn.ldc.org.dubbodemo.service;/** * 业务接口 * @author Administrator * */publicinterface UserService {       public String getName();    }
  • 创建业务实现类
    创建包cn.ldc.org.dubbodemo.service.impl ,用于存放业务实现类。创建业务实现类:
package cn.ldc.org.dubbodemo.service.impl;import com.alibaba.dubbo.config.annotation.Service;import cn.itcast.dubbodemo.service.UserService;@Servicepublicclass UserServiceImpl implements UserService {    public String getName() {               return"itcast";    }}

注意:Service注解与原来不同,需要引入com.alibaba包下的

  • 编写配置文件

在src/main/resources下创建applicationContext-service.xml ,内容如下:

注意:dubbo:annotation用于扫描@Service注解。

  • 测试运行
tomcat7:run

服务消费者开发

开发步骤:
(1)创建Maven工程(WAR)dubboxdemo-web ,在pom.xml引入依赖 ,同"dubboxdemo-service"工程。区别就是把tomcat插件的运行端口改为8082 。
(2)在webapps目录下创建WEB-INF 目录,并创建web.xml

              CharacterEncodingFilter      org.springframework.web.filter.CharacterEncodingFilter                    encoding            utf-8                forceEncodingtrue                CharacterEncodingFilter        /*               springmvc  org.springframework.web.servlet.DispatcherServlet                contextConfigLocation        classpath:applicationContext-web.xml        springmvc    *

(3)拷贝业务接口
将"dubboxdemo-service"工程的cn.ldc.org.dubboxdemo.service 包以及下面的接口拷贝至此工程。
(4)编写Controller

package cn.ldc.org.dubboxdemo.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import cn.itcast.dubbodemo.service.UserService;@Controller@RequestMapping("/user")publicclass UserController {    @Reference    private UserService userService;        @RequestMapping("/showName")    @ResponseBody    public String showName(){        returnuserService.getName();    }       }

(5)编写spring配置文件
在src/main/resources下创建applicationContext-web.xml

                                                                               

测试运行

tomcat7:run

看完上述内容,你们对Dubbo有进一步的了解吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读。

服务 目录 消费 业务 提供者 消费者 工程 接口 内容 分布式 运行 仓库 文件 框架 输入 巴巴 中央 命令 地址 就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技企业 百单网互联网科技有限公司 互联网科技工作委员会主任 中国 科技 互联网 互联网女皇 腾讯科技 互联网科技美容 互联网科技生活的内容 玖二柒互联网科技公司待遇 贵州叶脉互联网科技有限公司所属行业 重庆互联网医院沙龙医盟信息科技 哈尔滨屹滨互联网科技有限公司 济南有互联网科技公司吗 西安有哪些互联网高科技企业 中国互联网公司的科技投入 互联网科技创新创业项目 10位科技互联网大佬 华人运通互联网科技公司 东风日产互联网科技公司叫什么 科技互联网企业在行动 科技发展第三阶段互联网时代 互联网科技名片 迪茉互联网科技 时间互联网络科技 华脉科技工业互联网产品 茂名市互联网科技产业园 济南有互联网科技公司吗 元气玛特互联网科技公司是外包吗 福仕德教育科技互联网 科技互联网经济论坛 北京军民互联网科技公司
0