Hx Cluster Dispatcher Users'Guide
User Manual:
Open the PDF directly: View PDF .
Page Count: 9
Download | ![]() |
Open PDF In Browser | View PDF |
Cluster Dispatcher USERS' GUIDE Xiaowei Wang V1.0 2019-06-04 Table of Contents Overview ................................................................................................................................ 3 Design .................................................................................................................................... 4 Architecture...................................................................................................................................... 4 Cluster Recognition ........................................................................................................................... 4 Dispatch Mode ................................................................................................................................. 5 Service Dispatch ............................................................................................................................... 5 Failure Signal .................................................................................................................................... 5 Configuration ......................................................................................................................... 6 Setup Hostname ............................................................................................................................... 6 Setup Cluster Nodes ......................................................................................................................... 6 Setup Remote Servers....................................................................................................................... 6 Self-Checking .................................................................................................................................... 6 Service Dispatch Management ............................................................................................... 7 List Service Dispatch ......................................................................................................................... 7 Add Service Dispatch ........................................................................................................................ 7 View Service Dispatch ....................................................................................................................... 7 Edit Service Dispatch......................................................................................................................... 8 Delete Service Dispatch .................................................................................................................... 8 Enable Service Dispatch .................................................................................................................... 8 Disable Service Dispatch ................................................................................................................... 8 Keep in Mind .......................................................................................................................... 9 Clone-able Pipeline ........................................................................................................................... 9 Recursive Dispatch ............................................................................................................................ 9 Hidden Service Dispatch Tasks .......................................................................................................... 9 2 Overview To build a high availability environment, multiple webMethods Integration Server usually are configured as a cluster. It's expected to have all Integration Server to function exactly the same. If something is changed on one node, for example a customized configuration file, system administrator usually has to synchronize it across all the nodes manually. Cluster Dispatcher is designed to dispatch service invocation in a cluster, which means if a service is invoked on one node, it would be invoked on all other nodes as well automatically. Cluster Dispatcher is a noninvasive solution, so the users don't have to change their service or to invoke any service explicitly. By using Cluster Dispatcher, the users could create Service Dispatch task for specific target service, for example a service to save customized configuration file. Once the target service is invoked on one node, it would be invoked on all other nodes with the same inputs, which makes the configuration file synchronized. Cluster Dispatcher is released as a standalone Integration Server package HxClusterDispatcher, but it will rely on some Integration Server features such as global variables and remote servers. Cluster Dispatcher is built on webMethods 9.9 and compiled by Java 1.8. 3 Design Architecture Cluster Dispatcher would monitor service execution once it's registered as a Service Dispatch task. Cluster Dispatcher would dispatch this service execution on other nodes by remotely invoke the same service with the same input. Cluster Recognition The nodes in cluster is configured as Integration Server property "watt.server.cluster.aliasList". The node name of current Integration Server is configured by global variable "HxClusterDispatcher.hostname". The name of all other nodes are calculated based on them. Because the service is dispatched by remote invoke, so remote server alias has to be configured for each of all other nodes, and make sure the remote server alias has the same value of node name. Unlike the webMethods' official definition of cluster, the nodes don't have to configured as a real cluster by sharing the same database and connecting to the same Terracotta Server Array, although that're recommended. 4 Dispatch Mode Cluster Dispatcher supports two different dispatch mode Strict and Lax. For mode Strict, the service has to be invoked successfully on all nodes, otherwise a rollback service would be invoked, if there is one, on all successful nodes (including itself) to reverse the invocation. For mode Lax, the service will be invoked on as many nodes as possible if it's successful on local, no rollback service would be invoked. Service Dispatch When a service is invoked, the dispatching would happen only when all conditions below are met: 1. 2. 3. 4. There are at least one other nodes configured in property "watt.server.cluster.aliasList". The service is registered as target service in a Service Dispatch task. The corresponding Service Dispatch task is enabled. The service is invoked as a top level service if corresponding Service Dispatch task is configured as top service only. 5. The service is not invoked by Cluster Dispatcher on other nodes, which is recognized by a Dispatch Flag Field. 6. The service is invoked successfully on local without any failure signal. Failure Signal The service dispatch is not guaranteed, and there could be errors during the dispatching on local or on any other nodes. A thrown exception would be definitely considered as a failure signal, or optional conditional expression could be configured for Service Dispatch task, which would follow the same pattern as evaluated label in Flow service. The conditional expression would be evaluated based on pipeline after service execution. Once the evaluated result is true, it would be considered as a failure signal. When target service is invoked: • • If a failure signal is found on local, the service dispatching won't happen on other nodes. A rollback service would be invoked on local if there is one and dispatch mode is Strict. If a failure signal is found on remote node, the whole process would be marked as failure. A rollback service would be invoked on both local and all successful nodes if there is one and dispatch mode is Strict. When rollback service is invoked: • If a failure signal is found, no matter on local or on remote node, this failure would be logged if logging service is configured. 5 Configuration Cluster Dispatcher has to be configured properly first, then it could function as expected. Setup Hostname Hostname would be used to calculate name of other nodes in cluster. You could setup hostname by following instruction below: 1. 2. 3. 4. Login Integration Server Administrator UI via browser. Click "Solutions" -> "HX Cluster Dispatcher...". In the opened new window/tab, click "Setup Hostname" under "Management" menu item. On the right side, create or edit global variable "HxClusterDispatcher.hostname" with proper value, for example "node1". Setup Cluster Nodes Cluster nodes would be used to calculate name of other nodes in cluster. You could setup hostname by following instruction below: 1. 2. 3. 4. Login Integration Server Administrator UI via browser Click "Solutions" -> "HX Cluster Dispatcher...". In the opened new window/tab, click "Setup Cluster Nodes" under "Management" menu item. On the right side, if you didn't see extended setting "watt.server.cluster.aliasList", click "Show and Hide Keys" and make it visible. 5. Click "Edit Extended Settings" and provide proper value (comma separated alias list), for example "node1,node2". Setup Remote Servers Remote servers would be used to dispatch the service invocation. You could setup remote servers by following instruction below: 1. 2. 3. 4. Login Integration Server Administrator UI via browser. Click "Solutions" -> "HX Cluster Dispatcher...". In the opened new window/tab, click "Setup Remote Servers" under "Management" menu item. On the right side, create remote server alias for each other nodes in cluster. Make sure the remote server alias name is the same as cluster node name. Self-Checking Because it's a little bit complicate to configure Cluster Dispatcher, so it provides self-checking feature to make sure it's ready for serve. You could do self-checking by following instruction below: 1. 2. 3. 4. Login Integration Server Administrator UI via browser. Click "Solutions" -> "HX Cluster Dispatcher...". In the opened new window/tab, click "Service Dispatch List" under "Management" menu item. On the right side, click "Self-Check" then you could see the self-checking status soon. Make sure all status is OK. 6 Service Dispatch Management A service has to be configured as a target service of Service Dispatch task, then it could be monitored and dispatched by Cluster Dispatcher. One service could only be configured as one Service Dispatch task. If a service is configured twice, the original task would be replaced by new one. List Service Dispatch You could list all Service Dispatch tasks by following instruction below: 1. 2. 3. 4. Login Integration Server Administrator UI via browser. Click "Solutions" -> "HX Cluster Dispatcher...". In the opened new window/tab, click "Service Dispatch List" under "Management" menu item. On the right side, you would see all existing Service Dispatch tasks. Add Service Dispatch You could add a new Service Dispatch task by following instruction below: 1. 2. 3. 4. 5. Login Integration Server Administrator UI via browser. Click "Solutions" -> "HX Cluster Dispatcher...". In the opened new window/tab, click "Service Dispatch List" under "Management" menu item. On the right side, click "Create" link. Fill the form to configure Service Dispatch task properly. a. Target Service, the name of service to be monitored and dispatched. b. Dispatch Mode, please refer to section Dispatch Mode. c. Top Service Only, whether Service Dispatch task would be triggered only for top level service. d. Enabled, whether Service Dispatch task is enabled. e. Dispatch Flag Field, a string field would be inserted for remote invoke, which would be used to recognize whether it's invoked by Cluster Dispatcher on other nodes. Make sure this field won't make any conflict with service input. By default, it's "$clusterDispatchingInitiator". f. Failure Signal Expression, an optional conditional expression to evaluate whether the target service is invoked successfully. g. Logging Service, an optional service to log related Service Dispatch task. The logging service has to have the same service signature with "pub.flow:debugLog". By default, service "pub.flow:debugLog" would be invoked. h. Log Pipeline, whether to log service input and output. i. Rollback Service, an optional service to reverse service invocation. It would be invoked on local and any successful nodes if a failure signal is found on any other nodes. j. Rollback Failure Signal Expression, an optional conditional expression to evaluate whether the rollback service is invoked successfully. 6. Click "Create" button. View Service Dispatch You could view Service Dispatch task detail by following instruction below: 1. Login Integration Server Administrator UI via browser. 2. Click "Solutions" -> "HX Cluster Dispatcher...". 3. In the opened new window/tab, click "Service Dispatch List" under "Management" menu item. 4. On the right side, click icon in the same row of Service Dispatch to view. 7 Edit Service Dispatch You could add a new Service Dispatch task by following instruction below: 1. Login Integration Server Administrator UI via browser. 2. Click "Solutions" -> "HX Cluster Dispatcher...". 3. In the opened new window/tab, click "Service Dispatch List" under "Management" menu item. 4. On the right side, click icon in the same row of Service Dispatch to edit. 5. Fill the form to edit Service Dispatch task properly. 6. Click "Update" button. Delete Service Dispatch You could delete an existing Service Dispatch task by following instruction below: 1. Login Integration Server Administrator UI via browser. 2. Click "Solutions" -> "HX Cluster Dispatcher...". 3. In the opened new window/tab, click "Service Dispatch List" under "Management" menu item. 4. On the right side, click icon in the same row of Service Dispatch to delete. 5. Click "OK" on popup prompt. Enable Service Dispatch You could enable a disabled Service Dispatch task by following instruction below: 1. 2. 3. 4. Login Integration Server Administrator UI via browser. Click "Solutions" -> "HX Cluster Dispatcher...". In the opened new window/tab, click "Service Dispatch List" under "Management" menu item. On the right side, click link "false" at column "Enabled" in the same row of Service Dispatch to enable. 5. Click "OK" on popup prompt. Disable Service Dispatch You could disable an enabled Service Dispatch task by following instruction below: 1. 2. 3. 4. Login Integration Server Administrator UI via browser. Click "Solutions" -> "HX Cluster Dispatcher...". In the opened new window/tab, click "Service Dispatch List" under "Management" menu item. On the right side, click link "true" at column "Enabled" in the same row of Service Dispatch to disable. 5. Click "OK" on popup prompt. 8 Keep in Mind Clone-able Pipeline To invoke a service remotely, the pipeline has to be clone-able. So do not try to dispatch service with a nonserializable data in pipeline. Recursive Dispatch Improper configuration would cause recursive dispatch, and it won't end. Hidden Service Dispatch Tasks To synchronize Service Dispatch tasks, there are 4 pre-defined Service Dispatch tasks which are hidden from users. 9
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf Linearized : No Page Count : 9 PDF Version : 1.4 Title : Microsoft Word - HxClusterDispatcher-Users'Guide.docx Producer : macOS Version 10.14.5 (Build 18F132) Quartz PDFContext Creator : Word Create Date : 2019:06:05 04:45:12Z Modify Date : 2019:06:05 04:45:12ZEXIF Metadata provided by EXIF.tools