美文网首页
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