ZooKeeper

类型: 单角色节点最基本配置

该示例根据应用模版规范开发 ZooKeeper 应用的配置包,包括 config.json 和基础版 cluster.json.mustahce。为了示意监控告警等功能,增加了完整版的 cluster.json.mustache。对于单角色分布式系统可以定义角色名字,也可以不用定义。

config.json

{
    "type": "array",
    "properties": [{
        "key": "cluster",
        "description": "ZooKeeper release 3.4.9 cluster properties",
        "type": "array",
        "properties": [{
            "key": "name",
            "label": "Name",
            "description": "The name of the ZooKeeper service",
            "type": "string",
            "default": "ZooKeeper",
            "required": "no"
        }, {
            "key": "description",
            "label": "Description",
            "description": "The description of the ZooKeeper service",
            "type": "string",
            "default": "",
            "required": "no"
        }, {
            "key": "vxnet",
            "label": "VxNet",
            "description": "Choose a vxnet to join",
            "type": "string",
            "default": "",
            "required": "yes"
        }, {
            "key": "zk_node",
            "label": "ZooKeeper Node",
            "description": "role-based node properties",
            "type": "array",
            "properties": [{
                "key": "cpu",
                "label": "CPU",
                "description": "CPUs of each node",
                "type": "integer",
                "default": 1,
                "range": [
                    1,
                    2,
                    4,
                    8
                ],
                "required": "yes"
            }, {
                "key": "memory",
                "label": "Memory",
                "description": "memory of each node (in MiB)",
                "type": "integer",
                "default": 2048,
                "range": [
                    1024,
                    2048,
                    4096,
                    8192,
                    16384,
                    32768
                ],
                "required": "yes"
            }, {
                "key": "instance_class",
                "label": "Instance Class",
                "description": "The instance type for the cluster to run,such as high performance,high performance plus",
                "type": "integer",
                "default": 0,
                "range": [0, 1],
                "required": "yes"
            }, {
                "key": "count",
                "label": "Node Count",
                "description": "Number of nodes for the cluster to create",
                "type": "integer",
                "default": 3,
                "range": [
                    1,
                    3,
                    5,
                    7,
                    9
                ],
                "required": "yes"
            }, {
                "key": "volume_size",
                "label": "Volume Size",
                "description": "The volume size for each node",
                "type": "integer",
                "default": 10,
                "required": "yes"
            }]
        }]
    }]
}

基础版 cluster.json.mustache

{
    "name": {{cluster.name}},
    "description": {{cluster.description}},
    "vxnet": {{cluster.vxnet}},
    "nodes": [{
        "container": {
            "type": "kvm",
            "zone": "pek3a",
            "image": "img-w3ezc0yt"
        },
        "count": {{cluster.zk_node.count}},
        "cpu": {{cluster.zk_node.cpu}},
        "memory": {{cluster.zk_node.memory}},
        "instance_class": {{cluster.zk_node.instance_class}},
        "volume": {
            "size": {{cluster.zk_node.volume_size}}
        },
        "server_id_upper_bound": 255,
        "services": {
            "start": {
                "cmd": "/opt/zookeeper/bin/zkServer.sh start"
            },
            "stop": {
                "cmd": "/opt/zookeeper/bin/zkServer.sh stop"
            }
        }
    }],
    "advanced_actions": ["change_vxnet", "scale_horizontal"]
}

完整版 cluster.json.mustache (含监控告警、健康检查、endpoints 和 rest 服务)

{
    "name": {{cluster.name}},
    "description": {{cluster.description}},
    "vxnet": {{cluster.vxnet}},
    "nodes": [{
        "container": {
            "type": "kvm",
            "zone": "pek3a",
            "image": "img-bwuaz13r"
        },
        "count": {{cluster.zk_node.count}},
        "cpu": {{cluster.zk_node.cpu}},
        "memory": {{cluster.zk_node.memory}},
        "instance_class": {{cluster.zk_node.instance_class}},
        "volume": {
            "size": {{cluster.zk_node.volume_size}}
        },
        "server_id_upper_bound": 255,
        "services": {
            "start": {
                "cmd": "/opt/zookeeper/bin/zkServer.sh start;/opt/zookeeper/bin/rest.sh start"
            },
            "stop": {
                "cmd": "/opt/zookeeper/bin/rest.sh stop;/opt/zookeeper/bin/zkServer.sh stop"
            }
        },
        "advanced_actions": ["change_vxnet", "scale_horizontal"],
        "vertical_scaling_policy": "sequential"
    }],
    "endpoints": {
        "client": {
            "port": 2181,
            "protocol": "tcp"
        },
        "rest": {
            "port": 9998,
            "protocol": "tcp"
        }
    },
    "health_check": {
        "enable": true,
        "interval_sec": 60,
        "timeout_sec": 10,
        "action_timeout_sec": 30,
        "healthy_threshold": 2,
        "unhealthy_threshold": 2,
        "check_cmd": "echo srvr | nc 127.0.0.1 2181",
        "action_cmd": "/opt/zookeeper/bin/restart-server.sh"
    },
    "monitor": {
        "enable": true,
        "cmd": "/opt/zookeeper/bin/get-monitor.sh",
        "items": {
            "mode": {
                "unit": "",
                "value_type": "str",
                "statistics_type": "latest",
                "enums": ["L", "F", "S"]
            },
            "min": {
                "unit": "ms",
                "value_type": "int",
                "statistics_type": "min",
                "scale_factor_when_display": 1
            },
            "avg": {
                "unit": "ms",
                "value_type": "int",
                "statistics_type": "avg",
                "scale_factor_when_display": 1
            },
            "max": {
                "unit": "ms",
                "value_type": "int",
                "statistics_type": "max",
                "scale_factor_when_display": 1
            },
            "received": {
                "unit": "count",
                "value_type": "int",
                "statistics_type": "latest",
                "scale_factor_when_display": 1
            },
            "sent": {
                "unit": "count",
                "value_type": "int",
                "statistics_type": "latest",
                "scale_factor_when_display": 1
            },
            "active": {
                "unit": "count",
                "value_type": "int",
                "statistics_type": "latest",
                "scale_factor_when_display": 1
            },
            "outstanding": {
                "unit": "count",
                "value_type": "int",
                "statistics_type": "latest",
                "scale_factor_when_display": 1
            },
            "znode": {
                "unit": "znode_count",
                "value_type": "int",
                "statistics_type": "latest",
                "scale_factor_when_display": 1
            }
        },
        "groups": {
            "latency":  ["min", "avg", "max"],
            "throughput": ["received", "sent"],
            "connections": ["active", "outstanding"]
        },
        "display": ["mode", "latency", "throughput", "connections", "znode"],
        "alarm": ["avg"]
    }
}

results matching ""

    No results matching ""