先说一下CAP:
Consistency(一致性): 在分布式系统中,任何时刻,所用的应用程序都能访问得到相同的数据。
Availability(可用性):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。
Partition tolerance(分区容忍性) :以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。
定理:任何分布式系统只可同时满足二点,没法三者兼顾。
比较Zookeeper和Eureka:Zookeeper保证CP;Eureka保证AP。
步骤:
1. 下载zookeeper并解压;
2. 下载tomcat并安装,修改tomcat-9.0.2\conf\server.xml文件中tomcat启动默认的端口8080为8081(端口可自行指定);
注:因为zookeeper会用到8080端口,所以必须修改tomcat的端口。
3. 下载dubbo admin并编译成war包;
4. 把解压后的dubbo admin的war包放到tomcat安装目录下\webapps,启动tomcat后会自动生成dubbo-admin-version的文件夹,如果需要修改dubbo admin的配置,请更改tomcat\webapps\dubbo-admin-version\WEB-INF\dubbo.properties。
5. cmd模式切换到zookeeper的bin目录下,执行zkServer.cmd,启动zookeeper;
6. 启动tomcat,双击bin目录下的startup.bat;
7. 编写dubbo provider和consumer demo并启动;
demo代码参考:https://github.com/tinazhao1985/spring-cloud-demo/tree/master/spring-boot-dubbo
8. 浏览器打开:http://localhost:8081/dubbo-admin-2.6.0/,可以监控已经注册的provider和consumer。