`

dubbo入门案例

 
阅读更多
windows安装zookeeper
把下载的zookeeper的文件解压到指定目录

D:\machine\zookeeper-3.3.6>


修改conf下增加一个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 anacknowledgement

syncLimit=5

# the directory where the snapshot isstored.  //镜像数据位置

dataDir=D:\\data\\zookeeper

#日志位置

dataLogDir=D:\\logs\\zookeeper

# the port at which the clients willconnect  客户端连接的端口

clientPort=2181

注:如果启动有报错提示cfg文件有错误,可以用zoo_sample.cfg内内容替代也是可以的



进入到bin目录,并且启动zkServer.cmd,这个脚本中会启动一个java进程

D:\machine\zookeeper-3.3.6>cd bin

D:\machine\zookeeper-3.3.6\bin>

D:\machine\zookeeper-3.3.6\bin >zkServer.cmd

启动后jps可以看到QuorumPeerMain的进程

D:\machine\zookeeper-3.3.6\bin >jps



启动客户端运行查看一下

D:\machine\zookeeper-3.3.6\bin>zkCli.cmd -server 127.0.0.1:2181



这个时候zookeeper已经安装成功了。

在dataDir=D:\\data\\zookeeper目录下
建立一个文本文件命名为myid,该文件内容为1


父项目用来存放公用的依赖包
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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.chen</groupId>
  <artifactId>edu-common-parent</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>
  <build/>
  <properties>
  	<spring.version>3.1.2.RELEASE</spring.version>
  </properties>
  <dependencies>
	  <!-- servlet -->
	  <dependency>
		<groupId>javax.servlet</groupId>
		<artifactId>javax.servlet-api</artifactId>
		<version>3.0.1</version>
	  </dependency>
	  <dependency>
		<groupId>jstl</groupId>
		<artifactId>jstl</artifactId>
		<version>1.2</version>
	  </dependency>
	  <dependency>
		<groupId>javax.servlet.jsp</groupId>
		<artifactId>jsp-api</artifactId>
		<version>2.1</version>
		<scope>provided</scope>
	  </dependency>
	  
	  <!-- spring -->
	  <dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-context-support</artifactId>
		<version>${spring.version}</version>
	 </dependency>
	  <dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-webmvc</artifactId>
		<version>${spring.version}</version>
	 </dependency>
	   	<dependency>
  		<groupId>org.springframework</groupId>
  		<artifactId>spring-orm</artifactId>
  		<version>${spring.version}</version>
  	 </dependency>
  	
  	 <!-- aop -->
	 <dependency>
		<groupId>org.aspectj</groupId>
		<artifactId>aspectjweaver</artifactId>
		<version>1.8.4</version>
	 </dependency>
	
	 <!-- mybatis-spring -->
	 <dependency>
		<groupId>org.mybatis</groupId>
		<artifactId>mybatis-spring</artifactId>
		<version>1.2.2</version>
	 </dependency>
	 
	 <!-- mybatis -->
	 <dependency>
		<groupId>org.mybatis</groupId>
		<artifactId>mybatis</artifactId>
		<version>3.2.8</version>
	 </dependency>
	 
	 <dependency>
        <groupId>asm</groupId>
        <artifactId>asm-commons</artifactId>
        <version>3.3.1</version>
    </dependency>
    <!-- 二级缓存ehcache -->
	<dependency>
		<groupId>net.sf.ehcache</groupId>
		<artifactId>ehcache</artifactId>
		<version>2.9.0</version>
	</dependency>
	
	<!-- dbcp -->
	<dependency>
		<groupId>commons-dbcp</groupId>
		<artifactId>commons-dbcp</artifactId>
		<version>1.4</version>
	</dependency>
	 
	<!-- mysql连接 -->
	<dependency>
		<groupId>mysql</groupId>
		<artifactId>mysql-connector-java</artifactId>
		<version>5.1.34</version>
	</dependency>
	
	<!-- slf4j-log4j -->
    <dependency>  
        <groupId>org.slf4j</groupId>  
        <artifactId>slf4j-api</artifactId>  
        <version>1.7.2</version>  
    </dependency>  
    <dependency>  
        <groupId>org.slf4j</groupId>  
        <artifactId>slf4j-log4j12</artifactId>  
        <version>1.7.2</version>  
    </dependency>  
	<dependency>
		<groupId>log4j</groupId>
		<artifactId>log4j</artifactId>
		<version>1.2.17</version>
	</dependency>
	
	<!-- jackson -->
  	<dependency>
  		<groupId>com.fasterxml.jackson.core</groupId>
  		<artifactId>jackson-databind</artifactId>
  		<version>2.2.3</version>
  	</dependency>
  	
	<dependency>
		<groupId>junit</groupId>
		<artifactId>junit</artifactId>
		<version>4.11</version>
	</dependency>
	
	<dependency>
		<groupId>com.alibaba</groupId>
		<artifactId>dubbo</artifactId>
		<version>2.3.0</version>
		<exclusions>  
            <exclusion>  
                <artifactId>spring</artifactId>  
                <groupId>org.springframework</groupId>  
                </exclusion>  
         </exclusions>  
	</dependency>
	<dependency>
		<groupId>org.apache.zookeeper</groupId>
		<artifactId>zookeeper</artifactId>
		<version>3.4.5</version>
	</dependency>
	<dependency>
		<groupId>com.101tec</groupId>
		<artifactId>zkclient</artifactId>
		<version>0.3</version>
	</dependency>
	<dependency>
		<groupId>org.jboss.netty</groupId>
		<artifactId>netty</artifactId>
		<version>3.2.5.Final</version>
	</dependency>
  </dependencies>
  
</project>



提供服务应用edu-service-user

dubbo配置文件applicationContext-dubbo-provider.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    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="edu-service-user" />
    
    <!-- 使用zookeeper注册中心暴露服务地址 -->
    <dubbo:registry protocol="zookeeper" address="132.126.1.98:2181"></dubbo:registry>	
    
    <!-- 用dubbo协议在20888端口暴露服务 -->
    <dubbo:protocol name="dubbo" port="20888" />
    
    <!-- 服务服务接口 -->
    <dubbo:service interface="com.chen.facade.UserFacade" ref="userFacadeImpl"/>
</beans>



暴露服务实现类UserFacadeImpl.java
package com.chen.facade.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.chen.facade.UserFacade;
import com.chen.pojo.User;
import com.chen.service.UserService;

@Service
public class UserFacadeImpl implements UserFacade{
	
	@Autowired
	private UserService userService;
	
	public User getUser(Long id) {
		System.out.println("-===============================");
		return userService.getUser(id);
	}
}




公共接口类edu-facade-user
服务提供应用和消费者应用都要引用该应用

定义暴露服务类接口
UserFacade.java
package com.chen.facade;

import com.chen.pojo.User;

public interface UserFacade {
	public User getUser(Long id);
}




消费者应用edu-web-boss
dubbo配置文件applicationContext-dubbo-comsumer.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    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="edu-web-boss" />
    
    <!-- 注册中心地址 -->
    <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181"></dubbo:registry>	
    
    <!-- 服务服务接口 -->
    <dubbo:reference interface="com.chen.facade.UserFacade"  id="userFacade" check="false" />
</beans>



使用服务
package com.chen.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.chen.facade.UserFacade;
import com.chen.pojo.User;


@Controller
@RequestMapping("/user")
public class UserController {
	@Autowired
	private UserFacade userFacade;
	
	@ResponseBody
	@RequestMapping("hello")
	public String hello(){
		return "hello";
	}
	
	@RequestMapping("index")
	public String index(){
		return "index";
	}
	
	@ResponseBody
	@RequestMapping("getUser")
	public User getUser(){
		System.out.println("getuser1");
		User user =userFacade.getUser(1L);
		return user;
	}
	
}

分享到:
评论

相关推荐

    dubbo 入门案例 helloworld

    【标题】"Dubbo入门案例HelloWorld"是一个基础的学习教程,旨在帮助初学者理解并实践Dubbo框架的基本用法。Dubbo是阿里巴巴开源的一款高性能、轻量级的Java RPC(远程过程调用)框架,它提供了服务治理、负载均衡、...

    dubbo入门案例.rar

    这个"1-dubbo入门案例"文件应该包含了上述步骤的示例代码,你可以导入到IDE中运行,根据实际情况进行调整。这个案例是学习和理解Dubbo工作原理的一个很好的起点,通过实践,你可以深入理解Dubbo的特性,如动态配置、...

    Dubbo入门案例和项目源码

    【Dubbo入门案例和项目源码】是一个针对初学者的教程资源,包含了使用Dubbo构建Web服务的基础示例和完整的项目源代码。Dubbo是阿里巴巴开源的一款高性能、轻量级的Java服务框架,广泛应用于分布式系统开发,尤其在...

    dubbo入门案例参考

    【Dubbo入门案例详解】 Dubbo,作为阿里巴巴开源的一款高性能、轻量级的服务治理框架,广泛应用于分布式系统中。这个入门案例将引导我们逐步了解如何使用Dubbo构建一个简单的服务提供者与消费者。 首先,我们需要...

    dubbo入门案例与资料-java

    **构建Dubbo入门案例**通常包含以下几个步骤: 1. **创建服务提供者**:编写提供服务的接口及其实现,并通过 @Service 注解暴露服务。 2. **配置服务**:在配置文件中声明服务提供者的元数据,包括接口名、版本号、...

    zookeeper+dubbo入门案例 消费方+提供方

    总的来说,本入门案例通过"students-server"和"students-client"展示了Zookeeper和Dubbo的集成使用,帮助开发者理解如何在分布式环境中实现服务的注册、发现和调用。这对于我们理解和掌握微服务架构中的服务治理具有...

    Dubbo入门_实战

    #### 五、Dubbo入门案例 假设有一个需求场景:存在两个系统A和B,其中A系统需要调用B系统的接口来获取数据。在这个案例中,我们将具体分析Dubbo如何帮助实现这一目标。 - **角色定义**: - **Consumer**(消费者): ...

    Dubbo简单入门案例

    简单dubbo入门案例,方便理解dubbo和zookeeper作用,学会dubbo项目的搭建,资源附带源码和sql文件,具体搭建过程参看博客:https://blog.csdn.net/lairikeqi/article/details/94631615

    Dubbo入门到精通架构高级课程(视频+课件+源码)

    【Dubbo入门到精通架构高级课程】是一门深入解析Dubbo框架的全面教程,旨在帮助初学者和进阶者理解并掌握这个强大的Java分布式服务框架。该课程包含了视频讲解、课件资料以及配套的源码,确保学习者能理论与实践相...

    dubbo入门工程案例

    Dubbo ['dʌbəu] 是一个分布式服务治理框架,提供高性能的RPC远程服务调用及服务治理。 Dubbo是阿里巴巴开源的产品(2012),2018年捐献给了apache,现在是apache下的一个顶级开源项目,国内大量企业都在使用Dubbo...

    dubbo-case.zip

    【Dubbo入门小案例】 ...通过这个Dubbo入门案例,你可以了解到如何设置一个基本的Dubbo服务,理解服务提供者与消费者的概念,以及它们之间的交互方式。同时,也能熟悉Dubbo的配置方式,为实际项目开发打下基础。

    dubbo入门 dubbo_demo.zip

    【描述】中提到的"**dubbo入门 dubbo_demo.zip**"多次,这表明这个压缩包包含的是一个基础的教程或者实战案例,目的是帮助用户快速理解Dubbo的基本用法。由于描述内容重复,我们可以推断这个入门示例可能非常注重...

    Dubbo和Zookeeper整合入门案例

    本案例"Dubbo和Zookeeper整合入门案例"旨在帮助开发者理解如何将这两款强大的工具集成到一起,实现服务的注册、发现以及负载均衡。以下是关于这些知识点的详细说明: **Dubbo** Dubbo是由阿里巴巴开源的高性能Java ...

    dubbo+spring+springboot简单小案例

    不同服务之间或者多服务之间调用接口的场景实际中会经常遇到,目前市面上解决该问题比较流行的两大框架为dubbo和springcloud, 这里是一个简单的dubbo入门的案例,分为两个小案例一个和spring和结合案例,另一个是和...

    Dubbo入门到精通架构高级课程(视频+课件+源码)共10套.rar

    【Dubbo入门到精通架构高级课程】是一门全面解析Java领域的分布式服务框架Dubbo的教程。这门课程涵盖了从基础到高级的全方位内容,旨在帮助学员深入理解和掌握Dubbo的核心特性和实际应用,从而在实际项目开发中...

Global site tag (gtag.js) - Google Analytics