insights 磁力
随着Decision Server Insights的推出,IBM ODM产品家族得到了扩展,可以应对日益复杂的业务场景。 跟踪与特定业务实体相关的事件,并在先前事件的上下文中关联新事件,可以基于相关性进行决策,并启用更强大的自动化功能。
Decision Server Insights的主要区别在于对业务情况的检测,该业务情况分析了当前事件,以前的历史事件,预测性分析得分和地理空间环境的组合,以决定何时以目标方式采取行动。 该分析可帮助企业改善其业务结果,检测潜在的风险和欺诈并改善业务运营和警报。
当然,此新功能需要将支持决策的业务状态持久化到Decision Server Insights基础结构中。 为了应对企业级系统软件的现实(即使在可能发生硬件和软件故障的环境中,该类软件也必须提供稳定和可靠的服务),负责这些软件系统的管理团队必须确保有适当的基础架构和操作程序来支持业务需求。
本教程分享了来自Decision Server Insights开发和测试团队的宝贵信息,这些信息涉及使企业级服务质量成为可能的体系结构原理,以及实现该体系所必需的实现细节。
背景:高可用性和灾难恢复
软件系统中的故障事件通常分为两类。 高可用性事件包括损害大型系统中仅一个元素(无论是物理机还是操作系统进程)功能的事件。 相比之下,灾难恢复事件是指系统(或整个数据中心)的许多元素同时受到损害的事件。 今年早些时候发布的安装和配置Decision Server Insights参考拓扑 ,解释了Decision Server Insights的参考拓扑 ,该拓扑使用IBM WebSphere eXtreme Scale服务器网络在网格中协同工作,以提供高可用性所需的冗余。 (请参阅参考资料。)如果网格中的一个成员发生故障,其余成员可以无缝地继续处理。
但是,当Decision Server Insights架构师为灾难做准备时,他们必须为整个WebSphere eXtreme Scale网格丢失且无法进行无缝恢复的情况做准备。 相反,必须将定义业务实体状态的数据复制到足够远的站点,以使其不受灾难影响,并且必须从此副本中恢复处理。 Decision Server Insights还使用IBM WebSphere Liberty中的功能来实现高可用性和灾难恢复。
为了支持此活动,Decision Server Insights允许配置特殊的备份数据库,您可以在其中保留WebSphere eXtreme Scale网格的内容。 然后,您可以使用数据库管理工具(例如DB2 HADR功能和Oracle DataGuard)将数据库内容复制到远程站点。 这样,Decision Server Insights拓扑包含双重数据库设置。 一个本地数据库充当主数据库,另一个数据库充当远程备用数据库。 本教程研究使用IBM DB2高可用性灾难恢复(HADR)功能的数据库故障转移和切换功能。
您可以配置DB2 HADR功能以自动或手动从主数据库故障中恢复。 对于灾难恢复,建议手动进行故障转移,因为在恢复正常之前,必须恢复数据库以外的许多组件(例如,Decision Server Insights服务器的其余部分和连接组件)。 请参阅参考资料部分,以获取有关DB2 HADR功能的配置和管理的更多信息。
背景:Decision Server Insights组件
Decision Server Insights拓扑中有五个主要服务器:
- 运行时服务器 :该服务器是Decision Server Insights中的主要组件,事件在其中进行处理,在其中存储实体。 所有运行时服务器都是WebSphere eXtreme Scale集群的一部分。 事件队列和实体存储在此群集中分区。
- 输入连接服务器 :输入连接Liberty服务器从某些生成事件的企业系统接收事件。 事件是通过HTTP或JMS生成的,并发送到运行时服务器进行处理。
- 输出连接服务器 :输出连接Liberty服务器从运行时服务器接收发出的事件,并通过HTTP或JMS发送它们。
- 目录服务器 :目录服务器是WebSphere eXtreme Scale组件,它跟踪运行时集群中WebSphere eXtreme Scale服务器之间的分区放置。 良好的高可用性设计要求目录服务器不应与运行时服务器安装在同一节点上。
- 后台数据库服务器 :后台数据库用于在内存中不需要事件时脱机存储事件。 它用于在关闭整个群集后重新启动整个群集时进行恢复。 支持数据库是Decision Server Insights的先决条件,并非严格地构成Decision Server Insights的一部分。 Decision Server Insights支持DB2和Oracle。
在图1中,您可以看到一个示例拓扑。 代理(可能是IBM Integration Bus)将入站事件路由到主站点。 如果主站点发生故障,则将启动备用站点(可能已经启动),然后将事件从备用数据库加载到内存中。 然后,新请求由代理路由到备用站点的入站连接。
图1.带有灾难恢复数据库的Decision Server Insights高可用性配置的示例拓扑
为了提供高可用性,在每个主站点和备用站点中至少需要两个目录服务器。 这种方法可确保目录服务器不是每个站点上的单点故障。 图1中描述的基础结构还通过确保两个目录服务器都位于同一子网中来防止网络分区(裂脑方案)。 当然,主站点和辅助站点本身位于独立的网络基础结构上。 通过确保手动而不是自动管理跨站点故障转移来避免网络分区,并且具有适当的过程来确保在任何给定时间只有一个站点中的服务器处于活动状态。
背景:Decision Server Insights的关键配置参数
必须配置几个Decision Server Insights参数以实现最佳复制和恢复。 本节检查目的,并说明几个常用参数的推荐值。 您可以通过更改位于创建的服务器的grids
目录中的objectgriddeployment.xml
文件中的设置值来更改每个参数。
Decision Server Insights对实体和事件存储进行分区。 分区分布在整个群集中。 Decision Server Insights网关将事件路由到存储关联实体的分区。 这样,整个集群就可以平衡工作负载。
配置群集中的分区数对于有效运行很重要。 如果每个节点的分区太少,将没有足够的工作来保持CPU繁忙。 由于更改分区数量需要关闭整个群集,因此,如果您认为稍后将扩展群集,则将需要配置额外的分区。 但是不要将分区的数量设置得比您认为的要高,因为管理它们的处理器使用率有所增加。 请参阅numberOfPartitions
设置以获取指导。
默认情况下,Decision Server Insights在内存中保留每个分区的一个同步副本和一个异步副本。 如果一个节点丢失,则副本始终保留在不同的节点上。 这种方法就是为什么每个节点运行多个服务器无法实现高可用性的原因。
同步副本可提供高可用性。 服务器发生故障时,会发生以下几种情况:
- 目录服务器将立即将所有同步副本更改为丢失的所有主副本的主副本。
- 收集异步副本以成为同步副本。 (如果没有异步副本,则必须复制分区中的所有数据以创建同步副本。)每个分区上的工作都将挂起,直到同步副本就位。
- 在时间允许的情况下,将重新创建异步副本。
表1显示了主objectgriddeployment.xml
文件的建议设置,该文件位于您创建的服务器的grids
目录中。
表1. objectgriddeployment.xml的配置选项
设置 | 描述 |
---|---|
developmentMode="false" | 在生产或实际测试中, developmentMode 设置为false 。 如果设置为true ,它将告诉WebSphere eXtreme Scale忽略本节中描述的其他一些设置。 |
maxAsyncReplicas="1" | 异步分区副本允许系统在HA / CA情况下快速恢复。 该值通常应设置为1。对于小型集群,异步副本的数量会自动减少。 |
maxSyncReplicas="1" | 同步分区副本使系统能够处理高可用性和连续可用性,而不会丢失数据或中断业务。 maxSyncReplicas 值确定可以同时丢失而不丢失任何数据的节点数。 我们建议您将此参数的值设置为1 。 少做任何事情都会损害高可用性。 任何其他因素都会对性能产生负面影响。 |
minSyncReplicas="0" | minSyncReplicas 值设置为0 ,即使没有副本,系统也可以运行。 如果将此值设置为1 (不建议),则在运行时群集中只有一个节点的情况下,系统将停止。 |
numInitialContainers="3" | 此选项是系统启动所需的服务器数量。 最好使用(maxAsyncReplicas + maxSyncReplicas + 1) ,但是对于具有1或2个服务器的集群,必须将其设置得较低。 |
numberOfPartitions="127" | Decision Server Insights的运行效率最高,每个节点约有20个分区。 集群中numberOfPartitons 一个很好的价值是将集群中的所有核心(CPU)加起来,将其加倍,然后舍入到下一个素数。 由于在群集运行时无法更改此值,因此您可能需要进一步增加该值,以便将来进行横向扩展。 例如,如果您从四个16核节点开始,但是您认为最终可能需要八个节点,请将numberOfPartitions 设置为257 。 |
writeBehind="T20;C200" | 建议使用异步后写以提高性能。 由于内存中的冗余, writeBehind 不会出现数据完整性问题,除非整个站点丢失。 在小容量非高可用性安装中,或者如果您担心整个站点丢失,则可以删除此设置以使备份数据库保持同步。 |
实施细节
以下示例显示了参考拓扑中的Decision Server Insights设置。 主数据库和备用数据库位于单独的物理服务器上。
测试环境
使用主数据库和备用数据库在参考拓扑中配置Decision Server Insights,您可以使用DB2高可用性灾难恢复(HADR)功能对其进行配置。 有两个目录,三个容器和两个数据库,如表2所示。
表2.参考拓扑配置设置
主机名/功能/ IP | 现场 | 笔记 |
---|---|---|
cistest01/Catalog/9.20.146.112 | 主 | 见解目录1 |
cistest02/Catalog/9.20.146.113 | 主 | 见解目录2 |
cistest03/Container/9.20.146.114 | 主 | 见解容器1 |
cistest04/Container/9.20.146.115 | 主 | 见解容器2 |
cistest05/Container/9.20.146.116 | 主 | 洞察容器3 |
cistest06/Container/9.20.146.117 | 主 | 洞察容器4 |
cistest07/Inbound/9.20.146.118 | 主 | 见解入站连接 |
cistest08/Outbound/9.20.146.119 | 主 | 见解出站连接 |
cistest09/Catalog/9.20.147.146 | 支持 | 见解目录1 |
cistest10/Catalog/9.20.147.147 | 支持 | 见解目录2 |
cistest11/Container/9.20.147.148 | 支持 | 见解容器1 |
cistest12/Container/9.20.147.149 | 支持 | 见解容器2 |
cistest13/Container/9.20.147.150 | 支持 | 洞察容器3 |
cistest14/Container/9.20.147.151 | 支持 | 洞察容器4 |
cistest15/Inbound/9.20.147.152 | 支持 | 见解入站连接 |
cistest16/Outbound/9.20.147.153 | 支持 | 见解出站连接 |
cistest17/db2/9.20.146.128 | 主 | 主数据库 |
cistest18/db2/9.20.147.155 | 支持 | 备用数据库 |
cistest19/Broker/9.20.146.130 | 主 | 经纪人 |
数据库配置
本节说明如何创建主数据库和备用数据库。
- 首先,将
DB2Distrib.sql
数据库创建脚本从Decision Server Insights安装位置(应该在运行时目录下:例如,~/runtime/ia/persistence/sql/DB2
)转移到主数据库所在的系统。 在此示例中,将DB2Distrib.sql
文件放入主数据库系统上的/opt
。 - 在主数据库(名为
cistest17
与IP地址9.20.146.128
在这个例子中)创建一个数据库名为insights
和创建表和其他组件决策服务器洞察要求:db2 create database insights
db2 connect to insights
db2 -f /opt/DB2Distrib.sql
- 配置以下设置:
db2 update db cfg for insights using LOGARCHMETH1 LOGRETAIN
db2 update db cfg for insights using HADR_LOCAL_HOST 9.20.146.128
db2 update db cfg for insights using HADR_LOCAL_SVC 55001
db2 update db cfg for insights using HADR_REMOTE_HOST 9.20.147.155
db2 update db cfg for insights using HADR_REMOTE_SVC 55002
db2 update db cfg for insights using HADR_REMOTE_INST db2inst1
db2 update db cfg for insights using LOGINDEXBUILD ON
- 然后,备份数据库:
db2 "backup database insights"
- 在备用数据库(在本示例中为
cistest18
,其IP地址为9.20.147.155
)上,您需要将从主数据库创建的备份文件复制到备用系统。 将其命名为INSIGHTS.0.db2inst1.DBPART000.20150706111358.001
。 - 接下来,使用以下命令将数据还原到备用数据库中:
db2 "restore database insights"
- 现在运行以下命令来配置备用数据库以使用DB2 HADR功能:
db2 update db cfg for insights using HADR_LOCAL_HOST 9.20.147.155
db2 update db cfg for insights using HADR_LOCAL_SVC 55002
db2 update db cfg for insights using HADR_REMOTE_HOST 9.20.146.128
db2 update db cfg for insights using HADR_REMOTE_SVC 55001
db2 update db cfg for insights using HADR_REMOTE_INST db2inst1
- 现在,您应该能够使用以下命令启动备用数据库:
db2 start hadr on database insights as standby
- 然后,您可以使用以下命令在主数据库上启动HADR功能:
db2 start hadr on database insights as primary
- 在每个系统上使用
db2pd -db insights -hadr
命令来验证主数据库是否正确启动。 查找CONNECTED
的HADR_CONNECT_STATUS
。
即使DB2 HADR功能可以在某些系统中用于数据库的高可用性,对于Decision Server Insights来说也没有必要,因为数据网格提供了冗余。 (在正常运行期间,后备数据库在Decision Server Insights中不起作用。它仅用作整个系统的灾难恢复的工具。)有关DB2 HA DR功能的更多信息,请参见参考资料部分。
配置Decision Server Insights数据源定义以进行灾难恢复
要配置Decision Server Insights数据库持久性,请参阅server.xml
文件中的示例配置:
<dataSource jndiName="jdbc/ia/persistence">
<connectionManager/>
<jdbcDriver>
<library>
<fileset dir="/opt/IBM/" includes="db2jcc4.jar, db2jcc_license_cu.jar"/>
</library>
</jdbcDriver>
<properties.db2.jcc currentSchema="DB2INST1"
databaseName="insights" password="cistestdb" portNumber="50000"
serverName="cistest17" user="db2inst1" alternateGroupDatabaseName="insights"
clientRerouteAlternateServerName="cistest18" clientRerouteAlternatePortNumber="50000"
maxRetriesForClientReroute="2" retryIntervalForClientReroute="15" enableSeamlessFailover="1"/>
</dataSource>
<ia_persistence datasourceName="jdbc/ia/persistence" maxBatchSize="10000" maxCacheAge="1000"/>
请在示例中注意以下关键配置值:
-
alternateGroupDatabaseName
,它指向备用数据库。 -
clientRerouteAlternateServerName
,它指向备用数据库。 -
clientRerouteAlternateServerPortNumber
,它指定备用数据库端口号。 -
maxRetriesForClientReroute
(指定次数)指定Decision Server Insights在继续尝试连接到备用数据库之前尝试连接到主数据库的次数。 -
retryIntervalForClientReroute
,它指定两次连接尝试之间经过的时间。 -
enableSeamlessFailover
,当发生数据库故障转移事件时(这是Decision Server Insights恢复实施所必需的),它会导致将SQLException
传递到Decision Server Insights系统。
对于objectGridDeployment.xml
考虑以下示例:
...
<mapSet name="iaMaps" numberOfPartitions="127" numInitialContainers="3" minSyncReplicas="0" maxSyncReplicas="1" maxAsyncReplicas="1" developmentMode="false">
...
数据库故障转移
对于在8.5.5.7之前的Liberty版本上运行的Decision Server Insights服务器,请勿在server.xml
数据源定义中使用备用服务器和备用端口参数,因为Liberty版本会忽略这些参数。 而是从主数据库手动更改辅助Decision Server Insights系统上的server.xml
文件。 更改主要数据源的定义,以便在辅助数据中心中的Decision Server Insights启动时,它可以在其自己的数据中心中正确找到数据库。
如果在早于8.5.5.7的Liberty版本上运行Decision Server Insights,并且不更改数据库连接信息,则可能在服务器日志中看到-4498错误代码,例如以下示例:
[AUDIT ] J2CA0056I: The Connection Manager received a fatal connection error from the Resource Adapter for resource jdbc/ia/persistence. The exception is: com.ibm.db2.jcc.am.ClientRerouteException: [jcc][t4][2027][11212][4.13.127] A connection failed but has been re-established. The host name or IP address is "cistest18.hursley.ibm.com" and the service name or port number is 50,000.
Special registers may or may not be re-attempted (Reason code = 1). ERRORCODE=-4498, SQLSTATE=08506
[ERROR ] CWMBE3613E: SQLException encountered when building "UPSERT" Statement for persistence handler "com.ibm.ia.persistence.handler.db2.impl.DB2JobHistoryHandler". Exception Message: [jcc][t4][2027][11212][4.13.127] A connection failed but has been re-established. The host name or IP address is "cistest18.hursley.ibm.com" and the service name or port number is 50,000.
[ERROR ] CWMBE3611E: The configured database has issued an exception with an error code: "-4,498" and a SQLState: "08506"
对于在Liberty版本8.5.5.7或更高版本上运行的Decision Server Insights服务器,可以在server.xml
数据源定义中使用备用服务器和备用端口参数,以允许Decision Server Insights自动连接到辅助数据中心中的数据库。无需修改server.xml
文件。 当然,无论Liberty版本如何,您都可以在数据源定义中手动更改数据库连接信息。
将事件重新加载到内存中
因为事件在数据库中,所以您需要将它们重新加载到内存中。 请参见以下示例:
[root@cistest04 bin]# ./dataLoadManager load --propertiesFile=/opt/IBM/test04.prop
CWMBD9712W: Hostname verification is disabled by the "disableSSLHostnameVerification" connection property. The client will not check the hostname specified in the server certificate.
CWMBD9659I: Persisted data is being restored to the system. The total number of batches of data is 35.
结论
您学习了如何结合使用具有DB2 HADR功能的Decision Server Insights支持数据库来实现成功的跨站点复制和恢复策略,从而保护您的系统,防止丢失承载Decision Server Insights基础结构的整个数据中心。
通过拥有多个服务器组件实例,可以在Decision Server Insights中实现高可用性。
如果使用的是Oracle数据库,则可以使用Oracle Data Guard功能实施相同的复制和恢复策略。 请参阅Oracle文档中的Oracle Data Guard简介 。
使用从本教程中学到的知识,您可以设计拓扑以成功地在您的环境中提供灾难恢复。
致谢
作者要感谢Richard Jacks的评论,贡献和评论。
翻译自: https://www.ibm.com/developerworks/bpm/bpmjournal/1512_johnson-trs/1512_johnson.html
insights 磁力