搭建dubbo-zk应用

简介: /

1.创建父工程
Idea或Eclipse创建普通Maven工程,GAV定义随意,也可以参考我的
G:com.youzha
A:Dubbo_Soul
V:1.0-SNAPSHOT

父pom完整文件(该文件包括三个子module,在之后创建)

2.创建共用Dubbo_Api
2.1 pom
2.2 创建共用资源

整体目录结构:
|── com.youzha.dubbo
|── dto            封装共用返回Result
|── entity        共用参数,返回Body
|── service      暴露Service,提供给第三方使用

publicinterfaceUserservice

/大*

*ID查找用户

用户ID

@paramid

USER对象

@return

UserfindById(intid);

@Data

@ToString

@Altargsconstructor

SResultDtoTimplementsserializable

publicclassR

privateintcode;

privatestringmsg;

privateTdata;

publicResultDTo(intcode,tigmg)

this.code

-code;

this.msg-msg;

@Data

@ALtArgsConstructor

@NoArgsconstructor

@ToString

publicclassUserimplementsserializabte

privateIntegerid;

privatestringname;

privateLongage;

privateDatebirthDay;


3.创建提供者Dubbo_Provider
3.1 pom
3.2 Service
需要注意的是,这里的@Service引自:import com.alibaba.dubbo.config.annotation.Service;,标注其为一个Dubbo的Service,而下面的@Component才是将其注入成一个Spring Bean。
3.3 Controller
这里的Controller模拟多个服务,除提供Dubbo接口外,自身还提供Http接口。
3.4 启动类Application
3.5 配置文件
4.创建消费者Dubbo_Consumer
4.1 pom
4.2 Service
4.2.1 定义Sevice

这个Service是我们自己业务所需,只是在这个Service中的某些数据我们要调用Provider服务而已,这个和Provider提供的service本身没有直接关系,也不需要保持方法名,入参的完全一致,只是引用。
4.2.2 定义ServiceImpl
说明:
实现是的我们自身的业务接口
通过dubbo的@Reference注解,注入Provider的Service【而提供者是通过dubbo的@Service注解暴露,暴露和注入都在zookeeper获取】
4.3 Controller
4.4 启动类Application
4.5 配置文件
5.验证
5.1 运行zookeeper
当然前提是需要安装zk,配置文件也可以看到我这里启动的本地zk(如果你使用的其他地址的zk,替换上图zk的地址即可),如果没有可以参考这个附件:

zookeeper.rar(70.7 MB)

运行前你需要解压打开:zookeeper-3.4.14\conf\zoo.cfg,确保对应的dataDir在你本地存在,如果是Linux系统换成对应的路径即可,下图示例:Windows本地

#Thenumberofmillisecondsofeachtick

tickTime-2000

#Thenumberofticksthattheinitial

#synchronizationphasecantake

initLimit-10

#Thenumberofticksthatcanpassbetween

#sendingarequestandgettinganacknowledgeme

syncLimit-5

#thedirectorywherethesnapshotisstored

#donotuse/tmpforstorage,/tmphereisjus

#examplesakes

dataDiraD:izookeeperldata

#theportatwhichtheclientswillconnect

clientPort-2181

#themaximumnumberofclientconnections

#increasethisifyo

sifyouneedtohandlemoreclients

#maxClientCnxns-60


进入:zookeeper-3.4.14\bin,
如果你和我一样是Windows环境测试,双击:zkServer.cmd,
如果你是Linux环境,启动zkServer.sh,二者效果完全一致,启动后类似下图则表示启动完成:

CAWindowsisystem32\cmdexe

2020-02-@415:1?:4615[yid:

INFO

Lmain:Environmente100]

Seruer

enuifonm

entijava.compilernA

[main:Enuironmente100

INFO

2020-02-0415:17:46151[myi:

Seryerenviron

entaos.name-Windows?

2020420415:17:46151[yid:-INFo[m

Ro[main:Environmente100]

SerueF

enuifonm

entios.arch-and64

202907-0415:17:46153aroe

Seruer

enuironm

entios.uersion-6.1

2020-02-0415:1?:46153[myid:

INFO

Lmain:Environmente100]

Seruerenvironm

entauser-name-Administrator

Lmain:Engironmente100]

INFO

2020-020415:17:46153[myidINi

Seruerenvifonm

ent:user.hone-calUsersadministrator

2029070415:17:46.153a

Seruer

ronm

enu

ent:user.dir-D:zookeeperzookeeper-3.4.14bin

2020-02-415:17:46166[myid:]

J-INFO

LmainZookeeperseruerc836]

ticktime

tto2000

2020070415:17:46.

minSession

imeoutsetto-1

202042-0415:12:46168yi:INFo

ainZookeeperserver28541maxSeso

imeoutsetto-1

[mainSeruerCnxnFactorye1171Using

2020020415:17:46.210[yid:-INFO

org

apachek

INFO[mainaNioserverCnxnFactorye891-binding

2020-020415:17:46.215Lmyid:]-INFC

toporto.o.o.o/0.0.0.02181


5.2 启动提供者
直接启动对应的启动类Application即可。
5.3 启动消费者
直接启动对应的启动类Application即可。
5.4 请求验证

http://ocalhost9092consumegeUseByldkid-

GET

BodyPre-requestSaripr

Authoryzation

Settings

Headers(

Tests

Paroms

QueryParams

KEY

VALUE

Value

Headers(5)

Body

Cookies

TestResults

JSON

Preview

Pretty

Visualize

Raw

code":200

"msg":"获取成功",

Data:f

iq:1,

youzha"

age":1

birthDay:2929-87-84T89:46:23910+0000"

10



postman发送地址请求:http://localhost:9092/consumer/getUserById?id=1

查看消费者日志:

工云:下

ILUMYWWUWWUEIVHCEUSEUVHETMMUEEWURIC

2020878417:45:59.0961N1026144-

mainls.c.s..ntocesshu

wm:mm:mu/,边,

"rulewam":"/consumer/consumer/*"enbledtru

.

bw.oo

2920070417:45:59258IN

LnitializingExecutorService

581N10201M4---1

mainlo.S.S.concurfent.threadPoollaskxecutor

'aPplicstionTaskExecuLor'

202010417:4559.6451N020144

maino.s.ba.eweb.EndpaintlinksHesoler

Expasing2endpoint(s)beneathbasepa

'actuator

Tomcatstartedonport(6):9a97(http)wth

7071078417:45:59706INF070144

main]o.5.h.m.ebedded.tocat.Toacatkebserer

StartedDubhucorsmerAppleatonin7.123

2020070417:45:59708T

INFN20144

MIn]eyuuzha.ob.nutocngerppllrton

SECONDsJMFunningTorB498

4D172.16.30.17]u.a.c.c.c.ouca.ocqs.

IniLialidingSpringDispalcherSerle

2020070417:45:00471INF020144

dispatcherSerVlet

InitializingServletdispatcherserylet

2020070417:46:00472INF020144

Josweb.serylet.DispatcheRSerlet

2026076417:46:00519

TNFN20144

1n.fwh.sewvier.pipatcherserlet

[nio-99q2-exec-6lc.v.dubbo.controronnto

2920-070417:46:23164INF020144

10209417:46398107Lmlumy.mom

海袁欢取用户,已为:cr(小,

name-youzha2g-birtDa


查看提供者日志:

RuDuslbowd:cDatbonvwwiusuApuhulic

工安A流

UHAIUEWHPOLLWNUNMMI

Initiatingclientconnection,

2020070117128

tommtstrin-177.0.8.1

r-arp.tatee.kelienl7kclirnt41cc7119

DUBBOCONAUMETADOLKAUONSOY

202007117:15:28630IN011968

[elientConnector]

HAITiNgFOrKEEPERSTATESYNcConNecTed

QRgIoItec.zkclientZkclient

2026076417:45:78673TF011968

127.0.0.1:21877BuCHekPERCeNCIX

OpcningsockeleonclonLooerver

17.00

3020076417:47:78674TNF011968

[127.0.0.1:2181..-mpacteokcrurclenlCex

Sockelcocetionestablisthedlo127.0.0

1/127.0.01:2181initiatingsession

2026070417:45:28736INF0119681

127.6.0.1:218E..pache.oukcerer.clicntcn

Sessionestablishnentcompleleonserver

127001

2020070417:45:28.738INF011968---

2w0keepersLlechanged(SyncCorirecleo)

ttr[ventThrenjott.torlec.ckclienl.zkclienl

2020U1041/:1512BJ41NI1196-

main]o.s.b.w.embedded.tomcat.

contexlpathor

202041/:4512B99IN011964--

mainley

startedDubbaProviderhpplicationin6.54

]cyouzha.dubbo.bubboproviderpplication

Secords(Mrunningtor7.571)

p1/2.16.8.1/o.c.LLomcatl.fLocaihost.

292081841/:45:299511M01196日

小ispetcherSerylet*

D-1/2.16.30.1/o.s.mb.serlet.Dispatchensere

LnitializingSeryletdispatcherseret

2820870417:45:299511N01196

D172.16.30.177L0..mbservlet.DispatcherSur

2020070417:45:29.967TNF011968

:Coaoletedinitalizationin16ms

[:26w89thread-2]c.y.dubbo.serce.m.u

提侨奇返叫数器:USEr(id-

2020078417:46:23910INF01196

熠1birthDaySatu476:23T02


6.总结
如果你在本章节,运行并未出现上述效果,可能是哪里出错了,我们在接下来的网关接入,一样比对着可以修复,你可以百度自行解决当前问题,也可直接进入下一章节,进行网关接入,一起验证。

相关文章
|
4月前
|
数据采集 数据挖掘 BI
什么是数据标准?数据标准有什么作用?
本文深入浅出地解析了“数据标准”的核心概念、实践价值与落地方法。通过真实场景切入,阐明数据标准如何统一业务语言、保障数据质量、打破孤岛,并推动数据驱动决策。强调其为数据治理的基石,需从业务出发,小步快跑,工具化落地。
|
Java 数据库连接 数据库
Spring 与【MyBatis 】和【 pageHelper分页插件 】整合
Spring 与【MyBatis 】和【 pageHelper分页插件 】整合
473 0
|
人工智能 测试技术 API
Windows用户必备:Postman v11详细安装指南与API测试入门教程(附官网下载
Postman是全球领先的API开发与测试工具,支持REST、SOAP、GraphQL等协议调试。2025年最新版v11新增AI智能生成测试用例、多环境变量同步等功能,适用于前后端分离开发、自动化测试、接口文档自动生成及团队协作共享API资源。本文详细介绍Postman的软件定位、核心功能、安装步骤、首次配置、基础使用及常见问题解答,帮助用户快速上手并高效利用该工具进行API开发与测试。
|
存储 负载均衡 监控
dubbo学习一:zookeeper与dubbo的关系,下载安装启动zookeeper(解决启动中报错)
这篇文章是关于Apache Dubbo框架与Zookeeper的关系,以及如何下载、安装和启动Zookeeper的教程,包括解决启动过程中可能遇到的报错问题。
699 3
dubbo学习一:zookeeper与dubbo的关系,下载安装启动zookeeper(解决启动中报错)
|
SQL 安全 Java
【Mybatis】Mybatis如何防止sql注入
【Mybatis】Mybatis如何防止sql注入
|
自然语言处理 Java 开发者
简单了解下Spring中的各种Aware接口实现依赖注入
【8月更文挑战第21天】在Spring框架中,Aware接口系列是一种特殊的机制,它允许Bean在初始化过程中获取到Spring容器或容器中的特定资源,从而实现了更加灵活和强大的依赖注入方式。本文将围绕Spring中的各种Aware接口,详细探讨它们如何帮助开发者在工作和学习中更好地实现依赖注入。
588 0
|
Java API
SpringBoot WebService 及 注意项
SpringBoot WebService 及 注意项
229 0
|
XML Java 开发者
【Spring源码解读 底层原理高级进阶】【上】探寻Spring内部:BeanFactory和ApplicationContext实现原理讲解
【Spring源码解读 底层原理高级进阶】【上】探寻Spring内部:BeanFactory和ApplicationContext实现原理讲解
|
XML Java 数据格式
Spring Beans的魔法门:解密多种配置方式【beans 四】
Spring Beans的魔法门:解密多种配置方式【beans 四】
279 0
|
存储 JSON 算法
SpringBoot整合JWT
SpringBoot整合JWT
365 0

热门文章

最新文章