Duboo-入门到学废【上篇】

Duboo-入门到学废【上篇】_第1张图片

目录

1.什么是duboo

2.架构图

3.快速入门 

4.浅浅理解


1.什么是duboo

Dubbo是一个由阿里巴巴开发的基于Java的开源RPC框架。它提供了高性能、透明化的远程方法调用,以及服务自动注册和发现、负载均衡、容错、限流、监控等功能,使得分布式应用开发变得更加简单。Dubbo广泛应用于阿里巴巴内部服务化架构,也是国内外很多大型互联网公司的首选框架之一。 

2.架构图

Duboo-入门到学废【上篇】_第2张图片

  1. Provider:暴露服务的服务提供方
  2. Container:服务运行容器
  3. Consumer:调用远程服务的服务消费方
  4. Registry:服务注册与发现的注册中心
  5. Monitor:统计服务的调用次数和调用时间的监控中心

3.快速入门 

基本步骤:

  • ①创建服务提供者Provider模块
  • ②创建服务消费者Consumer模块
  • ③在服务提供者模块编写UserServicelmpl 提供服务
  • ④在服务消费者中的UserController远程调用UserServicelmpl 提供的服务
  • ⑤分别启动两个服务,测试

Duboo-入门到学废【上篇】_第3张图片

3.1user-api

创建一个模块作为公共接口

public interface UserService {
    public String say();
}

Duboo-入门到学废【上篇】_第4张图片

3.2user-service 

创建逻辑模块

1.导入依赖:

1.引入user-api,

2.tomcat端口为9000

   
        5.1.9.RELEASE
        2.7.4.1
        4.0.0
    

    
        
            javax.servlet
            javax.servlet-api
            3.1.0
            provided
        

        
            org.springframework
            spring-context
            ${spring.version}
        
        
            org.springframework
            spring-webmvc
            ${spring.version}
        
        
            org.slf4j
            slf4j-api
            1.7.21
        
        
            org.slf4j
            slf4j-log4j12
            1.7.21
        
        
            org.apache.dubbo
            dubbo
            ${dubbo.version}
        
        
            org.apache.curator
            curator-framework
            ${zookeeper.version}
        
        
            org.apache.curator
            curator-recipes
            ${zookeeper.version}
        

        
            org.example
            user-api
            1.0-SNAPSHOT
        
    


    
        
            
                org.apache.tomcat.maven
                tomcat7-maven-plugin
                2.1
                
                    9000
                    /
                
            
        
    

 2.创建spring.xml:

配置zookeeper(注册中心)的 ip地址和端口

     
    
    
    
    

3.配置web.xml

    
        contextConfigLocation
        classpath*:spring*.xml
    
    
        org.springframework.web.context.ContextLoaderListener
    

 4.逻辑代码实现

@Service//将这个类提供的方法,对外发布,将访问的地址 ip 端口,注册到注册中心中
public class UserServiceImpl implements UserService {
    @Override
    public String say() {
        return "hello xiaoZhang~";
    }
}

Duboo-入门到学废【上篇】_第5张图片

3.3user-web

创建一个模块,作为访问层接口 

 1.导入依赖

1.引入user-api,

2.tomcat端口为8000


    
        5.1.9.RELEASE
        2.7.4.1
        4.0.0
    

    
        
            javax.servlet
            javax.servlet-api
            3.1.0
            provided
        

        
            org.springframework
            spring-context
            ${spring.version}
        
        
            org.springframework
            spring-webmvc
            ${spring.version}
        
        
            org.slf4j
            slf4j-api
            1.7.21
        
        
            org.slf4j
            slf4j-log4j12
            1.7.21
        
        
            org.apache.dubbo
            dubbo
            ${dubbo.version}
        
        
            org.apache.curator
            curator-framework
            ${zookeeper.version}
        
        
            org.apache.curator
            curator-recipes
            ${zookeeper.version}
        

        
            org.example
            user-api
            1.0-SNAPSHOT
        

    


    
        
            
                org.apache.tomcat.maven
                tomcat7-maven-plugin
                2.1
                
                    8000
                    /
                
            
        
    

 2.配置web.xml


  
    springmvc
    org.springframework.web.servlet.DispatcherServlet
    
      contextConfigLocation
      classpath:springmvc.xml
    
  
  
    springmvc
    *.do
  

3.配置springmvc.xml

引入zookeeper(注册中心)的ip地址和端口,以及要扫描的包

  
    

    
    
    
    
    

4.controller接口实现

  • @Reference的作用:
  • 1.从zookeeper(注册中心)获取userService的访问url
  • 2.进行远程调用RPC
  • 3.将结果封装为代理对象,给变量赋值
@RestController
@RequestMapping("/user")
public class UserController {

    
    @Reference//远程注入
    private UserService userService;

    @RequestMapping("/say")
    public String say(){
        return userService.say();
    }

}

Duboo-入门到学废【上篇】_第6张图片

 3.4加载运行插件

注意:在启动插件时,一定要先clear 和install 父项目的,然后依次执行,最后在启动tomcat7-run

不然你会痛苦的~

Duboo-入门到学废【上篇】_第7张图片Duboo-入门到学废【上篇】_第8张图片

  

 至此~dubbo部署成功!!!

4.浅浅理解

对于服务与消费的理解:相对于之前的dao,service,controller的三层架构,如今服务就是service,controller就是消费者;与此同时,每个服务都可以独立开发、部署和维护

Duboo-入门到学废【上篇】_第9张图片 Duboo-入门到学废【上篇】_第10张图片

你可能感兴趣的:(spring,cloud,后端,中间件,架构,eureka,云原生,java)