Dubbo与Zookeeper、SpringMVC整合和使用(入门级)

这篇具有很好参考价值的文章主要介绍了Dubbo与Zookeeper、SpringMVC整合和使用(入门级)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

介绍就不过多的说明。可以参考http://blog.csdn.net/congcong68/article/details/41113239博客里面写的相关介绍。

后续会补充完善SpringMVC部分

微信扫一扫,支持一下我的个人微信小程序

项目码云GIT地址:https://gitee.com/xshuai/dubbo/

开发工具 MyEclipse 10.7
JDK 1.7
容器 Tomcat 8(运行dubbo)
zookeeper版本 zookeeper-3.4.6
dubbo dubbo-admin-2.5.3

dubbo-admin-2.5.3下载地址:http://pan.baidu.com/s/1bozCMzP

zookeeper下载地址:http://www-eu.apache.org/dist/zookeeper/zookeeper-3.4.6/

  • Dubbo+Zookeeper 的下载安装配置启动

1.dubbo-admin-2.5.3下载完成后。放在webapps文件夹下面。先把默认的tomcat的ROOT项目备份后移除。将dubbo-admin-2.5.3.war改成ROOT.war 备用

2.zookeeper下载后解压安装即可。windows安装完成后如下图

进入到conf里面,会看到zoo_sample.cfg文件。复制一个修改为zoo.cfg,修改相关配置内容

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/tmp/zookeeper
# the port at which the clients will connect
#这块是设置zookeeper的端口。默认2181
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

到bin文件夹下面。启动zookeeper,windows 点击zkServer.cmd即可,启动成功如下图

3.可以启动tomcat了。这样直接访问 就能看到dubbo的页面。要不然dubbo启动会报错。第一次入门的话建议就用默认的端口配置即可。默认用户 root 密码 root

登录成功以后看到如下页面

以上就是dubbo+zookeeper的配置和启动。下面开始Java代码的编写

  • 整合Dubbo+Zookeeper+SpringMVC

1.创建myDubbo项目为主项目,结构图如下 myC P S后续才创建,刚开始是没有的。

POM.XML配置如下

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com</groupId>
  <artifactId>mydubbo</artifactId>
  注意这里。打包为POM,分布式系统的第一步
  <packaging>pom</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>mydubbo</name>
  <url>http://maven.apache.org</url>
   <properties>  
        <spring.version>3.2.4.RELEASE</spring.version>  
    </properties> 
  <dependencies>
            <dependency>  
            <groupId>com.alibaba</groupId>  
            <artifactId>dubbo</artifactId>  
            <version>2.5.3</version>  
            <exclusions>  
                <exclusion>  
                    <groupId>org.springframework</groupId>  
                    <artifactId>spring</artifactId>  
                </exclusion>  
            </exclusions>  
        </dependency>  
        <!--dubbo注册中心-->  
        <dependency>  
            <groupId>org.apache.zookeeper</groupId>  
            <artifactId>zookeeper</artifactId>  
            <version>3.4.6</version>  
        </dependency>  
        <!--zookeeper客户端-->  
        <dependency>  
            <groupId>com.github.sgroschupf</groupId>  
            <artifactId>zkclient</artifactId>  
            <version>0.1</version>  
        </dependency>  
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-core</artifactId>  
            <version>${spring.version}</version>  
        </dependency>  
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-context</artifactId>  
            <version>${spring.version}</version>  
        </dependency>  
  </dependencies>
  <build>
    <finalName>mydubbo</finalName>
  </build>
  创建子项目后自动会加载。刚开始是没有的
  <modules>
  	<module>myService</module>
  	<module>myProvider</module>
  	<module>myConsumer</module>
  </modules>
</project>

2.创建服务提供商子项目,MyEclipse操作如下图示意 对mydubbo项目鼠标右键new或者maven插件直接创建maven module项目,填写子项目名称。有的如果不选种Create a simple project 自定义创建会报错。选择则不会。根据实际情况来确定是否选择

3.创建3个子项目分别为 myService(服务商(接口),模块提供方) myProvider(供应者,给dubbo zookeeper注册暴露接口) myConsumer

  • myService 项目相关配置

  1. pom配置
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <parent>
        <artifactId>mydubbo</artifactId>
        <groupId>com</groupId>
        <version>0.0.1-SNAPSHOT</version>
      </parent>
      <name>myService</name>
      <artifactId>myService</artifactId>
      <packaging>jar</packaging>
    </project>
    
  2. 新建一个接口类
    package com.xiaoshuai;
    
    public interface HelloService {
    	public String speakHello(String name);
    }
    
  3. 以上工作完成后,进行maven install
  • myProvider项目相关配置

  1. pom配置

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <parent>
        <artifactId>mydubbo</artifactId>
        <groupId>com</groupId>
        <version>0.0.1-SNAPSHOT</version>
      </parent>
      <artifactId>myProvider</artifactId>
    引用接口服务项目 子项目maven install 为jar
    	<dependencies>
    		<dependency>
    			<groupId>com</groupId>
    			<artifactId>myService</artifactId>
    			<version>0.0.1-SNAPSHOT</version>
    		</dependency>
    	</dependencies>
    </project>
    
  2. 实现接口服务者

    package com.xiaoshuai.impl;
    
    
    import com.xiaoshuai.HelloService;
    public class HelloServiceImpl implements HelloService{
    
    	public String speakHello(String name) {
    		return "你好:"+name+"欢迎查阅小帅丶博客";
    	}
    	
    }
    
    
  3. 将实现类接口类暴露给dubbo+zookeeper 在myProvider创建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"  
           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">  
      
        <!-- 提供方应用信息,用于计算依赖关系 -->  
        <dubbo:application name="hello-provider"  />  
      
        <!-- 使用multicast广播注册中心暴露服务地址 -->  
        <dubbo:registry address="zookeeper://127.0.0.1:2181" />  
      
        <!-- 用dubbo协议在20880端口暴露服务 -->  
        <dubbo:protocol name="dubbo" port="20880" />  
      
        <!-- 声明需要暴露的服务接口 -->  
        <dubbo:service interface="com.xiaoshuai.HelloService" ref="helloService" />  
     
        <!-- 和本地bean一样实现服务 -->  
        <bean id="helloService" class="com.xiaoshuai.impl.HelloServiceImpl" />  
      
    </beans>  
    
    
  4. 需要创建一个Java类写个方法 去 加载provider.xml 注册到dubbo + zookeeper
    package com.xiaoshuai.impl;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class ProviderServer {
    	public static void main(String[] args){
    		try {
    			ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("provider.xml");
    			context.start();
    			System.in.read();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    }
    
    
  5. 可以运行。启动该提供者服务,编写消费者。
  6. 可以看到dubbo 提供者服务已经注册
  • myConsumer 项目相关配置

  1. pom配置
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <parent>
        <artifactId>mydubbo</artifactId>
        <groupId>com</groupId>
        <version>0.0.1-SNAPSHOT</version>
      </parent>
      <artifactId>myConsumer</artifactId>
    	<dependencies>
    		<dependency>
    			<groupId>com</groupId>
    			<artifactId>myService</artifactId>
    			<version>0.0.1-SNAPSHOT</version>
    		</dependency>
    	</dependencies>
    </project>
    
  2. 消费者进行订阅provider的服务,也就是需要去zookeeper读取加载服务,那就需要创建一个consumer.xml去加载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.xsd        http://code.alibabatech.com/schema/dubbo        http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
    	<!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
    	<dubbo:application name="hello-consumer" />
    	<!-- 使用multicast广播注册中心暴露发现服务地址 -->
    	<dubbo:registry address="zookeeper://127.0.0.1:2181" />
    	<!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
    	<dubbo:reference id="helloService" interface="com.xiaoshuai.HelloService" />
    </beans>
    
    
  3. 创建一个消费者方法,进行调用ConsumerClient
    package com.xiaoshuai;
    
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class ConsumerClient {
    	public static void main(String[] args) {
    		ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("consumer.xml");
    		HelloService helloService = (HelloService) context.getBean("helloService");
    		String result = helloService.speakHello("xiaoshuai");
    		System.out.println(result);
    	}
    }
    
    
  4. 运行该方法输出一下内容
  5. 接下来看dubbo中心有什么内容。
  6. 看看消费者里面显示些什么内容
  7. 详细消费者信息如图所示
  • 以上一个简单的分布式的Demo就已经完结

  • 新手入门。有问题的地方可以一起交流哦。

作者:小帅帅丶

原文地址:https://my.oschina.net/xshuai/blog/891281文章来源地址https://www.toymoban.com/news/detail-835395.html

喜欢 0

到了这里,关于Dubbo与Zookeeper、SpringMVC整合和使用(入门级)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • windows idea 整合dubbo zookeeper bug记录

    先说两句题外话 激动地心!颤抖的手!恨不得在此刻,半夜两点仰天长啸!我特码运行起来辣!!!! 别问,问就是一个小问题debug8个小时精神恍惚瞎猫碰上死耗子把问题解决了,只能说,麻了 回归正题,接下来简述一下springboot整合zookeeper 和 dubbo的流程和途中碰到问题  

    2024年02月04日
    浏览(49)
  • Dubbo+Zookeeper使用_dubbo zookeeper配置

    } ?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"? 4.0.0 server: port: 8081 spring: application: name: dubbo-consumer dubbo: registry: address: zookeeper://localhost:2181 # 连接到注册中心 protocol: name: dubbo # 指定的协议 port: 28081 # 指定的端口 scan: basePackages: com.hzy.controller # 接口列表和接口中的方法列表 server: port: 8082 spring:

    2024年04月15日
    浏览(33)
  • Dubbo+Zookeeper使用

    说明:Apache Dubbo 是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了 Java、Golang 等多语言 SDK 实现。 本文介绍Dubbo的简单使用及一些Dubbo功能特性,注册中心使用的是ZooKeeper,可在官网下载。 (另外,在阿里巴巴发出的《微服务治理技术白皮

    2024年02月14日
    浏览(36)
  • 【rpc】Dubbo和Zookeeper结合使用,它们的作用与联系(通俗易懂,一文理解)

    目录 Dubbo是什么?         把系统模块变成分布式,有哪些好处,本来能在一台机子上运行,为什么还要远程调用 Zookeeper是什么? 它们进行配合使用时,之间的关系 服务注册 服务发现 动态地址管理         Dubbo是一种开源的高性能、轻量级的分布式服务框架,它致力

    2024年02月09日
    浏览(50)
  • SpringBoot + Dubbo + zookeeper实现

    目录 一,框架搭建 1. 启动zookeeper ! 2. IDEA创建一个空项目; 3.创建一个模块,实现服务提供者:provider-server , 选择web依赖即可 4.项目创建完毕,我们写一个服务,比如卖票的服务 编写接口 编写实现类 编写service 二,服务提供者 1,第一步  zookeeper的包我们去maven仓库下载,

    2024年04月26日
    浏览(40)
  • 服务框架Dubbo和ZooKeeper

    本篇为动物园之旅~ dubbo看作动物园的动物,那么zookeeper就是动物园 如果有人想去动物园看小老虎,那么动物园中有小老虎才能看到,否则看不到~ 关系:dubbo与 zookeeper的关系 Dubbo建议使用Zookeeper作为服务的注册中心 大型互联网项目的架构目标 传统项目和互联网项目 大型互联

    2024年02月03日
    浏览(44)
  • Dubbo+Zookeeper 实现服务远程调用

    提示:以下是本篇文章正文内容,Java 系列学习将会持续更新 官方文档 :https://cn.dubbo.apache.org/zh-cn/#td-block-1 Dubbo 是阿里巴巴公司开源的一个高性能、轻量级的 Java RPC 框架。 致力于提供高性能和透明化的 RPC 远程服务调用方案,以及 SOA 服务治理方案。 三个核心功能: 基于接

    2023年04月19日
    浏览(41)
  • 记录 Dubbo+Zookeeper 学习Demo

    结合Dubbo官网学习如何完成SpringBoot+Dubbo+Zookeeper集成的学习,本次采用环境如下: 开发工具:IntelliJ IDEA Community Edition 2023.2.5 (IDEA社区版 2023.2.5) 开发环境:JDK 1.8,Windows 11 Dubbo 3.2.0-beta.4,SpringBoot 2.7.8, Zookeeper 3.8.4 辅助程序:dubbo-admin-develop 下载地址:https://zookeeper.apache.

    2024年03月15日
    浏览(60)
  • zookeeper 查询注册的 dubbo 服务

    1. 连接zookeeper 服务端 使用bin 目录下zk客户端连接服务器, ./zkCli.sh -server  127.0.0.1:2181 2. 查询Dubbo 服务 # 查询所有服务 ls /dubbo   # 查询指定服务调用 ls /dubbo/服务名(接口地址)/consumers   # 查询指定服务调用 ls /dubbo/服务名(接口地址)/providers 3. 返回值实例 返回值查看不是很明显

    2024年02月10日
    浏览(48)
  • dubbo和zookeeper作用以及关系

    Dubbo建议使用Zookeeper作为服务的注册中心。 Zookeeper的作用: zookeeper用来注册服务和进行负载均衡,哪一个服务由哪一个机器来提供必需让调用者知道,简单来说就是ip地址和服务名称的对应关系。当然也可以 通过硬编码的方式把这种对应关系在调用方业务代码中实现,但是如

    2024年02月14日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包