Springboot整合Dubbo和zookeeper

遇到最多的问题就是jar包冲突,总结出两种版本解决方法,希望有所帮助

1、配置提供者(provider)

1导入依赖

1.1导入依赖[ zookeeper3.4.6整合jar包(对应服务器版本) ]
<!--dubbo依赖-->
<!-- https://mvnrepository.com/artifact/org.apache.dubbo/dubbo-spring-boot-starter -->
    <dependency>
        <groupId>org.apache.dubbo</groupId>
        <artifactId>dubbo-spring-boot-starter</artifactId>
        <version>2.7.6</version>
    </dependency>

<!--zookeeper客户端依赖-->
<!-- https://mvnrepository.com/artifact/com.github.sgroschupf/zkclient -->
        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>
<!--日志冲突-->
<!-- 引入zookeeper -->
    <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-framework</artifactId>
        <version>2.12.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-recipes</artifactId>
        <version>2.12.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.zookeeper</groupId>
        <artifactId>zookeeper</artifactId>
        <version>3.4.6</version>
        <!--排除这个slf4j-log4j12-->
            <exclusions>
                <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
      </dependency>
1.2导入依赖[ zookeeper3.5.+整合jar包(对应服务器版本) ]
  <!-- https://mvnrepository.com/artifact/org.apache.curator/curator-framework -->
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>4.2.0</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.apache.curator/curator-recipes -->
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>4.2.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.dubbo/dubbo-spring-boot-starter -->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.7.3</version>
        </dependency>

2.配置yml

这块用的是springboot项目所以去配置application.yml

spring:
  datasource:
    username: root
    password: 123456
    url: jdbc:mysql://localhost:3306/***?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
    driver-class-name: com.mysql.cj.jdbc.NonRegisteringDriver
    type: com.alibaba.druid.pool.DruidDataSource
#配置日志
mybatis-plus:
  global-config:
    db-config:
      logic-delete-field: flag  # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)
      logic-delete-value: 1 # 逻辑已删除值(默认为 1)
      logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  mapper-locations: classpath*:/xml/*.xml
dubbo:
  application:
    name: service  ## 应用名 对应你的项目名

  registry:
    address: 127.0.0.1:2181  ##这块填写你服务器的ip地址
    protocol: zookeeper
  monitor:
    protocol: registry
  protocol:
    name: dubbo
    port: 20880
server:
  port: 9092

3.暴露服务

用boot项目的话,那就使用注解@service

image-20201029235657115

注意:这块千万@service不要导入springframework下的类

**这块它继承的是GoodService ** 后面消费者要用到

4.启动类下开启@EnableDubbo 支持

重点:这块一定要开启@EnableDubbo

5.有可能会报找不到mapper的方法,这块在启动类上加如下

@MapperScan("com.***.mapper")

2、配置消费者(consumer)

2.1导入依赖(同提供者)

2.2配置yml

spring:
  datasource:
    username: root
    password: 123456
    url: jdbc:mysql://localhost:3306/***?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
    driver-class-name: com.mysql.cj.jdbc.NonRegisteringDriver
    type: com.alibaba.druid.pool.DruidDataSource
#配置日志
mybatis-plus:
  global-config:
    db-config:
      logic-delete-field: flag  # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)
      logic-delete-value: 1 # 逻辑已删除值(默认为 1)
      logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  mapper-locations: classpath*:/xml/*.xml
dubbo:
  application:
    name: controller_web  ## 应用名 对应你的项目名

  registry:
    address: 127.0.0.1:2181  ##这块填写你服务器的ip地址
    protocol: zookeeper
  monitor:
    protocol: registry
server:
  port: 9093 ##

2.3 引用服务

这块还是使用注解@Reference

image-20201030001934752

2.4 启动类下开启@EnableDubbo 支持

同上

3.编写web层测试方法

这块先要启动提供者在启动消费者

这块略

如果有什么问题欢迎提出来

posted @ 2020-10-30 00:29  Codeblackcats  阅读(28)  评论(0)    收藏  举报  来源