Dubbo分布式环境搭建测试(依赖mybatis,spring,druid)

不羁的心 提交于 2020-03-02 18:22:45

    此文档针对初学者。

    废话不多说,先上源码: http://git.oschina.net/alexgaoyh/Dubbo-parent

    http://git.oschina.net/alexgaoyh/Dubbo-parent/attach_files

    Maven项目,只需要注意下图中红色箭头标注的三个模块即可;

Dubbo-api: API接口,被 Dubbo-test-provider(服务提供者),Dubbo-test-consumer(服务消费者)依赖;


Dubbo-api 模块没什么多说的,只是需要的interface接口和实体类……;

Dubbo-test-consumer 模块同样没有什么多说的,讲服务提供者发布的接口依赖到项目中即可,注意 consumerAll.xml 即可。

Dubbo-test-provider:

    服务提供者,Dubbo整合mybatis spring druid,实现事务控制,druid监控数据的log4j日志记录(sql输出);

    下图中,需要注意两个单元测试的文件,

    DemoTest.java 文件是用来本地进行单元测试使用的,确保对外发布的服务接口都通过单元测试;     DemoDubboTest.java 文件是直接对外发布dubbo服务接口的,相关的方法通过单元测试整合,即可对外发布接口,发布接口之后,服务消费者即可进行相关业务操作;

        PS: 服务提供者的模块,后期可以打包为jar,在服务器上面运行,相关使用参见 ReadMe.md (mvn assembly:assembly), 这样,服务提供者的模块,就不需要形如tomcat的容器,直接运行jar文件,减少了服务器资源的消耗,形如如下类似的命令;

    java -cp Dubbo-provider-0.0.1-RELEASE.jar com.Dubbo.provider.demo.main.DemoProviderMain



    需要注意的是,上面的Dubbo-* 模块,使用了zookeeper注册中心,代码中需要修改注册中心的url配置;

<!-- 使用multicast广播注册中心暴露服务地址 -->
<dubbo:registry protocol="zookeeper" address="192.168.1.76:2181" />



    同时,建议使用  dubbo-admin-2.5.3.war 的dubbo监控中心,可以方便的对发布的服务接口进行进一步控制;


log4j 记录 druid 相关监控记录,下图为打印输出的sql语句:

其中log4j.properties 文件的配置如下,使用 log4j记录druid的日志,打印sql:

配置文件仅供参考,建议根据业务进行修改配置;

log4j.rootCategory=info,stdout

# CONSOLE appender not used by default
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c{1} %M %L - %m%n

log4j.logger.org.springframework=INFO,perf

#log4j.logger.druid.sql=info,druid
#log4j.logger.druid.sql.DataSource=info,druid
#log4j.logger.druid.sql.Connection=info,druid
log4j.logger.druid.sql.Statement=debug,druid
#log4j.logger.druid.sql.ResultSet=info,druid

# File appender
log4j.appender.perf=org.apache.log4j.RollingFileAppender
log4j.appender.perf.layout=org.apache.log4j.PatternLayout
log4j.appender.perf.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n
log4j.appender.perf.file=../druid-logs/perf.log  
log4j.appender.perf.MaxFileSize=1MB
log4j.appender.perf.MaxBackupIndex=40
log4j.appender.perf.append=true
log4j.appender.perf.ImmediateFlush=true


log4j.appender.druid=org.apache.log4j.RollingFileAppender
log4j.appender.druid.layout=org.apache.log4j.PatternLayout
log4j.appender.druid.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n
log4j.appender.druid.file=../druid-logs/druid.log  
log4j.appender.druid.MaxFileSize=1MB
log4j.appender.druid.MaxBackupIndex=40
log4j.appender.druid.append=true
log4j.appender.druid.ImmediateFlush=true



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!