`
sunbin
  • 浏览: 354288 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

dubbo 入门教程 基于zookeeper

 
阅读更多

 dubbo大致分三步操作

1、搭建服务器(以后写)

2、写服务端程序并且将被调用的链接注册到dubbo(生产)

3、写客户端、链接dubbo,调用服务端程序(消费)

实际上我们可以认为写的是ejb程序,一个服务端、一个客户端。只不过他们之间不之间调用

服务端将自己的链接注册到dubbo,客户端联接dubbo,dubbo再调用服务端。

 

以下是网上copy的,没有测试过,但看样子是可以运行的。我们实际的代码也是类似的。

 

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

上面的话是写给我自己的下面的教程是写给大家的。哈哈有想法的可以评论

 

第一步spring官网下载一个spring比较全的包。我用的还是以前的3.2 

第二步新建一个web项目。将spring的包放在lib下面。 

第三步dubbo.io官网的版本库下载dubbojar包。

第四步Apache的官网下载zookeeper的项目。 zookeeper的安装方法在上篇文章讲过了。拿出zookeeper根目录下面的zookeeper.jar就可以。

附加一些jar 工程下面有的可以无视。slf4j-api-1.7.5.jarslf4j-log4j12-1.7.5.jarnetty-3.7.0.Final.jarjetty-util-6.1.26.jarjetty-6.1.26.jarcommons-cli-1.2.jar 这些jarzookeeper3.5lib下面都有。直接拷贝就可以。

还有一个就是zkclient-0.1.0.jar 一定要下载I0Itec的,这个应该不是zk开发的。这个我也忘记在哪里下载的了。不好意思。要是需要的可以在下面评论留个邮箱什么的。

 

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

下面新建一个接口: 

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

package com.unj.dubbotest.provider;

public abstract interface DemoService {

 public abstract String build(String name) throws Exception;

}

新建一个实现类

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

package com.unj.dubbotest.provider.impl; 

import com.unj.dubbotest.provider.DemoService; 

public class DemoServiceImpl implements DemoService { 

 public String build(String name) throws Exception { 

  System.out.println("name is === " + name); 

  return "你好名称是 ------------- >>>> " + name; 

 } 

}

src下面新建一个applicationContext.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"

 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

        ">

 

 <!-- 具体的实现bean -->

 <bean id="demoService" class="com.unj.dubbotest.provider.impl.DemoServiceImpl" />

  <!-- 提供方应用信息,用于计算依赖关系 --> 

 <dubbo:application name="xixi_provider" /> 

 <!-- 使用multicast广播注册中心暴露服务地址 

  <dubbo:registry address="multicast://224.5.6.7:1234" />--> 

 <!-- 使用zookeeper注册中心暴露服务地址 --> 

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

 <!-- dubbo协议在20880端口暴露服务 --> 

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

 <!-- 声明需要暴露的服务接口 --> 

 <dubbo:service interface="com.unj.dubbotest.provider.DemoService"  ref="demoService" />

 </beans>

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

最后写一个启动服务的类(用过cxf的都知道)

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

package com.unj.dubbotest.provider;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Provider {

    public static void main(String[] args) throws Exception {

     ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"applicationContext.xml"});

        context.start();

        System.out.println("新浪微博:疯狂的xxx.");

        System.in.read(); // 按任意键退出

    }

}

启动zookeeper。在执行启动服务的类控制台打印了如下信息

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

log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment).

log4j:WARN Please initialize the log4j system properly.

SLF4J: This version of SLF4J requires log4j version 1.2.12 or later. See also http://www.slf4j.org/codes.html#log4j_version

新浪微博:疯狂的xxx.

说明启动成功了。

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

下面在做客户端。同意新建一个web项目把服务端的jar全部拷贝到lib下面去。

新建一个接口包名和服务端一样这边接口其实要在服务器那边拿过来的。 

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

package com.unj.dubbotest.provider;

public abstract interface DemoService {

 public abstract String build(String name) throws Exception;

}

src下面新建一个 applicationConsumer.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"

 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 

        ">

 <!-- consumer application name -->

 <dubbo:application name="consumer-of-helloworld-app" />

 <!-- registry address, used for consumer to discover services -->

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

 <dubbo:consumer timeout="5000" />

 <!-- which service to consume? -->

 <dubbo:reference id="demoService"

  interface="com.unj.dubbotest.provider.DemoService" />

</beans>

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

新建一个main类来测试: 

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

package com;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.unj.dubbotest.provider.DemoService; 

public class Main {

 public static void main(String[] args) {

  ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(

    new String[] { "applicationConsumer.xml" });

  context.start();

  DemoService demoService = (DemoService) context.getBean("demoService"); // get 

  // service 

  // invocation 

  // proxy

   String hello = ""; 

  try {

   hello = demoService.build("新浪微博:疯狂的xxx");

  } catch (Exception e) {

   // TODO Auto-generated catch block

   e.printStackTrace();

  } // do invoke!

  System.out.println(Thread.currentThread().getName() + " " + hello);

 }

}

 

打印信息如下: 

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

log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment). 

log4j:WARN Please initialize the log4j system properly. 

main 你好名称是 ------------- >>>> 新浪微博:疯狂的xxx

 

在看一下服务器端打印的信息

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

 

 新浪微博:疯狂的xxx

name is==xxx

name is== 新浪微博:疯狂的xxx

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

 

 

 

 

从上午发布的安装zookeeper 遇到的第一个错误开始一直在搞dubbo 中午吃了饭睡了会觉。中间错误一个又一个慢慢的都解决了。小有成就,哈哈。算这个星期天没有白费吧。

学习的过程值得留恋。分享一下吧 

只是之前听网友提过dubbo这个东西一直都没有百度和使用过。前天答应老板我们框架中留一个口出来dubbo 。今天天气热就在宿舍研究吧。

 

首先是百度知道是做什么的后来就开始找教程但是大家都知道百度的教程基本都是一个模板。看了大概有20基本就换换字代码都是一样的。试了一下不行也不报错也不知道在哪里入口。后来想想一定是不行换一种方式吧直接用main方法启动服务的方式。百度了一推还是一样的模板就是maven 但是哥没有使用过maven。在关键的时候还要研究一下maven 比较耗时间了。后来准备放弃的时候聊会天,继续找有权威性的找到dubbo的团队提供出来的。继续发现springxml报错。后来浏览器访问啊 ping 各种尝试最后不行。再微博上看了dubbo发布的14年的时候域名绑定就换成dubbo.io后来在这个网上看到了一个下载。是github 然后进去看看。下载了2demo。一个是基于http的,还有一个是基于ws也就是websevice的。看了一下都是基于maven的。有点恼火了。刚刚开始百度的时候第一步就是用zookeeper。最后官网给的例子不是zookeeper。继续看之前的例子,(总不能放弃吧)。还是没有结果。想想先一步一步来吧。于是新建了一个web项目放入spring对应的包。找到dubbo的包放了进来,然后找到zookeeper的包放进来,写一个接口写一个实现类,配置文件就用的百度过来的,开始不明白,看了很多资料自己也开始慢慢地理解过来了,于是在main里面启动服务,错误,说找不到类,好办了我想一定是我的zookeeperclient没有加,但是我是服务器这边的应该是不要的想想  先加进去试试。服务器启动再次报错。有看了一下包名不是这个开放团队的client。再找放进去试试。还是对少各种class 一个一个找放进去。还不错对了。服务启动  不抱错了,然后任何提示启动成功的标志都没有之后就学网上的人start 后面打印一句话。打印不出来,怎么回事呢。难道还是不对,百思不得其解。后来在想想我是同时zookeeper注册的我的zookeeper没有开。打开zookeeper。再次启动对了。那叫一个兴奋。服务端就这样好了。 

 

客户端就直接copy网上的代码,调用成功。开始聊天吹牛逼、。终于成功了。后来发现我的服务端和客户端都在一个项目上面的。然后在新建一个项目放客户端。继续报错。说找不到方法。找到对应的类下面的方法。是有的啊。难道是缓存。clear一下。还是不对。头晕了。准备放弃了。实在没有办法了。准备换http或者是ws的了。休息一下喝杯水。想到了难道是版本的问题。找到上午发布文章的zookeeper下载的连接,下载了一个3.3.6的版本的zookeeper.jar放进去,好了。测试几次真的是好了。哈哈 

 

 

分享到:
评论

相关推荐

    dubbo+sping+zookeeper整合例子完整版(包括步骤文档和所有jar)

    【描述】该资源是一个全面的教程,涵盖了将Dubbo、Spring和Zookeeper整合到一起的实际操作步骤,包括完整的配置文件和必要的jar包。遗憾的是,它没有涉及Dubbo与Spring Boot、Redis、Zookeeper、Seata和RabbitMQ的...

    dubbo+zookeeper入门资源

    【描述】"dubbo+zookeeper入门资源,可直接使用,适合新手练习使用"意味着这个压缩包包含了学习和实践这两个技术的基础材料。通过这个资源,初学者可以了解如何配置和使用Dubbo与Zookeeper来实现服务间的通信和管理...

    dubbo.war+dubbo-monitor+zookeeper.rar

    总的来说,这个组合提供了构建基于Dubbo的分布式系统的基础环境。通过dubbo.war,我们可以管理和监控Dubbo服务;dubbo-monitor-simple-2.5.3-assembly.tar.gz提供了可视化的监控界面;而zookeeper-3.4.12.tar.gz则...

    Dubbo demo register monitor zookeeper

    5. **dubbo-registry-simple-2.0.12-assembly.tar.gz**: 这是 Dubbo 的简单注册中心组件,也是基于 Zookeeper 实现的。注册中心负责管理服务的生命周期,包括服务的注册、发现、下线等操作,使得服务提供者和消费者...

    分布式集群dubbo+zookeeper.pdf

    例如,在基于SpringBoot的应用中,可能会使用Dubbo作为微服务框架,构建出一个服务集群。 分布式系统则更进一步,它将大型业务拆分成多个子模块,每个子模块负责一部分功能,然后分别部署在不同的服务器上。这种...

    springBoot+dubbo+zookeeper分布式微服务

    在"springBoot+zookeeper+dubbo"的项目中,SpringBoot作为基础,负责初始化应用环境和配置管理;Dubbo则作为服务治理框架,定义服务接口,实现服务的远程调用;Zookeeper作为服务注册与发现的中间件,维护服务提供者...

    springboot+dubbo+zookeeper实现多个生产者、消费者的负载均衡

    综上所述,本项目通过SpringBoot作为基础框架,利用Dubbo实现服务的提供与消费,借助Zookeeper进行服务注册与发现以及负载均衡,通过Maven进行模块化管理,构建了一个高可用、可扩展的分布式服务系统。

    Dubbo+zookeeper 入门简单实例

    【描述】"Dubbo入门实例Demo"暗示我们将通过一个简单的示例来了解如何在实际项目中使用Dubbo。这个Demo通常会包括创建服务提供者(Provider)和服务消费者(Consumer),并利用Zookeeper作为服务中心进行连接。 **...

    dubbo-zookeeper搭建

    本教程将详细讲解如何搭建一个基于Dubbo和Zookeeper的环境,以实现微服务架构中的服务治理。 首先,我们要理解Dubbo的核心概念。Dubbo是由阿里巴巴开发的一款高性能、轻量级的Java RPC框架,它提供了服务发现、服务...

    zookeeper3.8和Dubbo安装包

    在IT行业中,Zookeeper和Dubbo是两个非常重要的开源框架,尤其在分布式系统和服务治理领域。本篇文章将详细探讨这两个组件及其安装包的使用。 **Zookeeper 3.8** Zookeeper是由Apache软件基金会开发的一个分布式...

    springboot集成dubbo、zookeeper,基于注解形式+源代码+文档说明

    本项目是集成dubbo和zookeeper的一个练习项目,基于注解的配置形式,没有xml文件 ## 环境 #### 操作系统:ubuntu 16.04 LTS #### 开发工具:Idea ## 搭建过程 ### 一、安装zookeeper #### 1、下载zookeeper源码包 &gt;...

    springBoot2.0.1、zookeeper、dubbo、activemq、redis整合分布式架构

    在构建分布式架构的过程中,SpringBoot 2.0.1、Zookeeper、Dubbo、ActiveMQ 和 Redis 是五款至关重要的技术组件。它们各自扮演着不同的角色,共同为系统的高效运行和扩展性提供支持。 首先,SpringBoot 2.0.1 是...

    springboot-dubbo-zookeeper完整示例

    通过以上步骤,我们就构建了一个基于SpringBoot、Dubbo和Zookeeper的完整示例。这个示例展示了如何在SpringBoot环境中实现服务的发布与消费,以及如何利用Zookeeper进行服务的注册与发现,为微服务架构提供了基础的...

    springboot+dubbo+zookeeper构建的分布式调用服务框架

    在这个"springboot+dubbo+zookeeper"的项目中,开发者使用SpringBoot作为基础框架,构建微服务应用。SpringBoot的自动配置特性使得初始化和配置过程更加简洁。然后,Dubbo被引入作为服务治理框架,它允许服务提供者...

    springboot整合dubbo+zookeeper案例

    通过这个案例,你可以学习到如何在SpringBoot环境中构建和管理基于Dubbo的服务,以及如何利用Zookeeper进行服务注册和发现。同时,掌握Tomcat的部署和管理也是一项重要的技能。理解这些技术的原理和实践,将有助于你...

    dubbo+zookeeper+spring+springMVC+mybatis

    【标题】"dubbo+zookeeper+spring+springMVC+mybatis" 描述了一个基于这些技术构建的服务消费方与服务提供方的项目架构。在这个架构中,`Dubbo`是核心的服务框架,它负责服务的注册与发现;`Zookeeper`作为注册中心...

    Spingboot-Dubbo-zookeeper实例-带参数

    Zookeeper是Apache的一个分布式协调服务,它是基于分布式应用程序的配置管理、命名服务、集群管理和同步服务的工具。在Dubbo中,Zookeeper作为服务注册中心,负责存储和查找服务提供者和消费者的信息。 在这个...

    Springboot整合Dubbo/ZooKeeper_demo

    在本示例中,Spring Boot被用作应用程序的基础框架,为Dubbo的集成提供了一个友好的开发环境。 Dubbo是一款高性能、轻量级的Java RPC框架,它提供了服务治理的全套解决方案,包括服务注册、服务发现、负载均衡、...

    dubbo+zookeeper demo

    《Dubbo与Zookeeper整合详解——基于SpringBoot的XML配置》 在分布式系统中,服务治理扮演着至关重要的角色,而Dubbo和Zookeeper作为两个杰出的组件,常常被用来构建高效、稳定的服务架构。本教程将深入探讨如何将...

    SpringBoot整合dubbo的demo,基于yml文件和zookeeper集群

    这个项目为开发者提供了一个实战模板,展示了如何在SpringBoot环境中快速搭建一个基于Dubbo的微服务系统,并利用Zookeeper进行服务治理。通过这种方式,我们可以轻松地构建、扩展和管理分布式应用程序,实现高可用和...

Global site tag (gtag.js) - Google Analytics