开发者

Windows下Dubbo+Zookeeper实现分布式部署教程

目录
  • 前言
  • 一、环境准备
  • 二、使用步骤
    • 1. 创建项目
    • 2. 引入依赖
    • 3. 在接口模块定义接口
    • 4. 在服务提供模块定义服务实现
    • 5. 在服务消费模块进行服务调用
    • 6. 启动provider&consumer
    • 7. 调用
  • 总结

    前言

    使用Dubbo+Zookeeper实现分布式服务部署,环境提前准备好,并不局限于当前版本,只是更高版本的依赖注解等有些区别,整体实现思路不变。

    提示:以下是本篇文章正文内容,下面案例可供参考

    一、环境准备

    本地环境如下:

    1. 1. JDK1.8
    2. 2. Maven3.6.3
    3. 3. IDE:IDEA2024
    4. 4. Tomcat8.5.99
    5. 5. Zookeeper3.6.4
    6. 6. Dubbo2.5.10

    二、使用步骤

    1. 创建项目

    项目结构如下:

    Windows下Dubbo+Zookeeper实现分布式部署教程

    dubbo-common:父项目

    • dubbo-consumer:服务消费端
    • dubbo-interface:接口
    • dubbo-provider:服务提供端

    2. 引入依赖

    服务消费端和服务提供端需要引入接口模块:

            <dependency>
                <groupId>com.xxxxxx</groupId>
                <artifactId>dubbo-interface</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </depjsendency>

    以及zookeeper和dubbo相关依赖:

            <!-- Dubbo 依赖 -->
            <dependency>
                <groupId> com.alibaba</groupId>
                <artifactId>dubbo</artifactId>
                <version>2.5.10</version>
                <type>jar</type>
            </dependency>
            <!-- Zookeeper 客户端依赖 -->
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-framework</artifactId>
                <version>5.2.0</version>
            </dependency>
            <!-- 添加 zkclient 依赖 -->
            <dependency>
                <groupId>com.101tec</groupId>
                <artifactId>zkclient</artifactId>
                <version>0.10</version>
            </dependency>
            <!-- 显式指定ZooKeeper版本 -->
            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
                <version>3.6.4</version>
            </dependency>
            http://www.devze.com<!-- Spring Context 依赖 -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>5.3.8</version>
            </dependency>

    3. 在接口模块定义接口

    public interface UserService {
        /**
         * 获取用户名
         * @param userName
         * @return
         */
        String g编程客栈etUserName(String userName);
    }

    4. 在服务提供模块定义服务实现

    (注意实现的为接口模块的Service)

    @Service
    public class UserServiceImpl implements UserService {
        /**
         * 获取用户名
         * @param userName
         * @return
         */
        @Override
        public String getUserName(String userName) {
            return "hello" + userName;
        }
    }

    其中@Service注解为

    import com.alibaba.dubbo.config.annotation.Service;

    同时增加dubbo的配置

    # Dubbo 配置
    dubbo.application.name=dubbo-provider
    dubbo.registry.address=zookeeper://127.0.0.1:2181
    dubbo.protocol.name=dubbo
    dubbo.protocol.port=20880

    启动类加注解

    @EnableDubbo

    5. 在服务消费模块进行服务调用

    (注意注入的为接口模块的Service)

    @RestController
    public class UserController {
    
        @Reference
        private UserService userService;
    
        @GetMapping("/getUserName")
        public String getUserName(@RequestParam String userName) {
            System.out.println("用户名:" + userName);
            return userService.getUserName(userName);
        }
    }

    其中@Reference注解为

    import com.alibaba.dubbo.config.annotation.Reference;

    同样添加配置信息和注解,配置的name改为dubbo-consumer

    6. 启动provider&consumer

    Dubbo查看服务

    Windows下Dubbo+Zookeeper实现分布式部署教程

    7. 调用

    http://localhost:8086/ge编程客栈tUserName?userName="张三"

    Windows下Dubbo+Zookeeper实现分布式部署教程

    总结

    以上就是今天要讲的内容,本文简单介绍了如何使用Dubbo+编程客栈Zookeeper实现简单的服务调用,后续可以将服务部署在不同的服务器上,实现真正的分布式部署。

    第一次实现想了想还是记录一下,给同样小白的朋友参考。

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜