JavaWeb基于ssm框架,使用zookeeper和dubbo完成分布式搭建,及疑难杂症的解决!

#***#zookeeper和dubbo搭建分布式项目,疑难杂症解决

首先介绍一下zookeeper和dubbo分别是什么。
在这里插入图片描述原理图
Zookeeper 一个最常用的使用场景就是用于担任服务生产者和服务消费者的注册中心。 服务生产者将自己提供的服务注册到Zookeeper中心,服务的消费者在进行服务调用的时候先到Zookeeper中查找服务,获取到服务生产者的详细信息之后,再去调用服务生产者的内容与数据。如上图所示,在 Dubbo架构中 Zookeeper 就担任了注册中心这一角色。

简而言之zookeeper就是起到了一个注册中心的作用,服务的提供者把自己提供的服务注册到zookeeper上,有需要的使用者去zookeeper上使用自己需要的功能。

而dubbo则起到了将服务写入和服务取出的功能(dubbo是由阿里开发)。

关于他们的使用 ,有以下的截图来看。
熟悉ssm框架的人都知道,一般来讲一个项目包括Controller(控制层),Service(服务提供接口层),ServiceImpl(服务提供实现层),Mapper(配置文件层及接口层)。 但是分布式项目,就把一个完整项目的这几个层,分别放到多个不同的项目之中,每个项目完成不同的功能,通过dubbo和zookeeper把这几个项目联系起来,完成分布式项目的构建。
在这里插入图片描述
p2p_common是公共工具 , p2p_dataService是服务提供者,p2p_exterface存放接口和实体类,p2p_web使用服务并展示页面。

接下来就说在使用zookeeper中常见的问题:

No provider available for the service

1.java.lang.IllegalStateException:Failed to check the status of the servicecom.alibaba.dubbo.demo.consumer.HelloService. No provider available for the service com.alibaba.dubbo.demo.consumer.HelloService from the urlzookeeper:/..*.**2181/com.alibaba.dubbo.registry.RegistryService?anyhost=true&application=customer-center-consumer-app&check=false&dubbo=2.5.5&interface=com.alibaba.dubbo.demo.consumer.HelloService&methods=register,sayHello&pid=22130&revision=2.5.5&side=consumer&timestamp=1507604148514to the consumer 0.0.0.111 use dubbo version 2.5.5

问题描述:意思是指服务提供者未将服务注册到zookeeper配置中心上去,消费者无法使用服务。

出现问题的地方:
1.服务提供者 配置文件 ref起的名字和serviceimpl的注解中的名字不一致
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.服务提供者与服务消费者的名字不一致:
在这里插入图片描述

3.如果以上两种都不符合,那就是第三种情况。
你所写的serviceImpl根本测不通,意思就是你的项目存在着逻辑问题,在这里建议你把你的serviceImpl和mapper好好检查一下,最好重新写一下,使用一个普通的ssm项目测试一下,数据是否正常取出,然后再应用到提供者中,此时便能正常注册。

4.服务提供者所提供的项目过多,导致一些功能未能注册上,一些功能能够注册上,一些不行。
在这里插入图片描述
将这里的数据改写的足够大,就可以解决此问题。

5.Dubbo缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止Spring初始化完成,以便上线时,能及早发现问题,默认check=true。

如果你的Spring容器是懒加载的,或者通过API编程延迟引用服务,请关闭check,否则服务临时不可用时,会抛出异常,拿到null引用,如果check=false,总是会返回引用,当服务恢复时,能自动连上。

可以通过check="false"关闭检查。
在这里插入图片描述
6.如果以上还不可以解决你的问题,你最好吧注册地址都改成127.0.0.1,不要使用自己的ip地址。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值