准备工具:tomcat,zookeeper,dubbo。

准备工作:启动zookeeper(默认端口2181),启动dubbo(端口按照tomcat的配置)

下载最新版就可以,注意要下载带bin的那个包。

下载完了后,解压,添加文件夹dataDir和dataLogSir。

springboot接入银联支付 springboot连接zk_Dubbo

然后进入conf目录下面,复制一份zoo_sample.cfg,重命名zoo.cfg.(运行时候就是用到这个)

编辑zoo.cfg,修改下面两个路径

springboot接入银联支付 springboot连接zk_tomcat_02

添加完毕。到bing目录下 运行命令

./zkServer.sh start

出现,Srarting Zookeeper ... STARTED就是成功了。

要是失败率,那就是上边的路径没有配置好,重新配置一遍。

下载完后,解压出来,找到dubbo-admin目录

进入dubbo-admin目录

执行 mvn install (这里就不多说了,不会的可以留言)

最后install完成,在dubbo-admin多了一个target文件夹,进去,拷贝war包。

将这个war包拷贝到tomcat的webapps下面,启动tomcat。

ok,到现在,我们的zookeeper和dubbo已经启动成功了。

按照配置的tomcat端口,打开路径。

比如我的是:8090

localhost:8090/dubbo-admin-2.6.0/

账号root密码root

进去后,界面如下

springboot接入银联支付 springboot连接zk_Dubbo_03


准备工作做完了,下面开始写代码。

一共有三个模块,分离出来的Service接口层,分离出来的ServiceImpl接口实现层,分离出来的Controller业务逻辑层。

springboot接入银联支付 springboot连接zk_Zookeeper_04

在Service中只定义个接口。

在Impl中具体实现这个接口方法,

在Controller中调用Service的接口。

重点内容看一下,在这里ServiceImpl就是我们说的生产者。Controller就是消费者。

生产者的yml配置文件

springboot接入银联支付 springboot连接zk_zookeeper_05

再看一下消费者的yml配置文件

springboot接入银联支付 springboot连接zk_tomcat_06

不管是生产者还是消费者,注册中心的地址都是我们本地启动的zookeeper地址。

使用的协议,都是dubbo协议,只是端口号不一样。

那么dubbo是怎么判断哪个是生产者,哪个是消费者,又是怎么把他们两者关联起来的?

其实很简单,暴露服务的就是生产者,如下图的@Service注解

要注意,这里是dubbo包下的,可不是Spring包下的。

只要配置了@Service就相当于暴露了服务,启动以后,会被dubbo识别有个生产者注册接口,TestService。

注意是接口

springboot接入银联支付 springboot连接zk_Dubbo_07

然后,看这边消费,有个@Refrence注解,这个注解就是相当于去生产者中找到自己想要的服务。

所以生产者和消费者就关系,就通过一个@Service,一个@Reference关联到一起。

有关这个两个注解的内容其实很多,有兴趣的可以研究一下。

springboot接入银联支付 springboot连接zk_tomcat_08

我的zookeeper端口2181,Service接口(生产者)9090,Controller接口(消费者)8070

tomcat运行的dubbo端口8090.

进dubbo查看服务管理的就是tomcat的8090端口。

生产者,消费者端口只要端口不冲突,随便设置即可。

我已经把代码传到GitHub上,有兴趣的可以clone下来,试一下,还是挺简单的。