2.搭建dubbo-zk应用

简介: ascascasc

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

若有收获,就点个赞吧


相关文章
freemarker中对null值的处理
官方文档 ​​​​​​FreeMarker 中文官方参考手册 (foofun.cn)
1082 0
|
Java Maven
程序包org.springframework.transaction.annotation不存在
整合ssm报:程序包org.springframework.transaction.annotation不存在 使用注解: @Transactional 之后,就一直报不存在 最终找到原因是:maven依赖 spring-tx版本问题,换个版本就OK
1920 0
程序包org.springframework.transaction.annotation不存在
|
安全 网络安全 数据库
达梦数据库 忘记 SYSDBA 密码 处理方法
达梦数据库支持四种安全验证模式:数据库身份验证、基于操作系统的身份验证、外部身份验证和UKEY验证。当忘记SYSDBA密码时,可通过启用操作系统认证模式来恢复:修改`dm.ini`配置文件启用`ENABLE_LOCAL_OSAUTH = 1`,重启服务后,使用`disql / as sysdba`登录修改密码。之后,禁用操作系统认证,恢复原验证模式,确保数据库安全。
4873 0
|
存储 SQL 大数据
大数据技术之ClickHouse---入门篇---介绍
大数据技术之ClickHouse---入门篇---介绍
|
Java Maven
【Java报错】显示错误“Error:java: 程序包org.springframework.boot不存在“
【Java报错】显示错误“Error:java: 程序包org.springframework.boot不存在“
1612 3
|
SpringCloudAlibaba JavaScript Dubbo
【SpringCloud Alibaba系列】Dubbo dubbo-admin安装教程篇
本文介绍了 Dubbo-Admin 的安装和使用步骤。Dubbo-Admin 是一个前后端分离的项目,前端基于 Vue,后端基于 Spring Boot。安装前需确保开发环境(Windows 10)已安装 JDK、Maven 和 Node.js,并在 Linux CentOS 7 上部署 Zookeeper 作为注册中心。
3953 1
【SpringCloud Alibaba系列】Dubbo dubbo-admin安装教程篇
|
关系型数据库 MySQL
MySQL中数据插入与主键冲突解决方案
MySQL中数据插入与主键冲突解决方案
955 0
|
XML Java 应用服务中间件
idea与eclipse项目相互导入方式
idea与eclipse项目相互导入方式
516 1
|
JSON 前端开发 Java
获取HTTP请求参数的方法
获取HTTP请求参数的方法