返回顶部
首页 > 资讯 > 精选 >springBoot+dubbo+zookeeper如何实现分布式开发应用
  • 458
分享到

springBoot+dubbo+zookeeper如何实现分布式开发应用

2023-06-29 11:06:55 458人浏览 安东尼
摘要

小编给大家分享一下SpringBoot+dubbo+ZooKeeper如何实现分布式开发应用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!环境搭建项目结构图:1.我们首先做好服务端pom.xml  &n

小编给大家分享一下SpringBoot+dubbo+ZooKeeper如何实现分布式开发应用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

环境搭建

项目结构图:

springBoot+dubbo+zookeeper如何实现分布式开发应用

1.我们首先做好服务端

pom.xml

   <dependencies>        <!--导入依赖:Dubbo + zookeeper-->        <dependency>            <groupId>org.apache.dubbo</groupId>            <artifactId>dubbo-spring-boot-starter</artifactId>            <version>2.7.3</version>        </dependency>        <!--引入zkclient-->        <dependency>            <groupId>com.GitHub.sgroschupf</groupId>            <artifactId>zkclient</artifactId>            <version>0.1</version>        </dependency>        <!--引入zkclient,可能会日志冲突,还需要剔除日志依赖-->        <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.14</version>            <!--排除这个slf4j-log4j12-->            <exclusions>                <exclusion>                    <groupId>org.slf4j</groupId>                    <artifactId>slf4j-log4j12</artifactId>                </exclusion>            </exclusions>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-WEB</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-test</artifactId>            <scope>test</scope>        </dependency>    </dependencies>

application.properties

server.port=8001# 服务应用名字dubbo.application.name=provider-server# 注册中心地址dubbo.reGIStry.address=zookeeper://127.0.0.1:2181# 哪些服务要被注册dubbo.scan.base-packages=com.wlm.service

TicketService

package com.wlm.service;public interface TicketService {    public String getTicket();}

TicketServiceImpl.java

package com.wlm.service;import org.apache.dubbo.config.annotation.Service;import org.springframework.stereotype.Component;//zookeeper:服务注册与发现@Service //可以被扫描到,在项目一启动就自动注册到注册中心@Component //使用了Dubbo后尽量不要用Service注解public class TicketServiceImpl implements TicketService {    @Override    public String getTicket() {        return "咸鱼_翻身";    }}

2.启动服务端

打开服务端,开启之后不要点掉,让他在后台运行:

springBoot+dubbo+zookeeper如何实现分布式开发应用

执行服务端的jar包,待会我们要监控服务端:

springBoot+dubbo+zookeeper如何实现分布式开发应用

运行上面的服务端代码,然后去游览器中查看
Http://localhost:7001/

springBoot+dubbo+zookeeper如何实现分布式开发应用

3.我们再来做客户端

pom.xml

<dependencies>        <!--导入相关的依赖-->        <!--导入依赖:Dubbo + zookeeper-->        <dependency>            <groupId>org.apache.dubbo</groupId>            <artifactId>dubbo-spring-boot-starter</artifactId>            <version>2.7.3</version>        </dependency>        <!--引入zkclient-->        <dependency>            <groupId>com.github.sgroschupf</groupId>            <artifactId>zkclient</artifactId>            <version>0.1</version>        </dependency>        <!--引入zkclient,可能会日志冲突,还需要剔除日志依赖-->        <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.14</version>            <!--排除这个slf4j-log4j12-->            <exclusions>                <exclusion>                    <groupId>org.slf4j</groupId>                    <artifactId>slf4j-log4j12</artifactId>                </exclusion>            </exclusions>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-test</artifactId>            <scope>test</scope>        </dependency>    </dependencies>

application.properties

server.port=8002# 消费者去哪里拿服务,需要暴露自己的名字dubbo.application.name=consumer-server# 注册中心的地址,可以在任何电脑上!dubbo.registry.address=zookeeper://127.0.0.1:2181

TicketService

package com.wlm.service;public interface TicketService {    public String getTicket();}

UserService.java

package com.wlm.service;import org.apache.dubbo.config.annotation.Reference;import org.springframework.stereotype.Service;@Service //放到容器中,注意区分public class UserService {    //想拿到provider-server提供的票,要去注册中心拿到服务    @Reference //引用, pom坐标,可以定义路径相同的接口名    TicketService ticketService;    public void buyTicket(){        String ticket = ticketService.getTicket();        System.out.println("在注册中心拿到=>"+ticket);    }}

ConsumerServerApplicationTests.java

package com.wlm;import com.wlm.service.UserService;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;@SpringBootTestclass ConsumerServerApplicationTests {    @Autowired    UserService userService;    @Test    void contextLoads() {        userService.buyTicket();    }}

运行ConsumerServerApplicationTests.java结果:拿到服务端的”咸鱼_翻身“

springBoot+dubbo+zookeeper如何实现分布式开发应用

4.总结

前提:zookeeper服务已经开启

首先提供者提供服务

  • 导入依赖

  • 配置注册中心的地址,以及服务发现名,和要扫描的包

  • 在想要被注册的服务上面增加一个注解@Service

消费者如何消费

  • 导入依赖

  • 配置注册中心的地址,配置自己的服务名

  • 从远程注入服务 @Reference

springBoot+dubbo+zookeeper如何实现分布式开发应用

看完了这篇文章,相信你对“springBoot+dubbo+zookeeper如何实现分布式开发应用”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: springBoot+dubbo+zookeeper如何实现分布式开发应用

本文链接: https://lsjlt.com/news/324488.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • springBoot+dubbo+zookeeper如何实现分布式开发应用
    小编给大家分享一下springBoot+dubbo+zookeeper如何实现分布式开发应用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!环境搭建项目结构图:1.我们首先做好服务端pom.xml  &n...
    99+
    2023-06-29
  • springBoot+dubbo+zookeeper实现分布式开发应用的项目实践
    目录环境搭建1.我们首先做好服务端2.启动服务端3.我们再来做客户端4.总结环境搭建 项目结构图: 1.我们首先做好服务端 pom.xml <dependencies&...
    99+
    2024-04-02
  • 怎么用springboot+zookeeper实现分布式锁
    本篇内容主要讲解“怎么用springboot+zookeeper实现分布式锁”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用springboot+zookeeper实现分布式锁”吧!Inte...
    99+
    2023-06-29
  • zookeeper分布式锁如何实现
    这篇文章主要介绍“zookeeper分布式锁如何实现”,在日常操作中,相信很多人在zookeeper分布式锁如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”zookeeper分布式锁如何实现”的疑惑有所...
    99+
    2023-06-27
  • Zookeeper如何实现分布式锁
    这篇“Zookeeper如何实现分布式锁”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Zookeeper如何实现分布式锁”文...
    99+
    2023-06-27
  • SpringBoot中如何使用Dubbo分布式服务
    SpringBoot中如何使用Dubbo分布式服务,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。改造前之前在 SpringBoot 中使用 Dubbox是这样的。先简单记录...
    99+
    2023-06-05
  • Springboot如何整合Dubbo/ZooKeeper实现SOA案例
    这篇文章给大家分享的是有关Springboot如何整合Dubbo/ZooKeeper实现SOA案例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、为啥整合 Dubbo 实现 SOADubbo 不单单只是高性能的...
    99+
    2023-05-30
    springboot dubbo soa
  • Java如何实现ZooKeeper分布式锁
    这篇文章主要介绍了Java如何实现ZooKeeper分布式锁,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。什么是分布式锁在我们进行单机应用开发,涉及并发同步的时候,我们往往采...
    99+
    2023-06-29
  • 使用Zookeeper实现分布式锁
    目录什么是临时顺序节点?Znode分为四种类型1.持久节点 (PERSISTENT)2.持久节点顺序节点(PERSISTENT_SEQUENTIAL)3.临时节点(EPHEMERAL...
    99+
    2022-11-13
    Zookeeper分布式锁 分布式锁 使用分布式锁
  • springboot+zookeeper实现分布式锁的示例代码
    目录依赖本地封装配置测试代码JMeter测试InterProcessMutex内部实现了zookeeper分布式锁的机制,所以接下来我们尝试使用这个工具来为我们的业务加上分布式锁处理...
    99+
    2024-04-02
  • 如何使用Java开发分布式应用?
    Java是一门广泛使用的编程语言,广泛应用于开发分布式应用程序。本文将介绍如何使用Java开发分布式应用程序,包括分布式应用程序的基本概念、Java的分布式应用程序开发工具和技术,以及分布式应用程序的开发实践。 一、分布式应用程序的基本概念...
    99+
    2023-11-07
    path 分布式 开发技术
  • 如何操作Redis和zookeeper实现分布式锁
    如何操作Redis和zookeeper实现分布式锁 在分布式场景下,有很多种情况都需要实现最终一致性。在设计远程上下文的领域事件的时候,为了保证最终一致性,在通过领域事件进行通讯的方式中,可以共享存储(领域...
    99+
    2022-06-04
    分布式 操作 Redis
  • 如何使用Bash IDE实现Java分布式开发?
    随着Java的广泛应用,越来越多的开发人员开始涉足Java分布式开发。而Bash IDE作为一种轻量级的IDE,具有易用性和高效性,成为了Java分布式开发的一种选择。本文将介绍如何使用Bash IDE实现Java分布式开发。 一、什么是B...
    99+
    2023-06-30
    分布式 bash ide
  • SpringBoot+Redis如何实现分布式锁
    这篇文章主要介绍了SpringBoot+Redis如何实现分布式锁,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。jedis的nx生成锁 如何删除锁 模拟抢...
    99+
    2023-06-16
  • Zookeeper如何实现分布式服务配置中心
    本篇文章为大家展示了Zookeeper如何实现分布式服务配置中心,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1 Linux安装并启动Zookeeper1.1 安装下载链接:https://arch...
    99+
    2023-06-25
  • web开发中如何实现响应式布局
    这篇文章给大家分享的是有关web开发中如何实现响应式布局的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。响应式布局响应式布局在面对不同分辨率设备灵活性强,在平时的网页设计中基本上都...
    99+
    2024-04-02
  • 如何使用Python与Laravel开发分布式应用?
    分布式应用是一个复杂的系统,需要高效的通信协议和数据传输,同时还需要处理大量的数据和并发访问。Python和Laravel分别是两个非常强大的编程语言和框架,它们可以帮助我们快速开发高效的分布式应用。本文将介绍如何使用Python和Lara...
    99+
    2023-08-27
    分布式 开发技术 laravel
  • java开发分布式服务框架Dubbo调用过程
    目录大致流程调用请求的具体信息协议Dubbo协议序列化器调用流程图调用流程源码分析——客户端模板方法模式路由和负载均衡调用的三种方式调用流程源码分析——服务端总结大致流程 客户端根据...
    99+
    2024-04-02
  • ZooKeeper能否用于分布式锁的实现
    是的,ZooKeeper可以用于分布式锁的实现。ZooKeeper是一个分布式协调服务,可以用来实现分布式系统中的一些共享资源管理问...
    99+
    2024-03-07
    ZooKeeper
  • SpringBoot之如何使用Redis实现分布式锁
    小编给大家分享一下SpringBoot之如何使用Redis实现分布式锁,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!springboot是什么springboot一种全新的编程规范,其设计目的是用来简化新Spring应用的...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作