鉴于网上没有一篇完整的***dubbo整合使用有密码的redis作注册中心,并且使用指定的redis库***
的教程博客,加之楼楼最近正好做这些东西遇到了一些问题,故写下这一篇文章供各位有需要的同学们借鉴。不完美之处请多原谅
楼楼最近的项目使用了dubbo,考虑到公司只有redis,没有zk,楼楼也只好使用redis来做注册中心了。接下来就开始采坑了。
楼楼之前一直都是用的zk作注册中心,无奈公司的资源不够,哎。楼楼的项目是springboot+dubbo+redis+druid+mysql,整个集成过程很简单,操作起来也很轻松。可是当我启动的时候,控制台就开始不怎么配合我完美表演了,各种报错,楼楼总结了一下,就是连接redis导致了各种问题,因为公司的redis是有密码的,但是redis是没有用户名这一说的。所以我整合的时候只配置了redis密码,具体配置如下:
<!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
<dubbo:application name="${dubbo.application.name}" />
<!-- 使用multicast广播注册中心暴露发现服务地址 -->
<dubbo:registry protocol="${dubbo.registry.protocol}" file="${dubbo.registry.file}" address="${dubbo.registry.address}" password="${dubbo.registry.password}" />
当我启动项目的时候就开始报错`Invalid url, password without username!`,于是楼楼检查了一下redis服务以及密码,都没有问题,redis客户端连接正常,于是楼楼就开始debug一步一步找出报错的问题,终于不负有心人,楼主找到了这一段代码 `URL.java`:
public URL(String protocol, String username, String password, String host, int port, String path, Map<String, String