背景:
分布式系统开发,开发过程中通过zookeeper+dubbo跨域获取并调用别人编写的方法
作用:
可用来访问别人的zookeeper服务,从其中获取我们需要的数据。
条件:
虚拟机docker下已安装配置好zookeeper、tomcat(tomcat中配置好dubbo)
(部署详见我的博客:https://blog.csdn.net/weixin_41056197/article/details/97018462)
步骤:(使用他人zookeeper,并通过dubbo获取别人发布的数据)
1、修改虚拟机网络模式:
VMWare——虚拟机——设置——网络适配器——选择“桥接模式”——确定
2、配置虚拟机网络:
打开Network——Wired——IPv4
其中:IPv4 Method为Manual,Addresses、DNS配置如下
其中:
Address的前三位与本机ip地址一致
Network与本机子网掩码一致
Gateway与本机默认网关一致
- 本机ip地址、子网掩码、默认网关查看方式:
进入doc界面,输入ipconfig
3、重启网络、关闭防火墙:
ifdown ens33
ifup ens33
systemctl restart network
systemctl stop firewalld
4、禁用本地虚拟网卡:
5、测试配置是否成功:
虚拟机中:ifconfig,查看ip地址
本机中:ping 172.16.10.220,看能否ping通
6、修改分布式系统中需要发布的子系统的配置文件(ip和端口号为对方的ZooKeeper的ip+端口号):
7、运行子系统,查看dubbo页面(ip和端口号为对方的ZooKeeper的ip+Tomcat的端口号):
(由于对方关闭了子系统,导致我无法截图给大家展示了,只能展示我的方法了)
8、调用对方的方法:
①页面调用访问(http://+“对方本地ip地址”+:+“对方Controller层子系统的端口号(此处端口号为默认的80,故可不加)”+/+“Controller层的@RequestMapping的映射地址”):
②直接调用:
9、页面查看效果:
其中172.16.10.172为本地ip地址,也是对方放行的ip地址(放行时要加上端口号);
端口8888应为页面子系统的端口(此处页面和controller未分离);
其余为项目中html页面存放路径;
如下图: