【Dubbo】Dubbo(二)简单实践

2023-11-13

Dubbo(二)实践

安装注册中心:

下载zookeeper,在zookeeper路径下新增date文件夹存储数据,conf路径下新增zoo.cfg,编辑zoo.cfg,修改数据目录dataDir为新增的data文件夹,其他与zoo_sample.cfg一样:

在这里插入图片描述

在这里插入图片描述

执行bin目录里的zkServer.cmd启动注册中心

在这里插入图片描述

启动成功

在这里插入图片描述

执行zkCli.cmd ,连接zookeeper注册中心

在这里插入图片描述

zookeeper是一个树型的目录服务

在这里插入图片描述

get / 获取zookeeper根节点,ls / 查看根节点下的节点,发现zookeeper节点

在这里插入图片描述

create -e /zmxqq 123456 在根目录下创建临时节点,并赋值为123456

在这里插入图片描述

项目实现:

在分布式项目中,为符合分包原则,可以将公共内容,比如JavaBean、异常、接口等放到单独的工程中去。比如将接口统一写到一个工程中,例如zmxqq-dubbo-interface工程中存放所有的接口,在其他工程比如zmxqq-order-service业务工程如果想要调用接口,就需要在pom.xml中做如下配置,引入接口工程,此时业务工程就可以只关注自己的接口实现。

<dependency>
    <groupId>com.zmxqq</groupId>
    <artifactId>zmxqq-dubbo-interface</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency> 

接下来按照Dubbo的流程图来实现dubbo远程通信。即 消费者工程提供者工程 如何建立通信连接。

在这里插入图片描述

Dubbo流程中各个模块的配置【ssm项目——通过xml配置】
  1. 导入Dubbo依赖,在提供者工程的pom.xml

    <dependency>
       <groupId>com.alibaba</groupId>
       <artifactId>dubbo</artifactId>
       <version>2.8.4</version>
    </dependency>
    
  2. 引入注册中心zookeeper客户端(或其他注册中心)curator或zkclientpom.xml

    <dependency>
       <groupId>com.github.sgroschupf</groupId>
       <artifactId>zkclient</artifactId>
       <version>3.4.6</version>
    </dependency>
    
  3. 配置服务提供者provider ,在提供者工程的spring.xml文件中

    ① 指定当前服务/应用的名字 spring.xml

    <!-- dubbo配置 -->
     <!-- 提供者应用信息,用于订单处理 -->
    <dubbo:application name="dubbo-service-order" />
    

    ② 注册服务提供者到注册中心,指定注册中心的位置 spring.xml

    <!-- 使用zookeeper注册中心暴露服务地址 -->
    <dubbo:registry address="zookeeper://127.0.0.1:2181" />
    

    ③dubbo协议在哪个端口暴露服务 spring.xml

    <dubbo:protocol name="dubbo" port="20880" />
    

    ④声明需要暴露的服务接口 ,这样消费者就可以调用这个服务spring.xml

    <!-- 声明需要暴露的服务接口,ref指向服务的真正实现对象 -->
    <dubbo:service interface="org.apache.dubbo.demo.DemoService" ref="demoService" />
    
    <!-- 服务的实现,相当于本地的一个bean,可以通过@Autowired等注入 -->
    <bean id="demoService" class="org.apache.dubbo.demo.provider.DemoServiceImpl" />
    

    【也可以在dubbo.properties中配置好注册中心地址和通信端口号,再使用${}动态指定。例如:】

    dubbo.properties

    zookeeper.address=zookeeper://127.0.0.1:2181
    dubbo.port=20880
    

    spring.xml

    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">  
            <list>    
                <value>classpath:config/dubbo.properties</value>
            </list>   
        </property>  
    </bean>
    <dubbo:protocol name="dubbo" port="${dubbo.port}" />
    
  4. 配置消费者consumer,同样在消费者工程的pom.xml 中导入Dubbo依赖,引入zookeeper客户端。此处的spring.xml为消费者工程中的配置文件,与3不同。

    ①指定当前服务/应用的名字 spring.xml

    <dubbo:application name="dubbo-service-order" />
    

    ② 注册消费者到注册中心,指定注册中心的位置 spring.xml

    <!-- 使用zookeeper注册中心暴露服务地址 -->
    <dubbo:registry address="zookeeper://127.0.0.1:2181" />
    

    ③声明需要调用的远程服务的接口 spring.xml

    <dubbo:reference id="demoService" interface="org.apache.dubbo.demo.DemoService" />
    

    这样,注册中心的demoService接口就可以在消费者工程里通过@Autowired等注入并使用了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Dubbo】Dubbo(二)简单实践 的相关文章

随机推荐

  • Flutter 实现文字向上/下滚动效果(八)

    实现原理 Flutter ListView 定时器 Timer 每隔一段时间通过控制器 scrollController 主动跳转 animateTo 下一条目 可以自定义动画 跳转时间 到达底部时从头开始 循环往复 import dart
  • 学习笔记之什么是持久化和对象关系映射ORM技术

    学习笔记之什么是持久化和对象关系映射ORM技术 by Naven at 2005 09 19 何谓 持久化 持久 Persistence 即把数据 如内存中的对象 保存到可永久保存的存储设备中 如磁盘 持久化的主要应用是将内存中的数据存储在
  • 你认为DAO是否可行?新年计划,卯足干劲,兔必No.1

    文章目录 课前小差 聚沙成塔 社会价值 DAO是什么 国产化 商业化回报 写在最后 课前小差 哈喽 大家好 我是几何心凉 这是一份全新的专栏 唯一得倒CSDN王总的授权 来对于我们每周四的绿萝时间 直达CSDN 直播内容进行总结概括 让大家
  • [mysql]游标和触发器

    目录 游标 或光标 定义 使用过程 示例 总结 触发器 应用场景 定义 使用 创建 查看 删除 示例 一个注意点 优缺点 拓展 MySQL 8 0的新特性 全局变量的持久化 游标 或光标 定义 游标是一种 能够对结果集中的每一条记录进行定位
  • Jetson nano之ROS入门 - - 机器人建模与仿真

    文章目录 前言 一 URDF建模 1 URDF语法详解 a robot b link c joint 2 URDF机器人建模实操 二 Xacro宏优化 1 Xacro宏语法详解 2 Xacro建模实操 三 Rviz与Gazebo仿真 1 G
  • 【人体姿态】Convolutional Pose Machines

    Wei Shih En et al Convolutional Pose Machines CVPR 2016 本论文将深度学习应用于人体姿态分析 同时用卷积图层表达纹理信息和空间信息 目前在2016年的MPII竞赛中名列前茅 作者在git
  • 51单片机之串口通讯应用实例(逻辑分析仪调试)

    硬件 STC89C52RC 开发工具 Keil uVision4 前言 8051是一款很经典的 历史悠久的单片机 作为一款入门级的单片机8051受到很多初学者的欢迎 89c52是8051系列的成员之一 拥有8K字节程序存储空间 512字节随
  • 基于Python Django Mysql数据库 的电商系统实现

    基于Python Django的电商系统实现 最近需要基于Django实现一个电商系统 目前已实现了基本功能 整个系统结构相对简单 没有进行前后端分离 使用的django的最简单的Template模板前后端交互模式 这个项目属于入门级项目
  • 环保行业如何开发废品回收微信小程序

    废品回收是近年来受到越来越多人关注的环保行动 为了推动废品回收的普及和方便 我们可以利用微信小程序进行制作 方便人们随时随地参与废品回收 首先 我们需要注册并登录乔拓云账号 并进入后台 乔拓云是一个提供微信小程序制作平台的服务商 非常适合我
  • php user.ini详解

    0x00 前言 本篇主要是讲解分析一下user ini相关的内容 因为这个知识点涉及到文件上传的绕过 0x01 正文 user ini 文件是PHP的配置文件 用于自定义PHP的配置选项 该文件通常位于PHP安装目录的根目录下 或者在特定的
  • 2. 依赖管理和自动配置

    文章目录 2 1 依赖管理 2 1 1 什么是依赖管理 2 1 2 修改自动仲裁 默认版本号 2 2 starter 场景启动器 2 2 1 starter 场景启动器基本介绍 2 2 2 官方提供的 starter 2 2 2 1 地址
  • PyTorch基础入门六:PyTorch搭建卷积神经网络实现MNIST手写数字识别

    1 卷积神经网络 CNN 简介 关于什么是卷积神经网络 CNN 请自行查阅资料进行学习 如果是初学者 这里推荐一下台湾的李宏毅的深度学习课程 链接就不给了 这些资料网站上随处可见 值得一提的是 CNN虽然在图像处理的领域具有不可阻挡的势头
  • ps2020无法显示最近打开

    首选项 常规 选择 自动显示主屏幕
  • 关于BeanUtils.copyProperties() 用法及区别

    这两个类在不同的包下面 而这两个类的copyProperties 方法里面传递的参数赋值是相反的 例如 a b为对象BeanUtils copyProperties a b BeanUtils是org springframework bea
  • FakeMsdMiner挖矿病毒分析报告

    近日 亚信安全截获新型挖矿病毒FakeMsdMiner 该病毒利用永恒之蓝 永恒浪漫等NSA漏洞进行攻击传播 该病毒具有远控功能 可以获取系统敏感信息 其通过修改HOST文件方式截获其他挖矿病毒的成果 由于该病毒的挖矿程序伪装成微软系统服务
  • [note] 深度学习 tensorflow 笔记(3) cnn 卷积神经网络

    假设我们想要辨识一张图片里面是不是有猫咪的存在 这只猫咪可以在图片的任何位置 什么办法才能辨别这个图片里面有没有猫呢 一个很简单的想法就是 将图片分成一些子图片的集合 逐个辨别子图片里面有没有猫咪 的确 卷积神经网络就是这样做的 但是 分割
  • Android高德地图自定义Mark并实现聚合效果

    Android高德地图自定义Mark并实现聚合效果 起因 公司本来项目里面用到了高德地图 然后最近老板看见别人的APP里面有个聚合的这个功能 老板 这个效果能不能实现 我也要 没有办法因为以前没有做过高德地图点聚合这个东西 然后只能勉强的答
  • Brocade FOS下载 博科光纤交换机固件升级

    百度网盘 https pan baidu com s 1lCAsjoDG3rMXs7uYoJETWA 输入码 7nv4 1 BT下载 比如用迅雷 17F8E2FAC8CD08C682B3D2A5CC294B48B1DA2ED6 7313C1
  • 韦东山 IMX6ULL和正点原子_「正点原子Linux连载」第四十三章Linux设备树(一)

    1 实验平台 正点原子Linux开发板 2 摘自 正点原子I MX6U嵌入式Linux驱动开发指南 关注官方微信号公众号 获取更多资料 正点原子 前面章节中我们多次提到 设备树 这个概念 因为时机未到 所以当时并没有详细的讲解什么是 设备树
  • 【Dubbo】Dubbo(二)简单实践

    Dubbo 二 实践 安装注册中心 下载zookeeper 在zookeeper路径下新增date文件夹存储数据 conf路径下新增zoo cfg 编辑zoo cfg 修改数据目录dataDir为新增的data文件夹 其他与zoo samp