dubbo生产者和消费者

官网:http://dubbo.io/

1.xml配置

(1)生产者:(下面该配置既是生产者也是消费者)

provider.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
    <bean class="com.yiran.service.gin.api.GinApiApplicationContext" />

<dubbo:application name="项目名字" organization="dubbox"/>
    <dubbo:registry address="${dubbo.registry.address}" />
    <dubbo:protocol name="dubbo" port="${dubbo.protocol.port}" />
    <!-- 扫描注解包路径,多个包用逗号分隔,不填pacakge表示扫描当前ApplicationContext中所有的类 -->
    <dubbo:annotation package="包名" />

<dubbo:service interface="com.xxx.service.xxx.query.xxxService" ref="xxxServiceImpl" filter="Profiling">
        <dubbo:method name="queryGoodsList">
            <dubbo:argument index="1"/>
        </dubbo:method>
        <dubbo:method name="queryFavoriteGoodsInfoList"/>
        <dubbo:method name="queryMallRecGoodsInfo"/>
    </dubbo:service>

<!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
    <dubbo:reference id="xxxQueryService" interface="com.xxx.service.xxx.query.xxxQueryService" check="false">
    </dubbo:reference>
</beans>

(2)消费者:

consumer.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
      <bean class="x.x.x.xxApplicationContext" />

<dubbo:application name="项目名字" organization="dubbox"/>
     <!-- dubbo 注册中心的地址 -->
     <dubbo:registry address="${address}" />

<!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
     <dubbo:reference id="userService" interface="x.x.x.userService" check="false">
     </dubbo:reference>
</beans>

2.注意事项:

(1)消费者和生产者的请求和返回格式一致;(生产者打jar包给消费者)

(2)请求类 和响应class 都需要序列化,并且响应类需要有空的构造函数。(否则new response class时会报错)

3.telnet测试(序列化测不出来)

telnet localhost 20880(provider dubbo server port)

正常情况下,进入telnet窗口,键入回车进入dubbo命令模式。

ls 查看提供的服务

invoke x.x.x..userService.getUserInfo({"userId":"10000"})看返回结果

时间: 2024-08-28 21:59:42

dubbo生产者和消费者的相关文章

[Dubbo开发]配置简单的生产者和消费者

配置好jdk1.7.Zookeeper和Maven环境之后,开始尝试第一次搭建简单的dubbo生产者和消费者. dubbo服务的原理,引用经典的官方图(cr.Dubbo官网): 关于Dubbo的原理和机制,在此不做赘述,具体可以查询官方文档:http://dubbo.apache.org/#!/?lang=zh-cn. 接下来开始搭建生产者和消费者. 1.生产者(Provider) 创建一个maven项目, 代码如下: (1)接口ProviderService.java package com.

zookeeper客户端命令行查看dubbo服务的生产者和消费者

假设zookeeper安装在192.168.5.130这台服务器上,现在我们通过命令行查看dubbo在zookeeper注册服务的生产者和消费者信息 首先通过命令切换到/usr/zookeeper-3.4.10/bin目录,然后输入 ./zkCli.sh -server 192.168.5.130:2888 (2888为zookeeper在服务器上提供服务的端口)会看到如下截图: 然后在命令行再输入: ls / 查看目录信息,就能看到注册的dubbo服务,截图如下: 3 在命令行依次输入: ls

多线程操作实例——生产者与消费者

面对多线程学习生产者与消费者是最基本的实例 对于java后端开发的人员必须要掌握,还有考研考试计算机操作系统的同鞋. 下面是三个实例对于生产者与消费者的的例子,层层递进,逐步解决问题. 问题:生产者——设置信息名字name,和内容content 消费者——负责取出设置的信息. 一.基本实现 由于线程的不确定性可能出现以下问题: (1)消费者取出的信息不匹配,即不是由同一个生产者设置的信息 (2)生产者生产了多个信息,消费者才开始取出信息,或消费者取出的重复的信息. 上面的问题下面会逐一解决,下面

同步函数 生产者和消费者模式 加强版(多人生产和多人消费)

曾经搞了半天, 生产者和消费者模式  加强版(多人生产 多人消费 ).. 以前的代码格式就不再吐槽了(以后努力改进) //输出结果是一个无限循环 import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * 多个生产者&多个消费者模式 * 多个生产者不断生产,多个消费者不停的消费

Parallel Programming-实现并行操作的流水线(生产者、消费者)

本文介绍如何使用C#实现并行执行的流水线(生产者消费者): 流水线示意图 实现并行流水线 一.流水线示意图 上图演示了流水线,action1接收input,然后产生结果保存在buffer1中,action2读取buffer1中由action1产生的数据,以此类推指导action4完成产生Output. 以上也是典型的生产者消费者模式. 上面的模式如果使用普通常规的串行执行是很简单的,按部就班按照流程图一步一步执行即可.如果为了提高效率,想使用并行执行,也就是说生产者和消费者同时并行执行,该怎么办

java多线程(同步与死锁问题,生产者与消费者问题)

首先我们来看同步与死锁问题: 所谓死锁,就是A拥有banana,B拥有apple. A对B说:你把apple给我,我就把banana给你. B对A说:你把banana给我,我就把apple给你. 但是A和B都在等待对方的答复,那么这样最终的结果就是A得不到apple,B也得不到banana.这种死循环就是死锁. 于是我们可以模拟上面的描述,写出以下代码: 类A代表A这个人, public class A { public void say(){ System.out.println("A sai

生产者与消费者问题

***********************************************声明****************************************************** 原创作品,出自 "晓风残月xj" 博客,欢迎转载,转载时请务必注明出处(http://blog.csdn.net/xiaofengcanyuexj). 由于各种原因,可能存在诸多不足,欢迎斧正! *******************************************

使用JUC并发工具包的Lock和Condition,实现生产者和消费者问题中的有界缓存

JDK5.0之前,用java实现生产者和消费者的唯一方式就是使用synchronized内置锁和wait/notify条件通知机制.JDK5.0之后提供了显示锁Lock和条件队列Condition,与内置锁和内置条件队列相对应,但是显示的锁和条件队列,功能更强大,更灵活.此外JDK5.0之后还提供了大量很有用的并发工具类,如BlockingQueue等,基于这些数据结构,能够方便.快速.高效的构建自己应用需要的效果.这里我们简单使用下显示锁和条件队列,来模拟有界缓存的实现,功能类似于JDK内置的

Java中的生产者、消费者问题

Java中的生产者.消费者问题描述: 生产者-消费者(producer-consumer)问题, 也称作有界缓冲区(bounded-buffer)问题, 两个进程共享一个公共的固定大小的缓冲区(仓库). 其中一个是生产者, 用于将产品放入仓库: 另外一个是消费者, 用于从仓库中取出产品消费. 问题出现在当仓库已经满了, 而此时生产者还想向其中放入一个新的产品的情形, 其解决方法是让生产者此时进行等待, 等待消费者从仓库中取走了一个或者多个产品后再去唤醒它. 同样地, 当仓库已经空了, 而消费者还