dubbo快速入门

一、dubbo概念

Apache Dubbo是一款高性能的Java RPC框架。其前身是阿里巴巴公司开源的、轻量级的开源Java RPC 框架,可以和Spring框架无缝集成。

二、dubbo框架

dubbo快速入门_第1张图片

虚线都是异步访问,实线都是同步访问 蓝色虚线:在启动时完成的功能 红色虚线(实线)都是程序运行过程中执行的功能 调用关系说明:

  1. 服务容器负责启动,加载,运行服务提供者。

  2. 服务提供者在启动时,向注册中心注册自己提供的服务。

  3. 服务消费者在启动时,向注册中心订阅自己所需的服务。

  4. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。

  5. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。

  6. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

三、入门案例

在案例中我们的注册中心使用Zookeeper,安装完Zookeeper后启动。准备共两个服务,服务提供方和服务消费方。

  • 首先创建服务提供方dubbodemo_provider,pom文件如下


    4.0.0

    com.lxt
    dubbodemo-provider
    1.0-SNAPSHOT
    war

    
        UTF-8
        1.8
        1.8
        5.0.5.RELEASE
    

    
    
        org.springframework
        spring-context
        ${spring.version}
    
    
        org.springframework
        spring-beans
        ${spring.version}
    
    
        org.springframework
        spring-webmvc
        ${spring.version}
    
    
        org.springframework
        spring-jdbc
        ${spring.version}
    
        
            org.springframework
            spring-aspects
            ${spring.version}
        
        
            org.springframework
            spring-jms
            ${spring.version}
        
        
            org.springframework
            spring-context-support
            ${spring.version}
        
         
        com.alibaba
        dubbo
        2.6.0
    
        
            org.apache.zookeeper
            zookeeper
            3.4.7
        
        
            com.github.sgroschupf
            zkclient
            0.1
        
        
            javassist
            javassist
            3.12.1.GA
        
        
            com.alibaba
            fastjson
            1.2.47
        
    

    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                2.3.2
                
                    1.8
                    1.8
                
            
            
                org.apache.tomcat.maven
                tomcat7-maven-plugin
                
                    
                    8081
                    
                    /
                
            
        
    

web.xml文件配置




    
        contextConfigLocation
        classpath:/applicationContext*.xml
    
    
        org.springframework.web.context.ContextLoaderListener
    

创建接口

public interface HelloService {

    public String sayHello(String name);
}

实现类

@Service  //一定要用dubbo的注解
public class HelloServiceImpl implements HelloService {

    @Override
    public String sayHello(String name) {
        return "hello :" + name;
    }
}

spring文件配置applicationContext-service.xml




    
    
    
    
    
    
    
    

  • 接下来创建服务消费方dubbodemo_consumer

pom文件沿用provider的,只需改下端口号


    org.apache.tomcat.maven
    tomcat7-maven-plugin
    
        
        8082
        
        /
    

web.xml文件配置




    
        contextConfigLocation
        classpath:/applicationContext*.xml
    
    
        org.springframework.web.context.ContextLoaderListener
    
    
    
        springmvc
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:applicationContext-web.xml
        
    
    
        springmvc
        /
    

创建控制器

@RestController
@RequestMapping("demo")
public class HelloController {

    @Reference  //可以得到本地接口的远程代理对象
    private HelloService helloService;

    @RequestMapping("hello")
    public String sayHello(String name) {
        //远程调用
        String result = helloService.sayHello(name);
        System.out.println(result);
        return result;
    }
}

spring配置文件applicationContext-web.xml




    
    
    
    
    
    

好了,配置完成之后直接启动就可以使用了。

你可能感兴趣的:(java)