什么是Data Store and Data Collector? 数据库
咱们知道CITRIX XenApp(或者说是Presentation Server)服务器保存配置信息在数据库中,这个数据库就叫作IMA Data Store。这个数据库对XenApp来讲,只是保存了静态的配置信息,其中不保存任何XenApp环境中的运行状态信息,换句话说,Data Store只是保存在服务器关闭之后,须要静态存储的信息。通常包括经过管理控制台(Management console)进行的各类设置值。服务器
能够想象,XenApp服务器须要服务器来持续监视不少动态信息。好比,用户在哪台服务器上启动了哪些会话(Session),哪台服务器在线或者离线,每台服务器的负载情况等等,这些动态的信息在如下几种状况下会须要,好比:负载均衡
为了解决这些问题,各个服务器之间须要一个共享各服务器状态信息的方法,在早期的版本中,Citrix为了解决这个问题,在每台服务器上都开一段端口,分别和每台服务器创建链接来同步信息,具体机制就不详细介绍了已经被废弃,由于每一个服务器之间都须要创建链接诶,可想而知,性能低下。ide
如今的版本中(4.5版本之后),每台独立的XenApp服务器监视本身的状态信息(动态信息),当有变化的时候,IMA服务就会联系Data Collector的IMA服务(2512端口),通知Data Collector,已经有新的状态信息更新,而后Data Collector会更新内存中的全部服务器的动态信息。由此可知,Data Collector是IMA服务维护的一块内存信息,用来保存zone或者zones中的各个服务器的状态信息。性能
Data Collector和Data Store的关系spa
很显然,Data Collector和Data Store其实是不相关的。Data Store用来在数据库中永久保存配置信息,而Data Collector用来在内存中动态保存会话信息。内存
可是,二者之间也会间接的发生关系。好比:同步
当你经过管理控制台修改了配置之后,新的配置信息会被写入Data Store(实际是写到你链接到的那台服务器本地的Cache,而后复制到Data Store),可是当你修改了这台服务器的配置信息之后,为了其余服务器也能即时获得最新的配置,并加载到其本地Cache中,这个过程须要30分钟,独立的XenApp服务器每30分钟检查一次Data Store的变化,可是咱们但愿配置即时的同步到全部服务器。it
Citrix考虑到了这个问题,当Data Store发生变化后,该变化也同时发送到该Zone的Data Collector,而后Data Collector即时的分发到全部服务器(经过IMA 2512端口)。这样,所又有的服务器据此更新其本地Cache。若是有多个zone,那么各个Zone之间的Data Collector会同步全部的更新。io
特别地,当这个配置更新变化超过64KB之后,Data Collector将不会同步这个更新,只会发送更新通知到全部服务器,服务器接收到通知之后,不用等待30分钟的同步周期,会立刻同步Data Store。通常状况下,超过64KB的配置信息不多发生。