`
dary_zhou
  • 浏览: 40283 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

EOS6 集群的原理介绍和配置

    博客分类:
  • EOS
阅读更多
集群中的节点的数据同步的过程中,会相互发送通知,这是利用UDP协议的IP多播来实现的。IP多播是一台主机一次同时发送单一的数据包到多台主机的TCP/IP通讯网络技术。IP多播通信必须依赖于IP多播地址,在IPv4中它是一个D类IP地址,范围从224.0.0.0到239.255.255.255。使用同一个IP多播地址接收多播数据包的所有主机构成了一个主机组,也称为多播组。任何一个主机,都可以向多播组发送数据包(UDP的数据报),多播组内的所有主机都可以收到这个信息。

实际上,真正的多播地址包含两部分,多播用IP地址和一个端口号,如 225.1.1.1:6280 就是一个组合,构成一个唯一的多播地址,配置有相同多播地址的节点(如缓存)就能收到发送方发往这个地址的UDP数据(即数据报,Datagram)。集群中的节点间相互通知就是利用这个原理实现数据通讯的。

在集群的底层实现中,采用了JGroups的技术,JGroups在多播的地址上,又增加了一个过滤条件,就是通道(channel),每一个通道要取一个唯一的名称,称为通道名称。配置有相同多播地址,并且通道名称一致的节点,才构成一个JGroups集群通道。也就是说,构成一个JGroups集群通道的唯一标志是:"多播IP + 端口 + 通道名"。

安装完EOS服务器后,每个应用可以看成是一个集群的节点,应用的系统变量配置中缺省配置了McastAddr和McastPort ,代表了多播的IP地址和端口号,如果用户不更改的话,所有EOS应用都是一致的,下面就看通道名称了。系统变量的ChannelName默认没有配置,这是为了使用默认的通道名称生成规则,规则如下:

EOSDomain_管理服务器IP:管理服务器管理端口号, 如EOSDomain_192.168.1.25:6080。

这样,一个EOS域中的所有服务器中的应用都在一个统一大的集群环境下,能收到相互发送的集群通知。因为一个域只有一个管理服务器,因此一个域中的所有服务器的通道名称是一致的。如果用户改掉缺省的多播地址配置,或改掉通道名称,则会形成另一个集群环境。

由于配置了多播地址和端口的节点都会收到通知,只是JGroups通过通道名做了一次过滤,所以,缺省EOS安装的情况下,处于不同域的服务器也会相互收到通知(因为多播地址设置是一样的),这同样会增加JGroups的底层通知的过滤开销,为降低开销,用户可以单独为一个集群配置多播地址和多播端口,这样,从最底层的UDP协议就收不到其他节点发来的消息了。

当然,用户也可以只配置通道名,配置了通道名,就不使用默认的通道名称,这样也可以形成一个单独的集群环境,但JGroups的通道过滤开销仍然没有消除。

如果在一个网络环境下安装的EOS服务器不多的话,缺省的集群配置一般就可以满足集群的负载需要了,用户可以不用另行配置。

那么,不同的缓存之间的数据又是如何同步的呢?

EOS缺省建立了三个系统缓存,业务字典缓存、服务注册信息缓存和在线用户缓存,分别用来存放业务字典数据、用于客户端访问的服务注册信息、登陆系统的用户信息。Governor还提供了用户创建自己的业务数据缓存的功能。不同的缓存接收到的通知数据不能混乱,否则就可能造成业务缓存A中的数据错误同步到缓存B中,那就乱套了。

为了区分不同的缓存数据,EOS又增加了一层过滤条件,就是集群名称,在Governor的缓存配置中,我们可以看到有集群名称这个属性(但缺省是空的)。当缓存的集群名称不填写时,系统使用默认规则为每个缓存定义了一个集群名称,规则是:

对应组中服务器的应用:组名:应用名:缓存名
对独立服务器中的应用:服务器名称:应用名:缓存名
因此,只有在相同多播地址和端口、相同通道名且相同集群名称的缓存,才能互相接收到各自的集群通知,以便进行集群的数据同步,这就是缓存的集群同步的原理。总结一下,构成一个缓存的集群的唯一标志是:"多播IP + 端口 + 通道名 + 集群名称"。

如果是组的应用,配置缓存的时候,缓存就自动支持集群的(支持集群的选项被勾选)。如果是独立服务器的应用,配置缓存默认是不支持集群的,用户可以勾选"支持集群"选项,让其支持集群,这时候,需要填写集群名称(如果不填写,使用默认的集群名称,是无法和其他独立服务器构成一个集群的)。另外一个选择是填写多播地址和多播端口,如果不填写,默认使用应用配置的多播地址和端口,如果填写,则缓存使用自己的多播地址和多播端口。

对组中的应用的缓存,也可以修改集群名称,不使用默认的集群名称,这样,缓存的数据同步就和组没有关系了。你可以任意配置成这个组应用的缓存和其他组应用或其他独立服务器的应用的缓存进行集群同步。

分享到:
评论

相关推荐

    EOS6 EOS管理员手册 ,介绍EOS6的相关文档,欢迎下载!

    本手册将深入探讨EOS6的核心特性和管理技巧,帮助系统管理员更好地理解和维护EOS6网络。 1. **EOS6架构概述** EOS6 的架构基于模块化设计,包括节点软件、智能合约语言、网络通信协议等关键组件。其核心是EOS.IO...

    EOS6程序员教程

    - 分析HelloWorld案例中的关键代码和配置文件,理解EOS6的基本工作原理。 **2.2 单表查询开发** - **案例描述:** - 单表查询案例展示了如何使用EOS6进行基本的数据库查询操作。 - **案例开发:** - 包括定义...

    EOS6 程序员教程

    数据库配置部分,教程详细介绍了如何在EOS6中配置和使用数据库,这通常是SOA应用中不可或缺的部分。命名SQL则是一个重要的优化机制,使得SQL查询可以被重用和管理。Handler配置则是对服务处理逻辑的定制,允许开发者...

    EOS6 Report参考手册 ,介绍EOS6的相关文档,欢迎下载!

    本参考手册是开发者、系统管理员和对EOS6技术感兴趣的用户的重要资源,它深入探讨了EOS6的核心特性和功能。 **一、EOS6架构** 1. **分布式架构**:EOS6采用去中心化的架构,通过多个节点确保网络的稳定性和安全性...

    EOS5.x 的 WebService 服务配置及使用说明

    本文档的目标读者是对EOS有一定了解的开发人员和技术支持人员,通过本指导文档,读者可以学习到如何在不同的应用服务器环境下正确配置和使用EOS的WebService功能。 ##### 1.2 适用范围 本文档适用于以下环境: - ...

    普元eos6程序员教程

    2. EOS6的SOA架构和数据处理原理 3. 怎样理解EOS的实现原理? 4. Hello World案例开发 5. 如何开发部署EOS程序? 6. EOS快速开发能有多快? 7. 走进EOS开发 8. 深入EOS开发 9. EOS有什么特别的开发和配置吗? 10. ...

    普元EOS6程序员教程.doc

    随后,教程进一步深入,阐述了EOS6的关键开发和配置技术,如数据库配置、命名SQL、Handler配置以及服务装配等。这些内容有助于开发者理解EOS6如何处理数据、如何定义和执行SQL语句,以及如何组织和管理服务组件。 ...

    EOS6 RichWeb开发指南 ,介绍EOS6的相关文档,欢迎下载!

    EOS6是EOS网络的第六个主要版本,它引入了一系列改进和新特性,以提升开发者的体验和应用性能。本文将深入探讨EOS6的核心概念、技术栈以及RichWeb开发的关键要素。 **1. EOS6概述** EOS6主要关注提高网络性能、安全...

    EOS6中级开发实战.

    【EOS6中级开发实战】是面向EOS6学习者的一份宝贵资料,主要涵盖了EOS产品的基本介绍、基于SOA(Service-Oriented Architecture)的技术架构、EOS的特性、开发版的安装以及EOS的开发实践等内容。以下是对这些知识点...

    EOS6 基础构件库参考手册,介绍EOS6的相关文档,欢迎下载!

    本参考手册详细介绍了EOS6的构件库,为开发者提供了必要的工具和指南,以充分利用该平台的功能。 **1. EOS6 构件库概述** EOS6 的基础构件库包含了一系列模块化的组件,这些组件涵盖了区块链开发的关键领域,如账户...

    普元 EOS6程序员开发教程

    - 介绍如何在EOS6中配置命名SQL,包括SQL语句的编写和使用方式。 **5.3 Handler配置** - **Handler作用:** - Handler是EOS6中的关键组件之一,用于处理特定的业务逻辑或请求。 - **Handler配置:** - 介绍如何...

    EOS6程序员教程案例代码

    2. 合约部署:EOS6使用keosd和cleos工具进行合约的编译、部署和交互。开发者需要将编译后的合约WAST(WebAssembly Stack Machine code)或ABI(Application Binary Interface)上传到链上。 三、智能合约函数 1. ...

    普元EOS 安装配置资料

    针对初学者在安装配置过程中可能遇到的问题,以下将详细解析普元EOS的安装和配置过程。 1. **环境准备**:首先,确保你的服务器或开发环境满足普元EOS的硬件和软件需求,通常包括操作系统(如Windows Server或Linux...

    Primeton EOS6

    本教程是 Primeton EOS6 的程序员教程,旨在帮助初学者和开发者快速了解 SOA 的核心思想和实现原理,掌握 EOS 的开发和配置技术。教程涵盖了 EOS 的 SOA 架构、数据处理原理、开发和调试、配置和管理应用等方面的...

    EOS配置多数据源

    EOS平台的多数据源配置是其灵活性和可扩展性的重要体现,主要适用于EOS5.x版本。在EOS系统中,可以通过两种方式实现数据库连接:单连接EOS Server和通过应用服务器的数据源(DATASOURCE)方式。 单连接EOS Server的...

    EOS6文档使用指南

    EOS6文档使用指南,介绍EOS6的相关文档,欢迎下载!

    EOS多数据源vTomcat里的配置

    **EOS多数据源配置在Tomcat中的实现** EOS(Enterprise Open ...总之,EOS多数据源配置的核心在于管理和配置文件中的设置,理解并正确应用这些原则,就能在不同环境中实现灵活的数据源切换,以满足复杂应用的需求。

    上海普元EOS6工作流教程

    文档内容分为多个章节,首先介绍了工作流的基本概念,包括EOS工作流的概述及其实现原理和机制。接着,读者将逐步学习如何通过EOS工作流进行实际操作,如创建组织机构、准备数据、构建项目、创建构件包、设计流程等。...

Global site tag (gtag.js) - Google Analytics