在项目中使用dubbo实现不同系统间的远程通信和调用服务,使用到了zookeeper作为它的注册中心。
1.在虚拟机中安装zookeeper
①先将安装包上传到虚拟机中,解压(需要实现jdk)
②进入zookeeper创建data文件夹,进入conf目录中将zoo_sample.cfg命名为zoo.cfg
③修改zoo.cfg中的dataDir后的地址为data的绝对路径
④启动zookeeper,进入bin目录中,输入./zkServer.sh start命令启动zookeeper,使用./zkServer.sh status 查看是否启动成功
2.配置虚拟机的ip
①点击虚拟机的编辑选项下的虚拟机网络编辑器
②选中Vmnet8,使用Nat的模式,将子网ip设置与Windows中vm8的网段一致
i.右击无线网标志打开网络和共享中心,点击更改适配器设置,找到vmnet8,右击选择属性
ii.选择ip4,将使用下面的ip地址选项选中,输入192.168.xxx.xx,第三个网段最重要
③一定要将Windows的vm8和虚拟机中的vm8网段设置为一致,要不然会Windows无法ping通虚拟机的
我没有设置为一致,ping虚拟机的ip时,第一次报无法访问目标主机,第二次又报的是连接超时,总之这两个网段需要一致,第四网段没有要求。
④选中Nat设置,将网管ip设置为前面配置的一样,比如子网ip为192.168.199.0,那么这里设置为192.168.199.2
[root@itcast06 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static" <!--将原来的dhcp改成"static"-->
HWADDR="00:0C:29:83:7F:54"
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes" <!--这儿要将"no"改成"yes"-->
TYPE="Ethernet"
UUID="aae85c0a-42db-4772-b940-0fc9c875afd2"
IPADDR=192.168.199.60 <!--配置要与VMnet8的子网IP在同一网段-->
GATEWAY=192.168.199.2 <!--与NAT(设置S)...”设置的网关一样-->
NETMASK=255.255.255.0
DNS1=192.168.199.2
3.总结失误
①由于虚拟机于Windows中的网段不一致,导致项目中报注册中心没有提供需要调用的接口信息
②由于web.xml中的配置文件扫描写的是
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/applicationContext-*.xml</param-value>
</context-param>
而我的配置文件名称为首字母大写,导致接口实现类的bean没有装配,报错为没有找到bean。