面试携程,被问:Apollo客户端设计?#java面试

大数据
后台-插件-广告管理-内容页头部广告(手机)

岗位:中级开发工程师。

各位同学,我们来看看来自携程的面试题——阿波罗客户端的设计。这个问题相对来说比较简单,薪资范围在25-30k之间,岗位是终极开发工程师。

我们来看一下它的客户端设计,主要包括以下五点,大家可以把它们背下来。在背诵的过程中,要结合这张图,更加形象地理解。这五点是阿波罗客户端的设计原理。

·第一点:应用程序可以通过两种方式获取阿波罗配置中心的配置信息。

 

一种是长连接,另一种是定时任务。长连接是指应用程序一直保持与配置中心的连接,当配置发生变更时,会立即将链接返回。这种方式可以实现实时推送配置更新,并保持长连接。定时任务则是指应用程序启动时,会自动执行定时任务,从配置中心拉取最新的配置信息。

·第二点:应用程序从配置中心获取配置信息时,会将最新获取的配置信息先缓存在内存中,同时也会同步一份到本地缓存中。这样做的目的是为了保证应用程序在服务异常或重启时,仍能从本地缓存中获取到最新的配置信息,避免应用程序无法启动。

·第三点:应用程序可以从阿波罗客户端获取最新的配置信息和订阅配置、更新通知,并将其缓存到本地。这样做可以保证应用程序始终能够获取最新的配置信息和通知,避免因为网络或服务异常而导致信息丢失。

 

·第四点:当服务端发生配置变更时,会将变更信息推送到所有订阅者,并通知他们进行更新。这样做可以保证所有订阅者都能及时获取到最新的配置信息和通知,避免因为信息滞后而影响应用程序的运行。

 

·第五点:应用程序可以从阿波罗客户端获取最新的配置信息和订阅服务,并将其缓存到本地。这样做可以保证应用程序始终能够获取到最新的配置信息和服务,避免因为服务异常或网络问题而导致信息丢失。

以上就是阿波罗客户端的设计原理,大家可以结合这些总结来进行记忆。应用程序与服务端保持长连接,实时获取最新的数据。为了增加一层保障,还会启动定时任务,从配置中心拉取最新的配置信息。配置信息会先缓存在内存中,同步一份到本地缓存中。如果配置中心崩溃,应用程序可以从本地缓存中获取数据。最后,应用程序可以从阿波罗配置中心获取最新的配置和订阅服务。这就是阿波罗客户端的设计。

 
后台-插件-广告管理-内容页尾部广告(手机)
标签:

评论留言

我要留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。