springboot配置rabbitmq消费者数量 springboot dubbo消费者

admin2024-06-01  11

本文采用版本springboot 2.x 

linux 安装的zookeeper版本 3.5.5 

idea dubbo版本2.7.3  zookeeper版本 3.4.8

springboot配置rabbitmq消费者数量 springboot dubbo消费者,springboot配置rabbitmq消费者数量 springboot dubbo消费者_zookeeper,第1张

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

pojo和你的接口

jar包,其他的项目需要引入这个公共接口的jar包

springboot配置rabbitmq消费者数量 springboot dubbo消费者,springboot配置rabbitmq消费者数量 springboot dubbo消费者_zookeeper_02,第2张

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

找不到你的接口

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

    2.1 provider项目的整体路径

springboot配置rabbitmq消费者数量 springboot dubbo消费者,springboot配置rabbitmq消费者数量 springboot dubbo消费者_分布式_03,第3张

  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
 * 文章地址原创地址 
 * @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";
        }
}

@EnableDubbo

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

 

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

   3.1 customer项目的整体路径

     

springboot配置rabbitmq消费者数量 springboot dubbo消费者,springboot配置rabbitmq消费者数量 springboot dubbo消费者_zookeeper_04,第4张

   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
 * 作者博客 
 * @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;
    }
}

@EnableDubbo

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

4  启动

4.1 zookeeper 启动

springboot配置rabbitmq消费者数量 springboot dubbo消费者,springboot配置rabbitmq消费者数量 springboot dubbo消费者_java_05,第5张

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

springboot配置rabbitmq消费者数量 springboot dubbo消费者,springboot配置rabbitmq消费者数量 springboot dubbo消费者_分布式_06,第6张

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

springboot配置rabbitmq消费者数量 springboot dubbo消费者,springboot配置rabbitmq消费者数量 springboot dubbo消费者_zookeeper_07,第7张

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

springboot配置rabbitmq消费者数量 springboot dubbo消费者,springboot配置rabbitmq消费者数量 springboot dubbo消费者_网络_08,第8张

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

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 成功页面

springboot配置rabbitmq消费者数量 springboot dubbo消费者,springboot配置rabbitmq消费者数量 springboot dubbo消费者_spring_09,第9张

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

 

springboot配置rabbitmq消费者数量 springboot dubbo消费者,springboot配置rabbitmq消费者数量 springboot dubbo消费者_网络_10,第10张

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!