springmvc 与 dubbo 集成的demo实例

首先,如果要使用dubbo的话,需要下载一个注册中心,比较常用的是  zookeeper 

所以我们首先需要下载并安装 zookeeper

下载地址为

http://mirrors.hust.edu.cn/apache/zookeeper/    然后点击版本进去下载即可

我下载的是   zookeeper-3.4.11.tar.gz  版本的,这个应该是linux的包,不过可以在Windows下直接解压使用

解压完直接去  conf下面的 zoo_sample.cfg 把它改名为 zoo.cfg

然后再到bin目录下

springmvc 与 dubbo 集成的demo实例_第1张图片

需要注意的是你已经把jdk配置到环境变量中了,不过一般也会配置吧,执行完看到下面的界面就说明启动成功了


springmvc 与 dubbo 集成的demo实例_第2张图片


至于zookeeper 的其他操作就请自行百度理解吧,现在可以跑起来就行了


启动了这个之后,就可以进行dubbo的demo实例了

需要建立三个maven工程

dubbo-api    存放接口的工程

dubbo--provider  服务的提供者工程,实现了接口的类和一些dao类

dubbo--coustmer  服务的消费者


首先是建立dubbo-api 工程(jar工程),这个很简单,只有一个接口在里面

package com.dubbo.api;

import java.util.List;

/**
 * @author while(true)
 * @date 2018年2月9日 下午10:42:20
 * @Desction 用于提供对外暴露的服务演示接口
 * @version 1.0
 */
public interface DemoService {

	List getPermission(Long id);
	
}


pom文件也是不需要配置什么就可以了


然后是建立  dubbo--provider(war工程)工程  ,需要依赖 dubbo-api工程

下面说一下配置文件

web.xml配置springmvc的一些基本东西,如果这些不知道的话,可以看一下我的另一篇文章

http://blog.csdn.net/zxc_user/article/details/73784798


web.xml




	
		springDispatcherServlet
		org.springframework.web.servlet.DispatcherServlet
		
			contextConfigLocation
			classpath:springmvc.xml
		
		1
	


	
	
		springDispatcherServlet
		/
	

	
		contextConfigLocation
		classpath:spring.xml
	


	
	
		org.springframework.web.context.ContextLoaderListener
	

然后是配置springmvc的文件

springmvc.xml



	
    
    
   	 
   	
	
	
	
	
	



至于spring.xml文件提供一个空的就行了,或者你有什么配置自己加吧


demoService的实现类

package com.dubbo.provider;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Service;

import com.dubbo.api.DemoService;
/**
 * @author while(true)
 * @date 2018年2月9日 下午11:26:00
 * @Desction 服务的实现类
 * @version 1.0
 */
@Service("demoService")
public class DemoServiceImpl implements DemoService{

	//模拟的静态数据
	private static Map> data;
	
	static {
		data = new HashMap<>();
		data.put(1l, Arrays.asList("zxc", "ldh", "hzh"));
		data.put(2l, Arrays.asList("111", "222", "333"));
		data.put(3l, Arrays.asList("aaa", "bbb", "ccc"));
	}

	@Override
	public List getPermission(Long id) {
		return data.get(id);
	}

}

然后还有一个pom文件,各种依赖和tomcat插件,虽然有点长,还是贴出来吧。


  4.0.0
  com.demo.dubbo
  dubbo--provider
  0.0.1-SNAPSHOT
  war
       
     
      4.3.8.RELEASE
      4.3.8.RELEASE
      3.1.0
      2.2
 	
  
     	
	     	 com.demo.dubbo
			 dubbo-api
			 0.0.1-SNAPSHOT
	     
	
	        
	
	   org.springframework
	   spring-context
	   ${spring.version}
	
	
	
	
	   org.springframework
	   spring-web
	   ${springmvc.version}
	
	
	
	   org.springframework
	   spring-webmvc
	   ${springmvc.version}
	
	
	
	
	   javax.servlet
	   javax.servlet-api
	   ${servlet.version}
	   provided
	
	
	
	
	   javax.servlet.jsp
	   jsp-api
	   ${jsp.version}
	   provided
	
	
	      
		    com.fasterxml.jackson.core  
		    jackson-core  
		    2.8.1  
		  
		  
		  
		  
		    com.fasterxml.jackson.core  
		    jackson-databind  
		    2.8.1  
		  
		  
		  
		  
		    com.fasterxml.jackson.core  
		    jackson-annotations  
		    2.8.1  
		  
		
		 

      com.alibaba
      dubbo
      2.5.3
      
        
          org.springframework
          spring
        
      
    
    
      com.101tec
      zkclient
      0.10
    
    
  
  
     
            
				org.apache.tomcat.maven
				tomcat7-maven-plugin
				
				8081  
				/     
				
			
     
  

然后启动该项目,如果启动成功就说明你配置对了

最后是创建  dubbo--coustmer(war工程),需要依赖 dubbo-api工程

基本上的配置跟 dubbo -- provider 一致

只说一下不同的地方,springmvc.xml




    
    
    
    
         
    
    
    
     
     
     
    
    
        
        
    


spring.xml



    
 	
 	
    
    
    


然后是记得tomcat插件的端口要改一下,改为8082端口的

记得扫描包要在springmvc中扫,不要在ioc容器中扫

最后是一个controller使用注册中心里面的service层

package com.dubbo.coustmer;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.dubbo.api.DemoService;

@RestController
@RequestMapping("/demo")
public class DemoController {

	@Autowired
	private DemoService demoService;

	@RequestMapping("/test/{id}")
	public List demoTest(@PathVariable("id") Long id) {
		return demoService.getPermission(id);
	}
	
}

然后把这个项目也启动一下即可

启动完成之后在浏览器输入

http://localhost:8082/demo/test/2

看到下面的界面就可以了

springmvc 与 dubbo 集成的demo实例_第3张图片


Dubbo管理控制台介绍

管理控制台功能

路由规则,动态配置,服务降级 
访问控制,权重调整 
负载均衡 
这里写图片描述

下载dubbo-admin,可自行根据网上介绍安装。大致做法就是将dubbo-admin中 的某个文件夹内容替换到tomcat的conf中,再运行tomcat即可。但我在实际操作中发现JDK8无法运行,后来找到一个JDK8可以实现的dubbo-admin版本,下载地址:http://www.itmayun.com/it/files/226631678709806/resource/901920001882583/1.html。

成功开启输入用户名密码root后,即可进入控制台首页查看消费者提供者情况: 
查看提供者: 
这里写图片描述 
查看消费者: 
这里写图片描述

到这里就完成了

你可能感兴趣的:(Spring整合相关)