spring dubbo 2.7.3 zookeeper 项目构建

首先安装服务端的zookeeper 版本最好和spring dubbo一致 2.7.3对应的zk版本是3.4.13 (安装过程略)
在这里插入图片描述
使用idea 构建多模块项目 引入需要的依赖
parent为项目的依赖中心 所有模块都是parent的子模块
common中放通用工具类等
interface中放业务层接口
service放业务实现类
web放controller、拦截器、过滤器、权限框架等
model放pojo等

common被除parent以外所有项目依赖
interface被service和web依赖
model被interface、service、web依赖

dubbo及zk所需的关键依赖
依赖

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <boot.version>2.2.0.RELEASE</boot.version>
        <dubbo.version>2.7.3</dubbo.version>
        <jackson.version>2.10.0</jackson.version>
        <mp.version>3.2.0</mp.version>
        <jdbc.version>8.0.17</jdbc.version>
        <servlet.version>3.1.0</servlet.version>
        <lombok.version>1.18.8</lombok.version>
        <commons-collections.version>3.2.2</commons-collections.version>
        <validation.version>2.0.1.Final</validation.version>
        <jwt.version>3.8.2</jwt.version>
    </properties>
    
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo-spring-boot-starter</artifactId>
                <version>${dubbo.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>${jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.validation</groupId>
                <artifactId>validation-api</artifactId>
                <version>${validation.version}</version>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-extension</artifactId>
                <version>${mp.version}</version>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>${mp.version}</version>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-annotation</artifactId>
                <version>${mp.version}</version>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${jdbc.version}</version>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-collections</groupId>
                <artifactId>commons-collections</artifactId>
                <version>${commons-collections.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

service中application.yml关键配置 数据源等按需配置启动
dubbo.registry.address的内容为你服务端ip地址和zkserver端口
dubbo.scan.base-packages里放的是你service实现类的包名
在这里插入图片描述
service实现类注解 注意这个service和spring的service不是同一个

import org.apache.dubbo.config.annotation.Service;
import org.springframework.stereotype.Component;

在这里插入图片描述

web配置同理
在这里插入图片描述
controller
在这里插入图片描述
依赖不再是构造注入或autowied
而是@Reference
因为接口在interface模块 而service和web都依赖了interface模块
所以service和web模块都能找得到这个接口

最后调用即可
显示灰色应该是idea还未支持这种方式注入

最后service和web的启动类上都要加
在这里插入图片描述
这个注解开启dubbo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Dubbo + Zookeeper项目启动顺序大致可以分为以下几个步骤: 1. **Zookeeper 启动**:首先,需要启动Zookeeper服务。这是集群管理的基础,用于协调分布式系统中各个节点的状态和服务发现。 2. **注册中心(Zookeeper作为注册中心)配置**:接下来,在Dubbo项目的配置文件中设置Zookeeper作为注册中心的信息,包括Zookeeper的地址、端口等信息。这一步决定了Dubbo应用如何通过Zookeeper与服务提供者和消费者交互。 3. **服务提供者启动**:服务提供者启动时,会向注册中心(即Zookeeper)注册其提供的服务。这里的注册过程包含了两个关键步骤: - **检查点**:在启动服务之前,通常会先检查某个状态点(如某个目录路径),以确保所有必要的组件已经就绪并正常运行。 - **注册服务**:服务提供者将自身的服务信息(例如服务名、版本、实现类等)注册到Zookeeper上,形成服务目录树结构,方便后续服务查找。 4. **服务消费者启动**:服务消费者在启动时,会从注册中心查询可用的服务列表。这个过程中可能会涉及到缓存机制,减少对注册中心的频繁访问压力。当消费者发现目标服务后,会建立连接并准备调用服务。 5. **服务调用**:在完成以上步骤之后,消费者就可以通过创建的连接调用提供者的服务了。Dubbo会负责处理服务调用的过程,包括序列化数据、网络传输、远程调用、异常处理等。 6. **关闭资源**:最后,在程序结束前,应确保所有资源得到正确的释放,避免内存泄漏或其他潜在的问题。 在这个过程中,Zookeeper 作为核心的协调服务,保证了服务提供者和服务消费者的稳定通信,并实现了动态服务发现的功能。Dubbo框架则提供了高效、易用的RPC(Remote Procedure Call)机制,使得服务间的调用更为便捷和可靠。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值