1/29/2024 0 Comments Godocs updateInitialFailoverVersion: each cluster must use a different value from 0 to failoverVersionIncrement-1. It is only meaningful for internal purposes.ĬurrentClusterName: current cluster name using this config file.ĬlusterInformation is a map from clusterName to the cluster configure MasterClusterName: a master cluster must be one of the enabled clusters, usually the very first cluster to start. For example 10 is sufficient for most cases. Golang profiling service, will bind on the same IP as RPCĪ port that you want to serve pprof requestĮnableGlobalDomain:true will enable Cadence Cross datacenter replication(aka XDC) feature.įailoverVersionIncrement: This decides the maximum clusters that you will have replicated to each other at the same time. bindOnIP : an IP address that the container will serve the traffic with Name: Use as recommended in development.yaml. NAME is the matter for the “-services” option in the server startup command. In production usually you have to specify the IP that containers will use by using bindOnIP Using localhost+Port or local container IP address+Port will not work if the IP/container is not running frontendĬonfiguration of how to listen to network ports and serve traffic.īindOnLocalHost:true will bind on 127.0.0.1. Recommended be DNS of Frontend service, so that requests will be distributed to all Frontend nodes. Ideally Cadence should be able to get Frontend address from there. The Cadence Frontend service addresses that internal Cadence system(like system workflows) need to talk to.Īfter connected, all nodes in Ringpop will form a ring with identifiers of what service they serve. Make sure all the bootstrap nodes are reachable at startup. In fact, it can be running none of them as long as it runs Ringpop protocol.įor dns mode: Recommended to put the DNS of Frontend serviceįor hosts or hostfile mode: A list of Frontend service node addresses if using hosts mode. It’s not required that bootstrap nodes need to be Frontend/History or Matching. ALL the bootstrap nodes MUST be reachable by ringpop when a service is starting up, within a MaxJoinDuration. This is the config to let all nodes of all services connected to each other. Typically 2K for SQL based persistence, and 8K for Cassandra based. But to keep high availability, it’s recommended to use at least 4 nodes for each service(Frontend/History/Matching) at the beginning.ġK~16K depending on the size ranges of the cluster you expect to run, and the instance size. You also don’t want to have a too big number, which will require you to have a quite big initial size of the cluster.Īlso, typically a production cluster will start with a smaller number and then we add more nodes/hosts to it. This will be wasting resources.īased on above, you don’t want to have a small number of shards which will limit the maximum size of your cluster. When the number of History nodes is closed or equal to numHistoryShards, there will be some History nodes that have no shards assigned to it. Also, you can’t add an infinite number of nodes to a cluster because this config is fixed. You may need to figure out a good number range based on your instance size(memory/CPU).ģ. Therefore, a single History node cannot own too many shards. Each shard will consume a small amount of memory/CPU to do background processing. Each shard will be assigned to only one History node to own the shard, using a Consistent Hashing Ring. Within a shard, all the workflow creation/updates are serialized.Ģ. Each workflow will be mapped to a single shard. The only way to change it is to migrate to another cluster. This is the most important one in Cadence config.It will be a fixed number in the cluster forever. Here are the most basic configuration that you should understand. # Static configuration # Understand the basic static configuration Cadence will depends on a blob store like S3 if you need to enable archival feature. All instances of Cadence clusters are stateless.įor production you also need a metric server(Prometheus/Statsd/M3/etc).įor advanced features Cadence depends on others like Elastisearch/OpenSearch+Kafka if you need Advanced visibility feature to search workflows. The default values are good to go for small clusters.Ĭadence’s minimum dependency is a database(Cassandra or SQL based like MySQL/Postgres). There are also many other configuration called "Dynamic Configuration" for fine tuning the cluster. You should understand some basic static configuration of Cadence cluster. This section will help to understand what you need for setting up a Cadence cluster.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |