## SpringBoot Dubbo Zookeeper 实现远程调用

首先我们来了解dubbo+zookeeper是个什么东西吧?
Dubbo是 阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

工作原理:
## SpringBoot Dubbo Zookeeper 实现远程调用_第1张图片
Provider
暴露服务方称之为“服务提供者”。
Consumer
调用远程服务方称之为“服务消费者”。
Registry
服务注册与发现的中心目录服务称之为“服务注册中心”。
Monitor
统计服务的调用次数和调用时间的日志服务称之为“服务监控中心”。
zookeeper
即为注册中心

来看看代码实现吧!
pom.xml()


        
            com.alibaba
            dubbo
            2.6.2
        

        
        
            org.apache.zookeeper
            zookeeper
            3.4.9
            
                
                    org.slf4j
                    slf4j-log4j12
                
                
                    log4j
                    log4j
                
                
                    io.netty
                    netty
                
            
        
        
            org.apache.curator
            curator-framework
            4.0.1
        
        
            org.apache.curator
            curator-recipes
            4.0.1
        

API包地址和代码(我这里是本地模块,勿copy):

		
            com.tom
            console-api
            1.0.0
        
        提供接口即可
		public interface InterfaceDubbo {
		    HashMap DubboService(HashMap params);
		}

接下来看看dubbo.xml配置(贴在一个配置里,消费者和服务提供者区分即可):
备注一点,如服务提供商规定版本号,消费者也需要相应的加上版本号,本文没加,默认版本是1.0.0




	
	
	
	
	
    
    
 	
    
	
    

消费者直接使用注解即可:

@Autowired
@Qualifier("dubboService")
InterfaceDubbo dubboService;

服务提供者代码如下:

public class HelloDubbo implements InterfaceDubbo {
    Logger LOG = LoggerFactory.getLogger(HelloDubbo.class);
    @Override
    public HashMap DubboService(HashMap params) {
        LOG.info("dubbo服务接收参数:{}",params);
        HashMap resMap = new HashMap();
        if(params.size() <= 0){
            resMap.put("code","SUCCESS");
            resMap.put("msg","dubbo服务连接成功,但没有任何内容");
            return resMap;
        }
        return params;
    }
}

最后 消费者dubboService.DubboService(params)即可完成通信。

本章完,不知道各位技友有没有学到了。

你可能感兴趣的:(java分布式编程&高并发,JAVA,springboot,dubbo,zk,远程调用)