Skip to content

Commit

Permalink
deploy: update scripts
Browse files Browse the repository at this point in the history
  • Loading branch information
spinlock committed Nov 10, 2016
1 parent cea0feb commit 33fd9a8
Show file tree
Hide file tree
Showing 28 changed files with 606 additions and 62 deletions.
1 change: 1 addition & 0 deletions deploy/products/alpha/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
instance.json
2 changes: 1 addition & 1 deletion deploy/products/alpha/Makefile
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
all:
./render.py
./gen.py && ./render.py
24 changes: 4 additions & 20 deletions deploy/products/alpha/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,9 @@
"sentinel_quorum": 2
},
"proxy": {
"template": {
"min_cpu": 4,
"max_cpu": 8,
"max_clients": 10000,
"max_pipeline": 1024
},
"instance": [
{
"admin_addr": "127.0.0.1:11080",
"proxy_addr": "127.0.0.1:19000"
},
{
"admin_addr": "127.0.0.1:11081",
"proxy_addr": "127.0.0.1:19001"
},
{
"admin_addr": "127.0.0.1:11082",
"proxy_addr": "127.0.0.1:19002"
}
]
"min_cpu": 4,
"max_cpu": 8,
"max_clients": 10000,
"max_pipeline": 1024
}
}
35 changes: 35 additions & 0 deletions deploy/products/alpha/gen.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#!/usr/bin/env python3

import json

proxy = {
"": [
"127.0.0.1",
]
}

proxy_list = []

for dc, ip_list in proxy.items():
for ip in ip_list:
for i in [0, 1, 2]:
proxy_list.append({
"datacenter": dc,
"admin_addr": "{}:{}".format(ip, 11080 + i),
"proxy_addr": "{}:{}".format(ip, 19000 + i),
})

with open("instance.json", 'w+') as f:
f.write(json.dumps(proxy_list, indent=4))

for x in proxy:
print("[{}]:".format(x))
proxy_addr = ""
for p in proxy_list:
if p["datacenter"] == x:
if len(proxy_addr) != 0:
proxy_addr += ","
proxy_addr += p["proxy_addr"]
print(proxy_addr)
print("\n")

7 changes: 5 additions & 2 deletions deploy/products/alpha/render.py
Original file line number Diff line number Diff line change
Expand Up @@ -188,8 +188,8 @@ def __init__(self, config):

self.proxylist = []
if "proxy" in config:
template = Template(config["proxy"].get("template", {}))
for p in config["proxy"].get("instance", []):
template = Template(config.get("proxy", {}))
for p in config.get("instance", []):
self.proxylist.append(Proxy(self, template, p))
self.proxylist.sort(key=lambda p: p.datacenter + "|" + p.proxy_addr)

Expand All @@ -204,5 +204,8 @@ def render(self):
with open('config.json') as f:
config = json.loads(f.read())

with open('instance.json') as f:
config["instance"] = json.loads(f.read())

product = Product(config)
product.render()
1 change: 1 addition & 0 deletions deploy/products/beta/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
instance.json
2 changes: 1 addition & 1 deletion deploy/products/beta/Makefile
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
all:
./render.py
./gen.py && ./render.py
43 changes: 7 additions & 36 deletions deploy/products/beta/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,41 +15,12 @@
"sentinel_quorum": 2
},
"proxy": {
"template": {
"min_cpu": 4,
"max_cpu": 8,
"max_clients": 2000,
"max_pipeline": 512,
"log_level": "WARN",
"jodis_name": "zookeeper",
"jodis_addr": "10.4.10.101:2181,10.4.10.102:2181,10.4.10.103:2181,10.4.10.104:2181,10.4.10.105:2181"
},
"instance": [
{
"datacenter": "dc1",
"admin_addr": "10.4.10.200:11080",
"proxy_addr": "10.4.10.200:19000"
},
{
"datacenter": "dc1",
"admin_addr": "10.4.10.201:11080",
"proxy_addr": "10.4.10.201:19000"
},
{
"datacenter": "dc2",
"admin_addr": "10.2.16.200:11080",
"proxy_addr": "10.2.16.200:19000"
},
{
"datacenter": "dc2",
"admin_addr": "10.2.16.201:11080",
"proxy_addr": "10.2.16.201:19000"
},
{
"datacenter": "dc2",
"admin_addr": "10.2.16.202:11080",
"proxy_addr": "10.2.16.202:19000"
}
]
"min_cpu": 4,
"max_cpu": 8,
"max_clients": 2000,
"max_pipeline": 512,
"log_level": "WARN",
"jodis_name": "zookeeper",
"jodis_addr": "10.4.10.101:2181,10.4.10.102:2181,10.4.10.103:2181,10.4.10.104:2181,10.4.10.105:2181"
}
}
41 changes: 41 additions & 0 deletions deploy/products/beta/gen.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
#!/usr/bin/env python3

import json

proxy = {
"dc1": [
"10.4.10.200",
"10.4.10.201",
],
"dc2":[
"10.2.16.200",
"10.2.16.201",
"10.2.16.202",
],
}

proxy_list = []

for dc, ip_list in proxy.items():
for ip in ip_list:
for i in [0, 2]:
proxy_list.append({
"datacenter": dc,
"admin_addr": "{}:{}".format(ip, 11080 + i),
"proxy_addr": "{}:{}".format(ip, 19000 + i),
})

with open("instance.json", 'w+') as f:
f.write(json.dumps(proxy_list, indent=4))

for x in proxy:
print("[{}]:".format(x))
proxy_addr = ""
for p in proxy_list:
if p["datacenter"] == x:
if len(proxy_addr) != 0:
proxy_addr += ","
proxy_addr += p["proxy_addr"]
print(proxy_addr)
print("\n")

7 changes: 5 additions & 2 deletions deploy/products/beta/render.py
Original file line number Diff line number Diff line change
Expand Up @@ -188,8 +188,8 @@ def __init__(self, config):

self.proxylist = []
if "proxy" in config:
template = Template(config["proxy"].get("template", {}))
for p in config["proxy"].get("instance", []):
template = Template(config.get("proxy", {}))
for p in config.get("instance", []):
self.proxylist.append(Proxy(self, template, p))
self.proxylist.sort(key=lambda p: p.datacenter + "|" + p.proxy_addr)

Expand All @@ -204,5 +204,8 @@ def render(self):
with open('config.json') as f:
config = json.loads(f.read())

with open('instance.json') as f:
config["instance"] = json.loads(f.read())

product = Product(config)
product.render()
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[Unit]
Description=Codis-[demo-beta]@19002
[Service]
ExecStart=/opt/codis/bin/codis-proxy --ncpu=4 --max-ncpu=8 \
--config=/opt/codis/etc/10.2.16.200:19002/proxy.toml --log=/opt/codis/log/10.2.16.200:19002/proxy.log --log-level=WARN
Restart=always
[Install]
WantedBy=default.target

86 changes: 86 additions & 0 deletions deploy/root/opt/codis/etc/10.2.16.200_19002/proxy.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
##################################################
# #
# Codis-Proxy #
# #
##################################################

# Set Codis Product Name/Auth.
product_name = "demo-beta"
product_auth = ""

# Set bind address for admin(rpc), tcp only.
admin_addr = "10.2.16.200:11082"

# Set bind address for proxy, proto_type can be "tcp", "tcp4", "tcp6", "unix" or "unixpacket".
proto_type = "tcp4"
proxy_addr = "10.2.16.200:19002"

# Set jodis address & session timeout, only accept "zookeeper" & "etcd".
jodis_name = "zookeeper"
jodis_addr = "10.4.10.101:2181,10.4.10.102:2181,10.4.10.103:2181,10.4.10.104:2181,10.4.10.105:2181"
jodis_timeout = "20s"
jodis_compatible = false

# Set datacenter of proxy.
proxy_datacenter = "dc2"

# Set max number of alive sessions.
proxy_max_clients = 2000

# Set max offheap memory size. (0 to disable)
proxy_max_offheap_size = "1024mb"

# Set heap placeholder to reduce GC frequency.
proxy_heap_placeholder = "256mb"

# Proxy will ping backend redis in a predefined interval. (0 to disable)
backend_ping_period = "5s"

# Set backend recv buffer size & timeout.
backend_recv_bufsize = "128kb"
backend_recv_timeout = "50s"

# Set backend send buffer & timeout.
backend_send_bufsize = "128kb"
backend_send_timeout = "50s"

# Set backend pipeline buffer size.
backend_max_pipeline = 1024

# Set backend never read replica groups, default is false
backend_primary_only = false

# Set backend parallel connections per server
backend_primary_parallel = 1
backend_replica_parallel = 1

# Set backend tcp keepalive period. (0 to disable)
backend_keepalive_period = "75s"

# If there is no request from client for a long time, the connection will be closed. (0 to disable)
# Set session recv buffer size & timeout.
session_recv_bufsize = "128kb"
session_recv_timeout = "30m"

# Set session send buffer size & timeout.
session_send_bufsize = "64kb"
session_send_timeout = "30s"

# Make sure this is higher than the max number of requests for each pipeline request, or your client may be blocked.
# Set session pipeline buffer size.
session_max_pipeline = 512

# Set session tcp keepalive period. (0 to disable)
session_keepalive_period = "75s"

# Set metrics server (such as http://localhost:28000), proxy will report json formatted metrics to specified server in a predefined period.
metrics_report_server = ""
metrics_report_period = "1s"

# Set influxdb server (such as http://localhost:8086), proxy will report metrics to influxdb.
metrics_report_influxdb_server = ""
metrics_report_influxdb_period = "1s"
metrics_report_influxdb_username = ""
metrics_report_influxdb_password = ""
metrics_report_influxdb_database = ""

3 changes: 3 additions & 0 deletions deploy/root/opt/codis/etc/10.2.16.200_19002/proxy_admin
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/usr/bin/env bash

/opt/codis/bin/codis-admin --proxy=10.2.16.200:11082 $@
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[Unit]
Description=Codis-[demo-beta]@19002
[Service]
ExecStart=/opt/codis/bin/codis-proxy --ncpu=4 --max-ncpu=8 \
--config=/opt/codis/etc/10.2.16.201:19002/proxy.toml --log=/opt/codis/log/10.2.16.201:19002/proxy.log --log-level=WARN
Restart=always
[Install]
WantedBy=default.target

Loading

0 comments on commit 33fd9a8

Please sign in to comment.