springboot2.x 整个dubbo ,完美使用,

本文采用版本springboot 2.x 

linux 安装的zookeeper版本 3.5.5 

idea dubbo版本2.7.3  zookeeper版本 3.4.8

1. 新建一个公共接口提供者  pom文件里面什么都不需要写

  1.1这里面只有你的pojo和你的接口

       这个里面只提供接口,打成jar包,其他的项目需要引入这个公共接口的jar

1.2  创建完成以后需要用maven 打包 安装

       否则 别的项目找不到你的接口

2. 创建一个服务提供者   创建第一个项目的实现类

    2.1 provider项目的整体路径

  2.2 provider的pom.xml 

    2.2.1 这里有你项目1的依赖  我各个依赖注释的很清楚

 <!--寻找001的接口 -->
        <dependency>
            <groupId>com.powernode</groupId>
            <artifactId>mon0825-001springboot-dubbo-exterface</artifactId>
            <version>1.0.0</version>
        </dependency>
        <!--Spring Boot集成Dubbo的起步依赖  这个里面有google的json-->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.7.3</version>
        </dependency>
        <!-- zookeeper的客户端管理依赖 log4j 以前有集成 不去除会冲突-->
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>2.12.0</version>
            <exclusions>
                <exclusion>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- zookeeper的客户端管理依赖 -->
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>2.12.0</version>
        </dependency>
        <!--ZooKeeper注册中心依赖  log4j 有冲突需要剔除log4j  在curator-framework的管理软件        
            有zookeeper的jar包-->
 <!--       <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.14</version>
            <type>pom</type>
            <exclusions>
                <exclusion>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>-->
        <!-- mybatis的起步依赖-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>
        <!-- 数据库的依赖 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

2.3 provider的application.properties 

  • 注意写自己的数据库,redis    如果没有删除配置
#application 版本
spring.application.name=mon0825-002springboot-dubbo-provider
#配置内嵌Tomcat端口号
server.port=8252
#配置项目上下文根
server.servlet.context-path=/
#配置SpringMVC的视图解析器其中:/相当于src/main/webapp目录
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp
# 指定Mybatis映射文件的路径
mybatis.mapper-locations=classpath:mapper/*.xml
#配置数据库的链接
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/_001springboot?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
# 配置redis
spring.redis.host=192.168.68.3
spring.redis.port=6384
spring.redis.password=123456
# 配置redis 的哨兵
#spring.redis.sentinel.master=mymaster
#spring.redis.sentinel.nodes=192.168.68.3:26380,192.168.68.3:26382,192.168.68.3:26384
#spring.redis.sentinel.password=123456
#配置dubbo
#dubbo.application.name 是在zookeeper的名字 必须是唯一 因为他就是靠名字找服务呀 
dubbo.application.name=mon0825-002springboot-dubbo-provider
dubbo.protocol.name=dubbo
#端口号也是唯一,因为它不能冲突呀
dubbo.protocol.port=20880
#连接方式 看你自己吧
dubbo.registry.address=zookeeper://192.168.68.3:2181

2.4  provider的实现类

package com.powernode.service;/**
 * Created by Enzo Cotter on 2020/8/25.
 */

import com.google.gson.JsonParser;
import com.powernode.mapper.StudentMapper;
import com.powernode.pojo.Student;
import com.powernode.pojo.StudentExample;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * ClassName: StudentServiceDubboImpl
 * Description:
 * Date: 2020/8/25 15:01
 * 文章地址原创地址 https://blog.csdn.net/linsenaa
 * @Author Lin
 */

    //这个是spring的service
    @Service
        /*
        interfaceClass  这个是暴露的接口的class 如果你没有这个接口不要慌 把你的项目1在pom里面引包以后在重新用maven打包下
        version  版本号
        timeout  当消费者调用提供者时由于网络等原因有可能会造成长时间拿不到响应,
                 而请求还在不断的发过来这就有可能造成线程阻塞,使用timeout设置超时时间当超过该时间就会抛出异常
        注意 这个service 是dubbo的Service
    */
    @org.apache.dubbo.config.annotation.Service(interfaceClass = StudentServiceDubbo.class, 
                                                version = "1.0.0", 
                                                timeout = 2000)
    public class StudentServiceDubboImpl implements StudentServiceDubbo {
        @Autowired
        StudentMapper studentMapper;
        @Override
        public String queryAllStudent() {
            //看不懂这个没有关系  你把我的删除,自己在这个实现类随便写,自己返回字符串就好
           // List<Student> students = studentMapper.selectByExample(null);
            //return students.toString();
            return  "测试zookeeper";
        }
}

 2.5 provider启动 注意在主启动类加上注解@EnableDubbo

(注意 你要先启动你的zookeeper  不管你是在虚拟机的liunx还是windows本地)

 

3. 创建一个服务消费者   创建第二个项目的控制层

   3.1 customer项目的整体路径

     

   3.2 customer项目的pom.xml

  <!--寻找001的接口 -->
        <dependency>
            <groupId>com.powernode</groupId>
            <artifactId>mon0825-001springboot-dubbo-exterface</artifactId>
            <version>1.0.0</version>
        </dependency>
        <!--Spring Boot集成Dubbo的起步依赖  这个里面有google的json-->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.7.3</version>
        </dependency>
        <!-- zookeeper的客户端管理依赖  里面有zookeeper-->
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>2.12.0</version>
            <exclusions>
                <exclusion>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- zookeeper的api管理依赖 -->
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>2.12.0</version>
        </dependency>
        <!--ZooKeeper依赖 curator-framework里面有zookeeper 的依赖-->
<!--        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.14</version>
            <type>pom</type>
            <exclusions>
                <exclusion>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
        </dependency>-->

   3.3 customer的application.properties


#application 版本
spring.application.name=mon0825-002springboot-dubbo-provider
#配置内嵌Tomcat端口号
server.port=8253
#配置项目上下文根
server.servlet.context-path=/
#配置SpringMVC的视图解析器
#其中:/相当于src/main/webapp目录
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp
#配置数据库的链接
# 配置redis 的哨兵
#spring.redis.sentinel.master=mymaster
#spring.redis.sentinel.nodes=192.168.68.3:26380,192.168.68.3:26382,192.168.68.3:26384
#spring.redis.sentinel.password=123456
#配置dubbo
dubbo.application.name=mon0825-003springboot-dubbo-customer
dubbo.protocol.name=dubbo
dubbo.protocol.port=20881
dubbo.registry.address=zookeeper://192.168.68.3:2181

3.4 customer的controller

package com.powernode.web;/**
 * Created by Enzo Cotter on 2020/8/25.
 */

import com.powernode.service.StudentServiceDubbo;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

/**
 * ClassName: DubboController
 * Description:
 * Date: 2020/8/25 17:16
 * 作者博客 https://blog.csdn.net/linsenaa
 * @Author Lin
 */
@RestController
public class DubboController {
    /*
     * interfaceName 寻找接口 也是需要引入01 项目的jar包 maven引入就可以找到
     * version  版本号  如果你创建了不同的类实现了同一个接口  版本号就是识别你不同类的钥匙
     * timeout 超时:当消费者调用提供者时由于网络等原因有可能会造成长时间拿不到响应,
     *         而请求还在不断的发过来这就有可能造成线程阻塞,使用timeout设置超时时间当超过该时间就会抛出异常
     * retries 重试次数:当调用失败或超时后重新尝试调用的次数,其值不包含第一次。 默认是两次
     * @ Author Lin
     * @ CreateTime 2020/8/27 11:31
    */
    @Reference( interfaceName="com.powernode.service.StudentServiceDubbo",
                version = "1.0.0", check = false,
                timeout = 200, retries =2 )
    private StudentServiceDubbo studentServiceDubbo;
    @GetMapping("/queryAllStudentController")
    public String  queryAllStudentController() {
        String s = studentServiceDubbo.queryAllStudent();
        return s;
    }
}

 3.5 customer启动 注意在主启动类加上注解@EnableDubbo

(注意 你要先启动你的zookeeper  不管你是在虚拟机的liunx还是windows本地)

4  启动

4.1 zookeeper 启动

4.2 项目1 maven打包 安装(可以不看)

4.3 项目  private 启动 (可以不看)

4.4 项目 customer 启动(可以不看)

警告好像是因为元数据中心的配置  现在不影响 有时间在解释

2020-08-27 14:04:49.586  WARN 19272 --- [           main] o.a.d.common.config.ConfigurationUtils   :  [DUBBO] You specified the config centre, but there's not even one single config item in it., dubbo version: 2.7.3, current host: 192.168.68.1
2020-08-27 14:04:49.586  WARN 19272 --- [           main] o.a.d.common.config.ConfigurationUtils   :  [DUBBO] You specified the config centre, but there's not even one single config item in it., dubbo version: 2.7.3, current host: 192.168.68.1
2020-08-27 14:04:49.592  WARN 19272 --- [           main] org.apache.dubbo.config.AbstractConfig   :  [DUBBO] There's no valid metadata config found, if you are using the simplified mode of registry url, please make sure you have a metadata address configured properly., dubbo version: 2.7.3, current host: 192.168.68.1

 

4.5 成功页面

5 题外话题  dubbo admin 查看(有时间在补充吧)

 

5.1 linux 查看 偷个懒嘿嘿 完结 希望可以看明白  亲 点个赞再走

https://www.cnblogs.com/anqli-java/archive/2017/09/29/7610214.html

1. 首先通过命令切换到/usr/zookeeper-3.4.10/bin目录,然后输入

./zkCli.sh -server 127.0.0.1:2181
2. 然后在命令行再输入: 
ls /
3 在命令行依次输入: 
ls  /dubbo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringBoot工具类中使用Dubbo,首先需要确保已经完成了DubboSpringBoot的集成配置。在SpringBoot的配置文件中,需要设置Dubbo的相关配置,如application.id、application.name、registry.address、server等等。\[1\] 接下来,在工具类所在的包中添加Dubbo的依赖项。可以在pom.xml文件中添加以下依赖项: ```xml <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>3.1.0</version> </dependency> ``` 这样就可以引入Dubbo的Spring Boot Starter,以便在Spring Boot应用中使用Dubbo功能。\[2\] 然后,在Spring Boot的启动类上添加@EnableDubboConfiguration注解,以启用Dubbo的配置。同时,可以使用@MapperScan注解指定Dubbo的DAO包路径,以便自动扫描并注入Dubbo的Mapper接口。示例代码如下: ```java @MapperScan("com.xq.live.dubbo.dao") @EnableDubboConfiguration @SpringBootApplication public class DubboServerApplication { public static void main(String\[\] args) { SpringApplication.run(DubboServerApplication.class, args); } } ``` 这样就完成了在Spring Boot工具类中使用Dubbo的配置。可以在工具类中注入Dubbo的服务接口,并调用相应的方法来实现业务逻辑。 #### 引用[.reference_title] - *1* *3* [dubbospringboot的集成和使用dubbo-spring-boot-starter](https://blog.csdn.net/m0_67393295/article/details/126648167)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [dubbo教程总结(springboot+dubbo)](https://blog.csdn.net/black_pp/article/details/128102018)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值