搭建dubbo-zk应用

简介: 本文介绍基于SpringBoot 2.2.2与Dubbo 2.0.0的分布式服务搭建,集成ZooKeeper作为注册中心,JDK 1.8环境。涵盖父工程创建、API模块定义、Provider服务提供与Consumer消费全流程,并附配置及验证步骤,助力快速掌握Dubbo微服务通信核心。

springboot:2.2.2alibaba.dubbo:2.0.0zkclinet:0.10JDK:1.81.创建父工程Idea或Eclipse创建普通Maven工程,GAV定义随意,也可以参考我的G:com.youzhaA:Dubbo_SoulV:1.0-SNAPSHOT父pom完整文件(该文件包括三个子module,在之后创建)

2.创建共用Dubbo_Api2.1 pom2.2 创建共用资源整体目录结构:|── com.youzha.dubbo|── dto            封装共用返回Result|── entity        共用参数,返回Body|── service      暴露Service,提供给第三方使用 3.创建提供者Dubbo_Provider3.1 pom3.2 Service需要注意的是,这里的@Service引自:import com.alibaba.dubbo.config.annotation.Service;,标注其为一个Dubbo的Service,而下面的@Component才是将其注入成一个Spring Bean。3.3 Controller这里的Controller模拟多个服务,除提供Dubbo接口外,自身还提供Http接口。3.4 启动类Application3.5 配置文件4.创建消费者Dubbo_Consumer4.1 pom4.2 Service4.2.1 定义Sevice这个Service是我们自己业务所需,只是在这个Service中的某些数据我们要调用Provider服务而已,这个和Provider提供的service本身没有直接关系,也不需要保持方法名,入参的完全一致,只是引用。4.2.2 定义ServiceImpl说明:实现是的我们自身的业务接口通过dubbo的@Reference注解,注入Provider的Service【而提供者是通过dubbo的@Service注解暴露,暴露和注入都在zookeeper获取】4.3 Controller4.4 启动类Application4.5 配置文件5.验证5.1 运行zookeeper当然前提是需要安装zk,配置文件也可以看到我这里启动的本地zk(如果你使用的其他地址的zk,替换上图zk的地址即可),如果没有可以参考这个附件:

zookeeper.rar(70.7 MB)运行前你需要解压打开:zookeeper-3.4.14\conf\zoo.cfg,确保对应的dataDir在你本地存在,如果是Linux系统换成对应的路径即可,下图示例:Windows本地进入:zookeeper-3.4.14\bin,如果你和我一样是Windows环境测试,双击:zkServer.cmd,如果你是Linux环境,启动zkServer.sh,二者效果完全一致,启动后类似下图则表示启动完成:5.2 启动提供者直接启动对应的启动类Application即可。5.3 启动消费者直接启动对应的启动类Application即可。5.4 请求验证postman发送地址请求:http://localhost:9092/consumer/getUserById?id=1查看消费者日志:查看提供者日志:6.总结如果你在本章节,运行并未出现上述效果,可能是哪里出错了,我们在接下来的网关接入,一样比对着可以修复,你可以百度自行解决当前问题,也可直接进入下一章节,进行网关接入,一起验证。

相关文章
【ES系列五】——集群搭建(多机集群&单机多节点集群)
集群是为一组互联的完整计算机,一起作为一个统一的计算资源而工作,给人以一台机器的感觉。
|
Java Apache Scala
【阿里云镜像】配置阿里云Maven 镜像
【阿里云镜像】配置阿里云Maven 镜像
25832 1
【阿里云镜像】配置阿里云Maven 镜像
|
存储 关系型数据库 MySQL
DataX: 阿里开源的又一款高效数据同步工具
DataX 是由阿里巴巴集团开源的一款大数据同步工具,旨在解决不同数据存储之间的数据迁移、同步和实时交换的问题。它支持多种数据源和数据存储系统,包括关系型数据库、NoSQL 数据库、Hadoop 等。 DataX 提供了丰富的数据读写插件,可以轻松地将数据从一个数据源抽取出来,并将其加载到另一个数据存储中。它还提供了灵活的配置选项和高度可扩展的架构,以适应各种复杂的数据同步需求。
|
2月前
|
人工智能 机器人 Java
黑马最新项目
AIGC项目涵盖大模型私有化部署、聊天机器人、RAG知识库及代码提示工具;天机AI集成SpringAI与多模型工作流;云岚到家聚焦微服务与分布式架构;四方保险构建统一支付与时序数据应用;星辰WMS与Dify项目即将发布。
109 0
黑马最新项目
|
2月前
|
canal 缓存 关系型数据库
微服务原理篇(Canal-Redis)
本文介绍了ES索引同步的常见方案,重点讲解Canal+MQ数据同步机制。通过解析MySQL的binlog日志,Canal模拟slave伪装接入主库,实现增量数据捕获,并结合RabbitMQ保证消息顺序性地同步至Elasticsearch。同时探讨了缓存一致性问题,提出使用分布式锁(如Redis)控制并发写操作,避免双写不一致。还涵盖Redis持久化、集群模式、过期淘汰策略及缓存三剑客(穿透、雪崩、击穿)的解决方案,系统梳理了高并发场景下的数据同步与缓存保障技术体系。
88 0
 微服务原理篇(Canal-Redis)
|
2月前
|
消息中间件 Java 数据安全/隐私保护
异步消息组件MQ基础
本课程学习RabbitMQ在微服务中的应用,涵盖MQ的应用场景、异步与同步调用区别、RabbitMQ的安装与配置、消息收发入门、工作队列模型及交换机类型(Fanout、Direct、Topic)等核心知识,并结合SpringAMQP实现消息通信与项目实战。
52 0
异步消息组件MQ基础
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
大模型专业名词解释手册
本手册由油炸小波设计提示词、Manus创作,系统梳理大语言模型核心概念,涵盖基础原理、训练技术、优化压缩、推理应用、评估调试及伦理安全六大模块,深入浅出解析LLM关键技术术语。
292 0
|
2月前
|
Arthas 存储 运维
记Arthas实现一次CPU排查与代码热更新
本文介绍使用Arthas排查Java应用CPU占用过高问题的完整流程,涵盖线程分析、阻塞定位、watch命令追踪异常、jad反编译实现热更新及火焰图分析,实现无需重启应用的高效故障排查与代码修复。
91 0
|
2月前
|
XML 算法 安全
详解RAG五种分块策略,技术原理、优劣对比与场景选型之道
RAG通过检索与生成结合,提升大模型在企业场景的准确性与可控性。分块策略是其核心,直接影响检索效果与生成质量。本文系统解析五种主流分块方法:固定大小、语义、递归、基于结构及LLM分块,对比其优缺点与适用场景,并提出组合优化建议,助力构建高效、可信的RAG系统。
124 0
|
5月前
|
Java 测试技术 数据库
使用Spring的@Retryable注解进行自动重试
在现代软件开发中,容错性和弹性至关重要。Spring框架提供的`@Retryable`注解为处理瞬时故障提供了一种声明式、可配置的重试机制,使开发者能够以简洁的方式增强应用的自我恢复能力。本文深入解析了`@Retryable`的使用方法及其参数配置,并结合`@Recover`实现失败回退策略,帮助构建更健壮、可靠的应用程序。
693 1
使用Spring的@Retryable注解进行自动重试