设置多集群环境

IBM® Sterling Intelligent Promising 多集群设置可跨多个数据中心复制数据,确保提高可用性和一致性。

请记住: 并非必须实施多集群设置。 不过,建议在生产环境中使用多集群设置。
上下文

Sterling Intelligent Promising 主要依赖于两个数据库:Cassandra 和 Elasticsearch. 根据数据类型的不同,数据可能存储在一个或两个数据库中。

  • 库存数据(供应、需求、预订):最初存储在 Cassandra 中,然后与 Elasticsearch 同步。
  • 库存审计数据:专门存储在 Elasticsearch 中。
  • 规则配置数据:专门存储在 Elasticsearch 中。
  • 目录数据:专门存储在 Elasticsearch 中。
需要在多集群设置中复制数据
在多集群设置中,通常有两个数据中心。 如果一个数据中心出现问题,应用程序接口流量可转移到另一个数据中心,以确保业务连续性并维持服务的可用性。 为此,保持两个数据中心的数据库同步至关重要。
Cassandra 数据复制
Cassandra本机支持多数据中心(DC)集群的设置。 确保启用 Cassandra 的跨数据中心 (DC) 数据复制。 这对于确保数据一致性和提高多个数据中心的可用性至关重要。
Elasticsearch 数据复制
您可以部署 Elasticsearch 以在不同的 Elasticsearch 集群之间原生复制数据。 但是,如果在每个 Kubernetes 集群中设置两个独立的 Elasticsearch 集群,它们就可以独立运行。 Sterling Intelligent Promising 为这两个集群之间近乎实时的数据复制提供了一种机制。

Elasticsearch 中的数据摄取是通过 Kafka 主题驱动的。 Sterling Intelligent Promising 支持复制 Kafka 数据,因此数据可通过 Kafka MirrorMaker 复制到 Elasticsearch 中。 设置镜像主题可确保跨多个数据中心实时复制 Elasticsearch 数据。 因此,各集群的主题数据保持一致。 这可确保即使一个数据中心宕机,依赖于 Elasticsearch 的功能仍可通过另一个数据中心的复制数据继续运行,从而保持业务连续性并提供无缝的用户体验。

关于此任务

要实施多集群设置,请配置镜像 Kafka 主题,并更新所需的自定义资源定义以复制 Elasticsearch 数据。

过程

  • 为每项服务镜像 Kafka 主题,如下节所示。
  • 如以下步骤所示,配置自定义资源定义。
    1. 要启用 Elasticsearch 数据复制,请将 multiDCEnabledreplicationEnabled 配置为 true。
      apiVersion: apps.sip.ibm.com/v1beta1
      kind: SIPEnvironment
      metadata:
        name: sip
        namespace: test
      spec:
        multiDCEnabled: true
        externalServices:
          elasticSearch:
            replicationEnabled: true
      请记住:如果您选择部署的云提供商提供 Elasticsearch 数据复制,并且您选择使用它,您可以将 elasticSearch 中的 replicationEnabled 设置为 false。 此外,您无需为 Elasticsearch 数据复制创建镜像主题。 但是,在这些条件下,应用程序不会复制 Elasticsearch 数据。
      apiVersion: apps.sip.ibm.com/v1beta1
      kind: SIPEnvironment
      metadata:
        name: sip
        namespace: test
      spec:
        multiDCEnabled: true
        externalServices:
          elasticSearch:
            replicationEnabled: false
    2. 要镜像 Kafka 主题,请为在不同数据中心使用的主题定义以下 Kafka 前缀。
      1. topicPrefix:用于当前数据中心中 Kafka 主题的前缀。 建议所有群集使用相同的 topicPrefix
      2. mirrorTopicPrefix:Kafka MirrorMaker 中使用的前缀,用于标记目标群集中的复制主题。 使用此属性,您可以在复制过程中在镜像主题名称中添加指定前缀,从而识别镜像主题。
        举例说明:如果 topicPrefixsipmirrorTopicPrefixdc1,那么在源群集中名为 sip-catalog-update-attribute 的主题在目标群集中将复制为 dc1.sip-catalog-update-attribute 。 这种清晰的标签有助于识别镜像的主题以及它们来自哪个源数据中心。
        注意:自行设置 Kafka MirrorMaker 以处理实际复制过程。 Sterling Intelligent Promising 使用指定的命名约定从这些镜像主题读取数据。
      3. crossDCTopicPrefix:可选前缀,专门用于其他数据中心的 Kafka 主题。 如果未提供,topicPrefix 将用于镜像主题。
    3. 配置可选的 environment 参数,以指定主题名称的环境上下文。 如果您指定了该参数,请确保所有群集的参数都相同。
      下面的示例显示了在 SIPEnvironment 中配置的 Kafka 前缀和环境参数。
      apiVersion: apps.sip.ibm.com/v1beta1
      kind: SIPEnvironment
      metadata:
        name: sip
        namespace: test
      spec:
        environment: ""
        externalServices:
          kafka:
            topicPrefix: ""
            mirrorTopicPrefix: ""
            crossDCTopicPrefix: ""