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

相关文章
|
2月前
|
数据采集 数据挖掘 BI
什么是数据标准?数据标准有什么作用?
本文深入浅出地解析了“数据标准”的核心概念、实践价值与落地方法。通过真实场景切入,阐明数据标准如何统一业务语言、保障数据质量、打破孤岛,并推动数据驱动决策。强调其为数据治理的基石,需从业务出发,小步快跑,工具化落地。
|
2月前
|
项目管理 开发者
业务架构图
本文系统阐述了业务架构图的核心概念与绘制方法,涵盖业务定义、架构分层(组织层、基础能力层、业务能力层、应用层)、分模块与分功能的实践步骤,并结合医院场景示例,解析如何通过分层分类构建清晰的业务视图,提升客户理解与开发效率。
业务架构图
|
2月前
|
运维 Devops 开发工具
生产环境缺陷管理
git-poison基于go-git实现,通过“投毒-解毒”机制在分布式环境中高效追踪与管理bug,避免多分支开发中的漏修、漏发问题。自动化卡点发布流程,降低协同成本,提升发布安全性与效率,已在团队中稳定运行一年以上。
 生产环境缺陷管理
|
2月前
|
消息中间件 人工智能 NoSQL
|
2月前
|
人工智能 缓存 Java
|
2月前
|
Dubbo Java 应用服务中间件
|
2月前
|
Java 关系型数据库 MySQL