一、下载安装zk注册中心并启动:
官网地址:http://www.apache.org/dyn/closer.cgi/zookeeper/
我的是zookeeper-3.3.6版本的。下载之后需要修改下文件:进入zk的conf目录。复制下zoo_sample.cfg
这个文件并重命名为zoo.cfg,然后把修改该文件内容,下面是我的,这个只是单机配置:
# 心跳时间间隔 tickTime=2000 # The number of ticks that the initial # 初始化心跳次数 initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 # 数据文件存储路径 dataDir=D:\develop_soft\zookeeper-3.3.6\data # 端口 clientPort=2181
然后再进入bin目录,启动zk,见下图(ps:)要先启动zk不然dubbo连接会报错,
二、创建dubbo工程:
1、项目结构:
2 各个结构介绍
① api:主要是对外提供的一个接口jar模块。只定义一些接口
② provider:提供者,该模块主要是作为具体实现api中定义的接口的业务代码。同时作为dubbo的提供者。
该模块的dubbo的一些配置,放在application.properties中:
#dubbo 有关 #应用名称,消费者还是提供方 spring.dubbo.application.name=provider #zk注册中心的地址,如果是多个,用"," 分开 spring.dubbo.registry.address=zookeeper://127.0.0.1:2181 #协议类型 spring.dubbo.protocol.name=dubbo spring.dubbo.protocol.port=20880 #dubbo的扫描包,具体是自己引用dubbo的那个bean的位置 spring.dubbo.scan=prx.demo.dubbo.provider
实现方法:主要引入的注解是dubbo提供的
启动项目,提供方项目,再控制台看到有关dubbo的几个信息:注册,连接的并正常启动表明成功了
③consumer:
配置:
#dubbo配置 #应用名称,消费者还是提供方 spring.dubbo.application.name=consumer #zk注册中心的地址,如果是多个,用"," 分开 spring.dubbo.registry.address=zookeeper://127.0.0.1:2181 #dubbo的扫描包,具体是自己引用dubbo的那个bean的位置 spring.dubbo.scan=prx.demo.dubbo.consumer
具体调用,注意这个时候引用的bean的注解也是dubbo提供的那个:
启动然后就可以测试了。 这个是没问题的。
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>prx.sunx.demo</groupId> <artifactId>prx-sunx-demo-dubbo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> <name>prx-sunx-demo-dubbo</name> <description>Demo project for Spring Boot</description> <modules> <module>prx-sunx-demo-dubbo-provider</module> <module>prx-sunx-demo-dubbo-consumer</module> </modules> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.7.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <!--配置版本信息--> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <!--<dubbo.version>2.5.3</dubbo.version>--> <dubbo.version>1.0.0</dubbo.version> <zookeeper.version>3.4.6</zookeeper.version> <zkclient.version>0.5</zkclient.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>io.dubbo.springboot</groupId> <artifactId>spring-boot-starter-dubbo</artifactId> <version>${dubbo.version}</version> </dependency> <!--zk注册中心--> <dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> <version>${zkclient.version}</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>${zookeeper.version}</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> </project>
最后说下这简单的例子中遇到的一个坑:
如果是放在同一个模块中的话在建立包的时候提供方和消费方不要完全一样,主要是对于dubbo注入这块的包不要完全一样。 就是说:“spring.dubbo.scan=prx.demo.dubbo.consumer” 这个配置在扫描dubbo的bean时如果一样的话,会报错。可能是null,可能是报找不到对应的bean什么的。
上面就是springboot+dubbo+zk的一个简单入门例子。还有问题或者坑有待后续继续发掘,该日志仅记录下一个学习过程。欢迎交流哈
源码下载地址:https://github.com/sunholdIng/springBoot_dubbo.git
相关推荐
在这个"springboot+dubbo+zookeeper"的项目中,开发者使用SpringBoot作为基础框架,构建微服务应用。SpringBoot的自动配置特性使得初始化和配置过程更加简洁。然后,Dubbo被引入作为服务治理框架,它允许服务提供者...
springboot+dubbo+sentinel限流+定时器任务管理+API在线文档项目
本项目"springBoot+dubbo+zookeeper分布式微服务"充分利用了这三个组件的优势,构建了一个高效、可扩展且易于维护的服务网络。以下是对这些技术及其整合应用的详细说明: **SpringBoot** SpringBoot是Spring框架的...
-springboot+dubbo版.zip品优购电商系统--springboot+dubbo版.zip品优购电商系统--springboot+dubbo版.zip品优购电商系统--springboot+dubbo版.zip品优购电商系统--springboot+dubbo版.zip品优购电商系统--...
本项目通过"springboot+dubbo+zk"的组合,实现了基于注解方式的SpringBoot与Dubbo集成,从而减少了XML配置,提升了开发效率。 首先,SpringBoot是由Pivotal团队提供的一个用于简化Spring应用初始搭建以及开发过程的...
SpringBoot + Dubbo 是一种常见的微服务架构组合,它们在现代企业级应用程序开发中扮演着核心角色。SpringBoot 提供了快速构建独立、生产级别的基于 Spring 应用程序的方式,而 Dubbo 则是阿里巴巴开源的一款高性能...
【标题】"springboot+dubbo+nacos+mybatisplus+swagger+mysql" 是一个集成性的技术栈,用于构建高效、可扩展的企业级微服务应用。这个项目整合了多个流行的开源框架,包括Spring Boot、Dubbo、Nacos、MyBatis Plus、...
基于SpringBoot+Dubbo+React+ELK+区块链的阿梨房屋中介系统.docx基于SpringBoot+Dubbo+React+ELK+区块链的阿梨房屋中介系统.docx基于SpringBoot+Dubbo+React+ELK+区块链的阿梨房屋中介系统.docx基于SpringBoot+Dubbo...
基于SpringBoot+Dubbo+React+ELK+区块链的阿梨房屋中介系统.pdf基于SpringBoot+Dubbo+React+ELK+区块链的阿梨房屋中介系统.pdf基于SpringBoot+Dubbo+React+ELK+区块链的阿梨房屋中介系统.pdf基于SpringBoot+Dubbo+...
基于SpringBoot+Zookeeper+Dubbo打造分布式高并发商品秒杀系统 基于SpringBoot+Zookeeper+Dubbo打造分布式高并发商品秒杀系统 基于SpringBoot+Zookeeper+Dubbo打造分布式高并发商品秒杀系统 基于SpringBoot+...
springboot+dubbo+zookeeper实现分布式系统源码,dubbo-project总工程,dubbo-usercommon服务API工程,dubbo-userprovider提供服务工程,dubbo-usercuser消费服务工程
【标题】"springboot+dubbo+zookeeper+mybatis微服务demo"揭示了这个项目的核心技术栈,它是一个基于Spring Boot、Dubbo、Zookeeper和MyBatis实现的微服务示例。下面将详细阐述这些技术及其在微服务架构中的作用。 ...
在IT行业中,SpringBoot、Dubbo和MyBatis-Plus是三个非常重要的开源框架,它们分别专注于简化Spring应用开发、实现高性能的服务治理以及提供增强的MyBatis功能。本篇文章将详细探讨如何将这三个框架集成在一起,以...
【描述】"springboot+dubbo+mybatis+mybatis-plus+mysql的web层demo"进一步指出了这个项目在数据访问层的实现方式。Mybatis是流行的持久层框架,它简化了SQL操作,而Mybatis-Plus则是在Mybatis基础上的一个增强工具...
本项目只适合dubbo入门学习者,高手请不要浪费金钱; 本项目技术栈 springboot, dubbo ,无 zookeeper 本项目旨在提供最单纯的 dubbo 服务提供者 和消费者的点对点直连,而摒弃任何多余技术对dubbo直连的理解
总的来说,"SpringBoot+Dubbo实践"是一个典型的微服务架构示例,展示了如何利用Spring Boot的便捷性与Dubbo的高级服务治理功能,结合ZooKeeper实现服务的注册与发现。这不仅有助于开发者理解这些技术的工作原理,也...
标题 "Springboot+Redis+Dubbo+Rocketmq" 暗示了这是一个关于构建分布式系统的技术组合,其中Springboot作为基础框架,Redis用于缓存管理,Dubbo是服务治理框架,而Rocketmq则是消息中间件。现在,我们将深入探讨...
本文将深入探讨如何将SpringBoot、Dubbo、Zookeeper和MyBatis这四个关键技术进行集成,构建高效且可扩展的微服务架构。 **SpringBoot** SpringBoot是由Pivotal团队提供的全新框架,它旨在简化Spring应用的初始搭建...
这个项目组合"Springboot+dubbo+zookeeper+swagger+mybatisplus+mysql"正是为了实现这样的目标而设计的。让我们逐一深入探讨这些技术组件及其在系统中的作用。 首先,Spring Boot是Spring框架的一个精简版,它旨在...
自己手动搭建的nginx+springboot+zookeeper+dubbo+mybatis+dubboadmin,nginx做前后端分离,负载均衡,springboot+zookeeper+dubbo做后端接口,mybatis为数据库持久化层,dubboadmin做监控中心,解压直接用idea导入...