-
[org.apache.zookeeper.ClientCnxn] - Opening socket connection to server 192.168.153.128/192.168.153.128:2181. Will not attempt to authenticate using SASL (unknown error)
java.lang.IllegalStateException: Failed to register dubbo://192.168.0.116:20880/ dubbo框架整合时报这个错误我这就是地址写错,经查阅还有可能是zookeeper没有真正启动可以查看端口 netstat -anp|grep 2181;可以service zookeeper start 这个是需要配置的开机自启动,还有就是记得对实体类进行序列化。#dubbo配置
#dubbo中服务名称 来自于gmall-user-service
spring.dubbo.application=user-service
#dubbo的通讯协议名称
spring.dubbo.protocal.name=dubbo
#zookeeper中的服务名称
spring.dubbo.registry.address= **应该是你服务器的地址**:2181*(没注意听傻傻的跟着老师一顿乱敲,结果找bug快自闭了,看到一篇博客说到地址才想到了,哎,这里就是论注意力集中的必要性)*
#zookeeper中对的协议名称
spring.dubbo.registry.protocol=zookeeper
#dubbo对的服务的扫描路径 不加
spring.dubbo.base-package=com.ljw.gmall
2.dubbo注意事项
- spring的@service改为dubbo的@service因为后者支持rpc(远程过程调用)
- @Autowired改为@Reference因为前者是在同一个容器中才可以。对于前后端分离的项目后者就很重要了
- dubbo在进行dubbo协议通讯的时候,需要实现序列化接口
- dubbo的consumer在3秒钟之内每间隔一秒进行一次重新访问,默认一秒钟超时,三次访问之后会直接抛超时异常,所以我们在开发阶段,可以将consumer设置的超时时间延长,方便断点调试。下图为超时异常
在web的配置文件中加入
#设置超时时间10min
spring.dubbo.consumer.timeout=600000
#设置是否检查服务存在
spring.dubbo.consumer.check=false
3.IDEA中同时跑两个服务