`
ynp
  • 浏览: 438817 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

你好 dubbo他弟:dubbox

阅读更多
你好 dubbo他弟:dubbox
---》下载dubbox
* dubbox扩展了dubbo,采用dubbox进行测试
* 地址:https://github.com/dangdangdotcom/dubbox
* 文档参考dubbo的文档,写的很详细。http://dubbo.io/User+Guide-zh.htm

---》编译dubbox
* mvn clean install -Dmaven.test.skip
* dubbox编译没啥问题,碰到问题可以再尝试编译一次,dubbo会遇到一些确库的问题,但网上都有解决方案;

---》安装zookeeper
* 大数据里必用的一个东东,也用到了这里,too strong!
* 下载:http://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.8/
* 解压
* 配置,
创建文件zoo.cfg,添加如下内容,dataDir和:dataLogDir改为自己的路径
tickTime=2000
initLimit=10
syncLimit=5
dataDir=D:/java/zookeeper-3.4.6/data
dataLogDir=D:/java/zookeeper-3.4.6/log
clientPort=2181
server.1=localhost:2287:3387

然后输入 bin/zkServer.cmd 启用zookeeper
---》撰写demo
* dubbox自带了demo,可以查看,比较复杂点,dubbo的比较简单,也有说明文档。
* 创建三个工程 myDubbox-api(开放的api)、myDubbox-provider(服务提供端)、myDubbox-consumer(服务调用端)

************  myDubbox-api 中代码************

》HelloService接口

public interface HelloService {
    String hello(String name);
}

************ myDubbox-provider 中的主要代码 ************

》HelloServiceImpl实现类

public class HelloServiceImpl implements HelloService {

    public String hello(String name) {
        return "hello " + name;
    }
}

》 DemoProvider (负责启动服务)
public class DemoProvider {
    public static void main(String[] args) throws IOException {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath*:/*.xml");
        context.start();
        System.out.println("服务已经启动...");
        System.in.read();
    }
}

》pom.xml 文件(myDubbox-api为依赖的api jar包)

   <dependencies>
        <dependency>
            <groupId>com.xxx</groupId>
            <artifactId>myDubbox-api</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
      <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.8.4</version>
        </dependency>
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency>
    </dependencies>

》duboox、spring相关配置文件(dubbo:registry为zookeeper的地址)

<?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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

    <dubbo:application name="demo-provider" owner="programmer" organization="dubbox"/>

    <dubbo:registry address="zookeeper://192.168.10.123:2181"/>
   
     <!-- 声明需要暴露的服务接口 -->
    <dubbo:service interface="com.xxx.demo.service.HelloService" ref="helloService" />

    <!-- 和本地bean一样实现服务 -->
    <bean id="helloService" class="com.xxx.demo.service.impl.HelloServiceImpl" />
</beans>

》log4j文件


************ myDubbox-consumer工程主要代码 ************

》Consumer(负责调用服务)
public class Consumer {

    public static void main(String[] args) throws Exception {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"dubbo-demo-consumer.xml"});
        context.start();

        HelloService demoService = (HelloService)context.getBean("helloService"); // 获取远程服务代理
        String hello = demoService.hello("world"); // 执行远程方法
        System.out.println( hello ); // 显示调用结果
    }

}

》duboox、spring相关配置文件(dubbo:registry为zookeeper的地址)

<?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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

    <dubbo:application name="demo-consumer" owner="programmer" organization="dubbox"/>

    <dubbo:registry address="zookeeper://192.168.10.123:2181"/>

    <dubbo:reference id="helloService" interface="com.xxx.demo.service.HelloService"/>

</beans>

》log4j文件


---》测试
* 运行DemoProvider注册服务
INFO [2016-05-25 16:57:35,354] com.alibaba.dubbo.registry.support.AbstractRegistry.register(302) |  [DUBBO] Register: dubbo://192.168.10.123:20880/com.xxx.demo.service.HelloService?anyhost=true&application=demo-provider&dubbo=2.8.4&generic=false&interface=com.xxx.demo.service.HelloService&methods=hello&organization=dubbox&owner=programmer&pid=8888&side=provider&timestamp=1464166655067, dubbo version: 2.8.4, current host: 127.0.0.1
INFO [2016-05-25 16:57:35,482] com.alibaba.dubbo.registry.support.AbstractRegistry.subscribe(325) |  [DUBBO] Subscribe: provider://192.168.10.123:20880/com.xxx.demo.service.HelloService?anyhost=true&application=demo-provider&category=configurators&check=false&dubbo=2.8.4&generic=false&interface=com.xxx.demo.service.HelloService&methods=hello&organization=dubbox&owner=programmer&pid=8888&side=provider&timestamp=1464166655067, dubbo version: 2.8.4, current host: 127.0.0.1
INFO [2016-05-25 16:57:35,590] com.alibaba.dubbo.registry.support.AbstractRegistry.notify(422) |  [DUBBO] Notify urls for subscribe url provider://192.168.10.123:20880/com.xxx.demo.service.HelloService?anyhost=true&application=demo-provider&category=configurators&check=false&dubbo=2.8.4&generic=false&interface=com.xxx.demo.service.HelloService&methods=hello&organization=dubbox&owner=programmer&pid=8888&side=provider&timestamp=1464166655067, urls: [empty://192.168.10.123:20880/com.xxx.demo.service.HelloService?anyhost=true&application=demo-provider&category=configurators&check=false&dubbo=2.8.4&generic=false&interface=com.xxx.demo.service.HelloService&methods=hello&organization=dubbox&owner=programmer&pid=8888&side=provider&timestamp=1464166655067], dubbo version: 2.8.4, current host: 127.0.0.1
服务已经启动...

* 运行Consumer查看调用结果

INFO [2016-05-25 17:00:12,170] com.alibaba.dubbo.remoting.transport.AbstractClient.<init>(105) |  [DUBBO] Start NettyClient yaoningpo/192.168.10.123 connect to the server /192.168.10.123:20880, dubbo version: 2.8.4, current host: 192.168.10.123
INFO [2016-05-25 17:00:12,208] com.alibaba.dubbo.config.ReferenceConfig.createProxy(423) |  [DUBBO] Refer dubbo service com.xxx.demo.service.HelloService from url zookeeper://192.168.10.123:2181/com.alibaba.dubbo.registry.RegistryService?anyhost=true&application=demo-consumer&check=false&dubbo=2.8.4&generic=false&interface=com.xxx.demo.service.HelloService&methods=hello&organization=dubbox&owner=programmer&pid=2500&side=consumer&timestamp=1464166811509, dubbo version: 2.8.4, current host: 192.168.10.123
hello world

---》部署 dubbo-admin,查看服务部署和调用情况
* 把dubbo-admin-2.8.4.war 部署到tomcat
* 修改 \dubbo-admin-2.8.4\WEB-INF\dubbo.properties 下的dubbo.registry.address
* 此文件还可以配置登录密码

参考:
http://www.cnblogs.com/yjmyzz/p/dubbox-demo.html
http://blog.csdn.net/ggibenben1314/article/details/47725241

分享到:
评论

相关推荐

    Apache Dubbo:Dubbo服务治理:限流与降级策略

    ### Apache Dubbo:Dubbo服务治理:限流与降级策略 #### 1. Dubbo服务治理概述 ##### 1.1 Dubbo服务治理的重要性 在微服务架构中,服务之间的交互频繁且复杂,特别是在高并发场景下,某些服务可能会因为请求量过...

    Apache Dubbo:Dubbo高级特性:服务降级与熔断实战

    Apache Dubbo:Dubbo高级特性:服务降级与熔断实战 Dubbo是著名的RCP框架,文档内有干货,提供代码和可复现的命令,值得借鉴。

    Apache Dubbo+安装部署+附在均衡+限流与降级+服务熔断等

    ApacheDubbo简介与快速入门 Dubbo核心概念:服务提供者与消费者 Dubbo的安装与环境配置 Dubbo服务注册与发现机制详解 Dubbo的RPC远程调用原理 Dubbo配置与参数详解 Dubbo服务治理:负载均衡与容错机制 Dubbo服务治理...

    Apache Dubbo:Dubbo服务治理:负载均衡与容错机制

    ### Apache Dubbo:Dubbo服务治理:负载均衡与容错机制 #### 一、Dubbo服务治理的重要性 在现代微服务架构中,服务间的交互变得日益频繁和复杂,因此需要一种有效的方式来管理这些服务,以确保整个系统的稳定性和...

    Apache Dubbo:Dubbo服务治理:服务路由与动态配置

    ### Apache Dubbo:服务治理——服务路由与动态配置 #### 一、服务治理的重要性 在当前流行的微服务架构中,由于各个服务之间存在着频繁而复杂的交互,如何有效地管理和控制这些服务成为了确保整个系统稳定性和可...

    Apache Dubbo:Dubbo高级特性:服务版本与分组

    - **配置文件方式**:在服务提供者和消费者的配置文件中,使用 `&lt;dubbo:service&gt;` 或 `&lt;dubbo:reference&gt;` 标签的 `version` 属性来指定服务版本。 - **服务提供者配置**: ```xml &lt;dubbo:service interface=...

    dubbox 2.8.4 版本 maven 依赖

    附件为:dubbox2.8.4 maven依赖文件。 使用方法:按照依赖关系,自行创建maven依赖文件夹后,将附件解压至指定文件夹即可使用。 文件夹目录:com/alibaba/dubbo/2.8.4/ &lt;groupId&gt;com.alibaba&lt;/groupId&gt; ...

    Apache Dubbo:Dubbo服务治理:服务熔断与超时重试

    ### Apache Dubbo:服务熔断与超时重试 #### 一、服务熔断基础 ##### 1.1 服务熔断的概念 服务熔断,作为一种重要的服务稳定性保障措施,在分布式系统中扮演着至关重要的角色。它的工作原理是,当某个服务节点...

    dubbo-admin:dubbo服务监控

    【标题】"dubbo-admin:dubbo服务监控" 指的是Dubbo生态系统中的一个关键组件,用于管理和监控Dubbo服务。Dubbo是阿里巴巴开源的一个高性能、轻量级的服务治理框架,广泛应用于分布式系统中。它提供了一整套服务治理...

    dubbo 基于dubbox 2.8.4 编译

    dubbo 基于dubbox 2.8.4 编译

    dubbox2.8.4

    - **API增强**:Dubbox提供了更丰富的API接口,如异步调用、超时重试等,增强了服务调用的灵活性。 - **协议扩展**:除了支持原生的Dubbo协议,还增加了REST、Hessian2等更多通信协议,扩大了服务集成的可能性。 ...

    Apache Dubbo:Dubbo核心概念:服务提供者与消费者

    ### Apache Dubbo:服务提供者与消费者核心概念详解 #### 一、Apache Dubbo概览 **Apache Dubbo**是一款高性能、轻量级的开源微服务框架,最初由阿里巴巴内部开发并在2008年开始使用,随后在2011年开源。自2017年...

    dubbox 2.8.4

    Dubbox,作为阿里巴巴开源的一款基于Java的RPC框架,是Dubbo的增强版,它在原版基础上提供了更多的特性和优化,以适应更广泛的开发需求。本文将深入探讨在JDK1.7.0_13和Win7 x86环境下编译的Dubbox 2.8.4版本的核心...

    dubbox2.8.4.rar

    2. **RPC 协议**:Dubbox 基于 Apache Dubbo 实现,支持多种远程调用协议,如基于 HTTP 的 REST、基于二进制的 Hessian 和 Burlap,以及基于 Java RMI 的 JMS 等。其中,最常用的是基于 TCP 的Dubbo 协议,它提供了...

    dubbox jar包2.8.4

    可用

    【案例】Dubbo稳定性:Nacos注册中心可用性问题复盘1

    本文以一个具体的案例分析了Dubbo框架与Nacos注册中心的配合中遇到的问题,揭示了在Nacos服务器宕机时,如何影响服务调用以及Dubbo如何处理这种异常情况。 首先,问题的背景是在一个使用Dubbo作为服务治理框架,...

    解决dubbo标签报错:dubbo.xsd

    dubbo开发eclipse配置需要dubbo开发eclipse配置需要dubbo开发eclipse配置需要

    dubbox-master.zip 最新的2018.0706

    1. **Spring 集成**:Dubbox 深度整合了 Spring,使得服务配置完全 Spring 化,可以无缝地与 Spring 框架集成,实现如 AOP、事务管理等功能。 2. **远程调用(RPC)**:Dubbo 提供了一种高性能、轻量级的基于 Java ...

    dubbo升级版jar

    1. **API及配置简化**:dubbox对原生Dubbo的API和配置进行了简化,使得开发者能够更快地上手和使用。 2. **更好的错误处理机制**:dubbox增强了异常处理机制,提供了更友好的错误提示,便于调试和问题定位。 3. **...

Global site tag (gtag.js) - Google Analytics