-
修改ApolloConfigUtil.APOLLO_PORTAL_URL、APOLLO_TOKEN、APOLLO_MASTER_NAME为自己的Apollo配置
-
修改application-rd.properties中的apollo.meta及zk连接地址
-
启动MainApplication
-
不同业务应用(使用apollo中appId当做sentinel中projectName,即控制台左侧名称)
-
所有业务应用限流规则存储在同一个appId=sentinel的Apollo项目中,不同业务的限流规则存储在不同namespace中,tokenServer单独分配一个namespace(名称为token-server) 如图所示,其中sentinel-test所在namespace为模拟的业务应用appId
-
业务应用根据自己的nameSpace中的token-server-cluster-map对应的cluster配置,来设置连接的token-server地址
-
独立部署的token-server根据 apollo中token-server命名空间下的token-server-namespace-set来设置监听需要配置集群限流规则的nameSpace
-
token Server抢主成功后,修改不同业务应用nameSpace中token-server-cluster-map对应的cluster配置,将其token Server的ip、端口改为当前机器的ip、端口
-
因为token Server抢主成功后,apollo配置修改存在失败的可能性,TokenServerBootstrap启动线程,定时自检并推送修改
7、客户端通过监听apollo cluster配置的修改,来达到token server挂掉后的重新连接
-
Master挂掉到重新选举出一个Master的期间,会有一小段时间,业务应用无法达到集群限流的效果,退化为本地单机限流
-
Master抢主成功后,会将所有业务应用的token Server地址指向自己,如果能按业务区分不同的tokenServer Master会更好