ICE通信之IceGrid服务(一)

简介:

一、 IceGrid功能

1. 定位服务(Location service )

作为一个ICE定位服务,IceGrid的实施使客户能够间接地绑定到他们的服务器,提高应用程序的灵活性和适应不断变化的需求。

2. 需激活(On-demand server activation )

分布式部署的节点服务器,不需要立即启动,在客户端向服务器发送一个服务请求时,icegrid检查到该服务所在的服务器存在但是没有激活,则icegrid会激活这个服务器,这一过程对于客户端来说是透明的。

3. 应用程序部署(Application distribution )

IceGrid提供了一种很方便的方式来部署应用到一组计算机中,不在需要一个文件共享系统或者是复杂的部署脚本,简单的使用IcePath2的配置服务,就能够保持必要的程序和文件的同步。 

4. 复制和负载均衡(Replication and load balancing )

IceGrid的支持复制功能,将几台服务器中的是对象适配器复制成一个单一的虚拟对象适配器。在客户端和服务器间接绑定期间,客户端能够连接到任意一个对象适配器的端点,而且,IceGrid监听每一台服务器的负载情况,当客户端请求服务时,IceGrid使用这些监听信息来决定分配哪个端点来处理客户端的请求。

5. 会话和资源分配(Sessions and resource allocation )

客户端可以建立一个会话(session)来独占某个对象或者代理甚至服务器。IceGrid会阻止其他的客户端使用这个分配的资源,直到客户端释放它或者session过期。IceGridsession服务增强了安全性,通过使用集成了一个Glacier2路由器的认证机制。

6. 自动容错(Automatic failover )

   ice支持在任何一个包含多个端点的代理中自动重试和容错功能。当结合IceGrid的复制和负载均衡的支持时,自动故障转移意味着客户端发送一个请求,服务器处理请求失败时,IceGrid会选择一个最低负载的端点重新处理请求。

7. 动态查询(Dynamic queries )

在客户端通过查找的方式,查找出所有的代理端口信息,并由客户端决定使用哪个代理。

8. 状态监测(Status monitoring )

IceGrid提供Slice接口,允许应用程序监控其各项活动和收到有关重大事项的通知,可以使用监控接口来整合现有的监控系统。 

9. 管理(Administration )

IceGrid包括命令行和图形化的管理工具。它们支持所有的平台,并允许启动,停止,监控,和重新配置任何服务器。

10. 部署(Deployment )

使用XML文件,通过描述符部署服务器到每台计算机,使用模板描述符可以简化相同服务器的部署。

11. 数据库独立(Database Independence)

默认情况下,IceGrid的使用Freeze数据库以保存其状态。然而,您可以配置IceGrid使用不同的数据库,如MySQL

二、 IceGrid架构

一个 IceGrid域由一个注册表(Registry)和任何数目的节点(Node)构成。注册表和节点一起合作管理一些信息以及包含一些应用(Application)的服务进程。每个应用程序分配到特定节点的服务器。这个注册表维护了这些信息,注册表中的信息记录被持久化到数据库中,而节点负责启动和监测其指定的服务器进程。    

对于一个典型的配置,一个节点运行在一台计算机(称之为Ice服务器主机)。注册表并不消耗很多处理器时间,所以它常常是和一个节点运行在同一台计算机上的事实上,注册表和一个节点可以运行在同一进程中。

如果要想容错机制达到理想的状态,注册表也支持复制(Replication)功能使用主从式的设计。

下图显示一个很简单的IceGrid应用,它运行在一个有三台计算机的网络上。该IceGrid Registry PC1主机中唯一的一个进程中,而IceGrid Node运行在PC2PC3主机上。此示例中,一个服务已经被分配给每个节点,客户端安装在一台独立的PC4上。

从客户端应用程序的角度来看,注册表的主要责任,是解决作为Ice定位服务的间接代理问题。因此,这方面的作用是非常明显的:当客户端第一次尝试使用一种间接代理,客户端的Ice run time连接注册表,并且将代理的符号信息转化为端点,使用这个端点允许客户端建立一个连接。

尽管注册还提供了一些其他的功能,不仅仅是一个简单的查询表,一个定位请求可能提示一个节点自动启动目标服务,或注册表可能会根据每台电脑的负荷统计选择适当的端点。

间接代理的好处:位置服务可以提供很大的功能,而客户端不需要任何额外的特定的操作,这点和直接代理不同,客户端并不需要更多的服务器的地址和端口信息。只是间接代理在客户的第一次使用代理时增加了一些延迟,不过,以后所有的相互作用直接发生在客户端和服务器之间,所以成本是微不足道的。此外,间接代理的方式允许已经部署的服务器迁移到不同的计算机上,而不需要更新客户端所持有的代理。

目录
相关文章
|
存储 NoSQL BI
Redis 实战篇:巧用 Bitmap 实现亿级海量数据统计
Redis 实战篇:巧用 Bitmap 实现亿级海量数据统计
440 0
|
JavaScript
HTTP/2 协议-服务端主动推送消息
HTTP/2 协议-服务端主动推送消息
859 0
|
设计模式 Android开发
Android scheme 跳转的设计与实现
为了解决这些问题,App 一般都会自定义一个 scheme 跳转协议,多端都实现这个协议,以此来解决各种运营需求。今天就来解析下 QMUI 最新版 QMUISchemeHandler 的设计与实现。
367 0
|
Linux 应用服务中间件 nginx
【PUSDN】centos查看日志文件内容,包含某个关键字的前后5行日志内容,centos查看日志的几种方法
【PUSDN】centos查看日志文件内容,包含某个关键字的前后5行日志内容,centos查看日志的几种方法
687 0
|
人工智能 自然语言处理 小程序
魔搭社区每周速递(12.15-12.21)
🙋魔搭ModelScope本期社区进展:📟1914个模型,📁58个数据集,🎨78个创新应用,📄 8篇内容
631 4
魔搭社区每周速递(12.15-12.21)
|
网络协议 安全 Linux
Linux剪裁探索初探
本文深入探讨了Linux剪裁的概念、方法、实践及其好处。Linux剪裁通过移除内核中不必要的模块和功能,减小内核大小、优化系统性能并提升安全性,特别适用于资源受限的设备和特定用途的服务器。文章详细介绍了配置内核选项、模块化和使用工具辅助剪裁的方法,并提供了一个实践示例,最后讨论了剪裁的好处与挑战。
581 15
|
JSON 安全 Java
Spring Boot中的安全过滤器及使用方法
Spring Boot中的安全过滤器及使用方法
|
JavaScript 前端开发 API
深入解析JavaScript Generator 生成器的概念及应用场景
本文讲解了JS生成器的概念和应用场景。生成器是一个可以暂停和恢复执行的函数。利用生成器我们可以很方便地实现自定义的可迭代对象、状态机、惰性计算等,并且还能用它来简化我们的异步操作代码。
1172 0
|
Prometheus 监控 Cloud Native
Grafana 入门指南:快速上手监控仪表盘
【8月更文第29天】Grafana 是一款开源的数据可视化和监控工具,它允许用户轻松地创建美观的仪表盘和图表,以便更好地理解和监控数据。无论您是需要监控系统性能指标、应用程序日志还是业务关键指标,Grafana 都能提供灵活而强大的解决方案。本指南将带领您快速上手 Grafana,包括安装、配置以及创建第一个监控面板。
3938 1
|
存储 SQL Serverless
【云栖2023】姜伟华:Hologres Serverless之路——揭秘弹性计算组
本文根据2023云栖大会演讲实录整理而成,演讲信息如下: 演讲人:姜伟华 | 阿里云计算平台事业部资深技术专家、阿里云实时数仓Hologres研发负责人 演讲主题:Hologres Serverless之路——揭秘弹性计算组
【云栖2023】姜伟华:Hologres Serverless之路——揭秘弹性计算组