最近在部署预发布环境,遇到不少小坑。
先来说下整个项目的服务架构,有web module和provider module,web依赖provider服务,provider依赖其他服务。
这里比较关键的就是注册中心了,之前项目组没有预发布环境,我在本地是通过“|”的方式配置多个注册中心,一个是我本机zk,另一个是测试环境的zk。这种配置方式感觉比较混乱,一直想改进,正好赶上项目组搞预发布环境,给提供了统一的注册方式,这样就不必在本机启zk了。
预发布环境是采用的是zk集群,如
<pom.registry.address>zookeeper://172.16.181.13:2181?backup=172.16.181.14:2181,172.16.181.15:2181</pom.registry.address>
坑一来了,在provider中用逗号配置的方式,使用注册不上,而用这种方式却可以,回头再试下。
provider起来了,成功的注册到了zk集群。这里的provider既是消费者也是生产者。
然后是web模块,启动后一直报错,找不到bean,后来发现是dubbo的引用文件用错了,多亏同事细心发现,以后要引以为戒~
web模块终于起来了,~喔主题才到。。。在登录页面输入正确的用户名和密码竟然没反应。各种debug,,,此处省略1000字
最后发现是读取cookie找不到相应的value。明明写入了,为什么找不到呢?为什么?
问度娘,一开始以为是jetty打包带有项目名称,后来发现,是它,cookie.setDomain(getDomain());
cookie域的问题,本机访问时localhost:8080/xxx,而项目中设置的域是xxxx.com。这样当然访问不了相应的cookie。正取设置域后,可以登录了,搞定~
附上一张cookie图