美文网首页
springboot+dubbo+zookeeper项目搭建

springboot+dubbo+zookeeper项目搭建

作者: xiari1991 | 来源:发表于2020-06-06 17:27 被阅读0次

    springboot+dubbo+zookeeper
    三层结构:
    common
    — 公共组件
    customer1
    — controller
    provider1
    ---子项目service-api
    ---iservice
    ---bean
    ----子项目serviceImp
    —impl
    —mapper

    idea搭建项目架构
    1、
    file -> new project -> spring initializr (创建springboot主项目)
    file -> new module -> maven (创建common maven)
    file -> new module -> maven (创建provider maven)
    file -> new module -> maven (在provider下创建service maven)
    file -> new module -> maven (在provider下创建impl maven)
    file -> new module -> maven (创建consumer maven)
    2、删除主项目的src文件夹,没什么用
    3、标记各maven的java和resource项目
    java: mark Directory as Source root
    resource: mark Directory as Resources root
    4、删除主项目的依赖,给各个maven添加依赖
    consumer和provider的impl子项目需要添加如下依赖,并刷新maven,加载依赖

    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <version>2.2.5.RELEASE</version>
            </dependency>
    
            <!--dubbo依赖-->
            <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo</artifactId>
                <version>2.7.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo-spring-boot-starter</artifactId>
                <version>2.7.0</version>
            </dependency>
    
    
    
            <!--注册中心-->
            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
                <version>3.4.6</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>apache-curator</artifactId>
                <version>2.13.0</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.zookeeper</groupId>
                        <artifactId>zookeeper</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-recipes</artifactId>
                <version>2.13.0</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.zookeeper</groupId>
                        <artifactId>zookeeper</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
    
    
            <!--接口工程-->
            <dependency>
                <groupId>springboot.dubbo.zookeeper</groupId>
                <artifactId>student-service-api</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
    
        </dependencies>
    

    5、给consumer和provider的impl子项目新建Application,启动类需要添加@SpringBootApplication和@EnableDubbo

    package com.cytx.consumer;
    
    import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    @EnableDubbo
    public class Application {
        public static void main(String[] args) {
            SpringApplication.run(Application.class, args);
        }
    }
    
    

    6、给consumer添加application.properties文件

    #设置内嵌Tomcat端口号
    server.port=8082
    spring.main.allow-bean-definition-overriding=true
    
    #设置dubbo的配置
    dubbo.application.name=consumer-dubbo-consumer
    dubbo.consumer.timeout=30000
    #设置注册中心
    dubbo.registry.address=zookeeper://192.168.1.202:2181
    dubbo.scan.base-packages=service
    
    

    给provider的impl项目添加application.properties文件

    #设置内嵌Tomcat端口号
    server.port=8081
    
    spring.main.allow-bean-definition-overriding=true
    
    #设置dubbo的配置
    dubbo.application.name=provider-dubbo-provider
    dubbo.registry.protocol=zookeeper
    #设置注册中心
    dubbo.registry.address=zookeeper://192.168.1.202:2181
    dubbo.provider.actives= 10
    #dubbo.provider.server=mserver
    dubbo.provider.timeout=30000
    dubbo.protocol.name=dubbo
    dubbo.protocol.port=20886
    dubbo.consumer.check=false
    

    7、服务类要添加@Service注解,切记注解不是用spring的service注解,是 dubbo提供的service注解。@Service 用在服务提供者中。
    消费者使用服务时,使用@Reference注解。@Reference 用在消费端,表明使用的是服务端的什么服务。

    8、启动zookeeper,zookeeper注册地址是192.168.202:2181,所以在192.168.202服务器要启动zookeeper

    9、分别启动消费者和服务提供者的服务

    注意:
    1、消费方和服务提供方是可以在不同服务器部署的
    2、同一个服务在不同服务器上多次部署,都会在注册中心中注册,消费方调用服务提供方接口时会按照某个规则调用
    3、如何查看服务提供方或消费方已经在zk中注册了呢?
    ./bin/zkCli.sh 开启zk客户端
    ls /dubbo可以看到注册的服务,ls /dubbo/注册的服务/providers 可以看到注册的服务提供方,如果没有,说明没有注册该服务,如果有则只是说明有注册过该服务。ls /dubbo/注册的服务/consumers 可以看到注册的服务消费方。如果有,说明服务已经注册。

    相关文章

      网友评论

          本文标题:springboot+dubbo+zookeeper项目搭建

          本文链接:https://www.haomeiwen.com/subject/ztrgzhtx.html