Skip to content

Commit 72a96e5

Browse files
committed
update pro
1 parent 4a74703 commit 72a96e5

File tree

6 files changed

+84
-49
lines changed

6 files changed

+84
-49
lines changed

SUMMARY.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@
4040

4141
## 企业版本介绍 <span id="pro"></span>
4242
- [企业版说明](pro/tars-pro.md)
43-
- [主控集群化](pro/tars-raft.md)
43+
- [框架集群化机制](pro/tars-single.md)
44+
- [框架单节点机制](pro/tars-cluster.md)
4445
- [使用二进制包部署](pro/tars-deploy-bin.md)
4546
- [使用容器部署](pro/tars-deploy-container.md)
4647
- [业务服务一主多备机制](pro/tars-master-slave.md)

pro/tars-raft.md renamed to pro/tars-cluster.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
## 主控集群化
1+
## 框架集群化机制
22

33
企业版本框架中, 不再依赖数据, 此时tarsregistry采用了raft机制来实现集群化, 从而达到了2n+1台节点来完成故障容灾.
44

55
通常情况下, 由于采用了raft集群化设计, 必须至少部署三台tarsregistry(逻辑节点)才可以满足需求, 当然由于企业版本框架可以在同一台节点上部署多个tarsnode, 因此三台tarsregistry可以部署在同一个服务服务器.
66

7+
**注意, 框架也可以单节点部署, 请参考框架单节点机制**
8+
79
### 集群化优势
810

911
- 不再依赖第三方mysql数据库, 因此在部署, 运维上更加方便;
@@ -13,17 +15,16 @@
1315

1416
### 数据目录
1517

16-
tarsregistry的数据文件目录在: `/usr/local/app/tars/tarsnode/data/tars.tarsregistry/data/DBLog` 目录下
18+
tarsregistry的数据文件目录在: `/usr/local/app/tars/tarsnode/data/tars.tarsregistry/data/DB` 目录下
1719

1820
### 框架扩容
1921

2022
扩容主控节点非常简单, 只需要启动一个新的framework即可, 只是这时候locator需要增加自己当前主控的节点即可, 框架会自动感知并添加这个节点.
2123

22-
可以使用:
24+
可以使用查看所有主控的信息:
2325
```shell
2426
tarsctl framework registry
2527
```
26-
查看所有主控的信息
2728

2829
### 框架缩容
2930

pro/tars-deploy-bin.md

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
- 正常情况下, 需要选取2n+1节点服务器, 从而完成框架组件的容灾;
99
- 如果有需要, 也可以在同一个服务器上安装三次, 每次安装在不同目录, 使用不同的节点名称;
10+
- 也可以将框架部署成单节模式;
1011

1112
**tars企业版本可以在同一台节点上安装多个tarsnode, 只需要每个tarsnode的节点名称不同即可!**
1213

@@ -15,19 +16,18 @@
1516
### 安装framework
1617

1718
- 得到安装包: framework.tgz, 源码下可以执行: `make publish`, 得到安装包: framework.tgz
18-
- 得到tarsctl
19-
>- 源码编译, 执行: `make tarsctl`, 得到tarsctl
20-
>- 源码情况下, 可以远程下载: wget http://cdn.tarsyun.com/src/tarsctl -O tarsctl && chmod a+x tarsctl && cp tarsctl -rf /usr/bin/
19+
- 解压framework.tgz, 目录下得到tarsctl
2120
- 通常至少在2n+1台节点(建议3台)的运行以下命令安装framework
2221
```shell
23-
tarsctl install framework --install-path=/usr/local/app --file=framework.tgz --locator="tcp -h xxx1 -p yyy1:tcp -h xxx2 -p yyy2:tcp -h xxx3 -p yyy3" --localip=[xxx] --node-name=tarsnode-0 --registry=\"tcp -h xxx1 -p xxx2\"
22+
tarsctl install framework --mode=cluster --install-path=/usr/local/app --file=framework.tgz --locator="tcp -h xxx1 -p yyy1:tcp -h xxx2 -p yyy2:tcp -h xxx3 -p yyy3" --localip=[xxx] --node-name=tarsnode-0 --registry=\"tcp -h xxx1 -p xxx2\"
2423
```
2524
>- file: 制定了安装包文件, 如果是源码编译出来的, 通过`make publish`来生成
25+
>- mode: 集群机制, 默认是集群机制, 如果希望只部署一个节点(单节点机制), 则mode设置为single
2626
>- install-path: 指定了安装目录, 当前用户需要有这个目录的权限, 缺省为: /usr/local/app
2727
>- locator: 指定了主控的地址, 指定了三个地址, 必须和三台节点相匹配
2828
>- localip: 本节点的ip
2929
>- node-name: 当前安装的节点名称, 指定了`tarsnode`的节点名称(必须唯一)
30-
>- registry: 当前安装的主控节点QueryObj绑定的地址, 必须是locator中的一个
30+
>- registry: 当前安装的主控节点QueryObj绑定的地址, 必须是locator中的一个(如果是单节点机制, registry不需要设置)
3131
>- tarslog只部署在第一台节点`xxx1`上, 其他服务都是部署了三台节点
3232
3333
**注意: 可以在同一台机器上安装三个framework, 注意每次的安装目录(install-path)和节点名称(node-name)要不同, 另外注意locator和registry的地址要争取(比如ip相同, 端口不同)**
@@ -57,6 +57,11 @@ tarsctl install web --install-path=/usr/local/app --file=web.tgz --locator="tcp
5757
5858
你可以在多台机器上安装台web管理平台, 前面配置负载均衡即可.
5959

60+
启动管理平台:
61+
```shell
62+
cd /usr/local/app/web
63+
64+
```
6065
## 框架启动方式
6166

6267
启动组件服务有两种方式, 一种是手动拉起, 一种是自动拉起

pro/tars-deploy-container.md

Lines changed: 52 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -12,105 +12,103 @@
1212

1313
```shell
1414

15-
docker run -d --rm --net=host \
15+
docker run -d --net=host --restart=always \
1616
-e TARS_OPEN_FRAMEWORK=true \
1717
-e TARS_LOCATOR="tcp -h $ip1 -p $port1:tcp -h $ip2 -p $port2:tcp -h $ip3 -p $port3" \
1818
-e TARS_NODENAME="$nodename" \
1919
-e TARS_REGISTRY="tcp -h $ip1 -p 7891" \
2020
-e TARS_LOCALIP="$localip" \
21-
-e TARS_OPEN_WEB=true \
2221
-e TARS_START_PORT=9999 \
22+
-e TARS_MODE=cluster \
2323
-v /data/tars:/data/tars \
2424
--name framework-pro \
25-
ruanshudong/framework-pro
25+
docker.tarsyun.com/tars-pro/framework-pro
2626
```
2727

2828
说明:
2929
- 至少需要启动三个容器, 组成framework集群
30-
- `TARS_LOCATOR`指定了每个framework的地址, 需要自己配置好ip, port
31-
- `TARS_REGISTRY`指定了当前启动的这个容器的tarsregistry地址, 必须是`TARS_LOCATOR`中的一个
32-
- `TARS_LOCALIP`指定本机的ip, 如果支持多网卡, 可以使用"0.0.0.0"
33-
- `TARS_NODENAME`指定当前节点的名称, 注意nodename必须不同, 而且唯一
34-
- `TARS_OPEN_WEB`是否启动web管理平台
35-
- `TARS_START_PORT`组件启用的起始端口, 如果不指定则随机分配端口
30+
- `TARS_OPEN_FRAMEWORK`: 部署framework, 如果设置为false, 则只启动节点(请参考后续)
31+
- `TARS_LOCATOR`: 多节点的framework的tarsregistry.QueryObj的地址, 需要自己配置ip:port
32+
- `TARS_REGISTRY`: :当前框架的的tarsregistry地址, 必须是`TARS_LOCATOR`中的一个
33+
- `TARS_LOCALIP`: 本机的ip, 如果支持多网卡, 可以使用"0.0.0.0"
34+
- `TARS_NODENAME`: 当前节点的名称, 注意nodename必须不同, 而且唯一
35+
- `TARS_START_PORT`: 组件启用的起始端口, 如果不指定则随机分配端口, 否则从这个端口开始分配端口
36+
- `TARS_MODE`: 运行模式, 默认是集群模式(cluster), 也可以设置为单节点方式(single)
3637
- 可以在同一机器上启动三个容器, 注意自己控制好地址接口
3738
- 除了核心组件`tars.tarsregistry.QueryObj`的端口是分配的, 这里是: port1, port2, port3, 其他端口都是随机分配的
39+
- 每台节点, 都启动了web管理平台, 你可以通过: `http://${框架ip}:3000`, 打开管理平台
3840

39-
## 示例
41+
### 示例
4042

41-
- 在三台机器上启动容器
43+
- 在三台机器上启动容器, 并且三台容器构建成一个集群
4244

4345
比如在ip分别为: `192.168.11.1, 192.168.11.2, 192.168.11.3` 上部署容器, 你可以分别在三台机器上启动
4446

4547
在节点`192.168.11.1`上启动:
4648
```shell
47-
docker run -d --rm --net=host \
49+
docker run -d --net=host --restart=always \
4850
-e TARS_OPEN_FRAMEWORK=true \
4951
-e TARS_LOCATOR="tcp -h 192.168.11.1 -p 7890:tcp -h 192.168.11.2 -p 7890:tcp -h 192.168.11.3 -p 7890" \
5052
-e TARS_NODENAME="tarsnode-1" \
5153
-e TARS_REGISTRY="tcp -h 192.168.11.1 -p 7890" \
5254
-e TARS_LOCALIP="192.168.11.1" \
53-
-e TARS_OPEN_WEB=true \
5455
-e TARS_START_PORT=9000 \
5556
-v /data/tars:/data/tars \
5657
-v /etc/localtime:/etc/localtime \
5758
--name framework-pro \
58-
ruanshudong/framework-pro
59+
docker.tarsyun.com/tars-pro/framework-pro
5960
```
6061

6162
在节点`192.168.11.2`上启动:
6263
```shell
63-
docker run -d --rm --net=host \
64+
docker run -d --net=host --restart=always \
6465
-e TARS_OPEN_FRAMEWORK=true \
6566
-e TARS_LOCATOR="tcp -h 192.168.11.1 -p 7890:tcp -h 192.168.11.2 -p 7890:tcp -h 192.168.11.3 -p 7890" \
6667
-e TARS_NODENAME="tarsnode-2" \
6768
-e TARS_REGISTRY="tcp -h 192.168.11.2 -p 7890" \
6869
-e TARS_LOCALIP="192.168.11.2" \
69-
-e TARS_OPEN_WEB=true \
7070
-e TARS_START_PORT=9100 \
7171
-v /data/tars:/data/tars \
7272
-v /etc/localtime:/etc/localtime \
7373
--name framework-pro \
74-
ruanshudong/framework-pro
74+
docker.tarsyun.com/tars-pro/framework-pro
7575
```
7676

7777
在节点`192.168.11.3`上启动:
7878
```shell
79-
docker run -d --rm --net=host \
79+
docker run -d --net=host --restart=always \
8080
-e TARS_OPEN_FRAMEWORK=true \
8181
-e TARS_LOCATOR="tcp -h 192.168.11.1 -p 7890:tcp -h 192.168.11.2 -p 7890:tcp -h 192.168.11.3 -p 7890" \
8282
-e TARS_NODENAME="tarsnode-3" \
8383
-e TARS_REGISTRY="tcp -h 192.168.11.3 -p 7890" \
8484
-e TARS_LOCALIP="192.168.11.3" \
85-
-e TARS_OPEN_WEB=true \
8685
-e TARS_START_PORT=9200 \
8786
-v /data/tars:/data/tars \
8887
-v /etc/localtime:/etc/localtime \
8988
--name framework-pro \
90-
ruanshudong/framework-pro
89+
docker.tarsyun.com/tars-pro/framework-pro
9190
```
9291

93-
- 在一台机器上启动三个容器
92+
- 在一台机器上启动三个容器, 并且构建成集群
9493

9594
比如在ip为`192.168.11.1`的机器上启动三个容器:
9695

9796
```shell
98-
docker run -d --rm --net=host \
97+
docker run -d --net=host --restart=always \
9998
-e TARS_OPEN_FRAMEWORK=true \
10099
-e TARS_LOCATOR="tcp -h 192.168.11.1 -p 7890:tcp -h 192.168.11.1 -p 7891:tcp -h 192.168.11.1 -p 7892" \
101100
-e TARS_NODENAME="tarsnode-1" \
102101
-e TARS_REGISTRY="tcp -h 192.168.11.1 -p 7890" \
103102
-e TARS_LOCALIP="192.168.11.1" \
104-
-e TARS_OPEN_WEB=true \
105103
-e TARS_START_PORT=9000 \
106104
-v /data/tars:/data/tars \
107105
-v /etc/localtime:/etc/localtime \
108106
--name framework-pro-1 \
109-
ruanshudong/framework-pro
107+
docker.tarsyun.com/tars-pro/framework-pro
110108
```
111109

112110
```shell
113-
docker run -d --rm --net=host \
111+
docker run -d --net=host --restart=always \
114112
-e TARS_OPEN_FRAMEWORK=true \
115113
-e TARS_LOCATOR="tcp -h 192.168.11.1 -p 7890:tcp -h 192.168.11.1 -p 7891:tcp -h 192.168.11.1 -p 7892" \
116114
-e TARS_NODENAME="tarsnode-2" \
@@ -120,12 +118,12 @@ docker run -d --rm --net=host \
120118
-v /data/tars:/data/tars \
121119
-v /etc/localtime:/etc/localtime \
122120
--name framework-pro-2 \
123-
ruanshudong/framework-pro
121+
docker.tarsyun.com/tars-pro/framework-pro
124122
```
125123

126124

127125
```shell
128-
docker run -d --rm --net=host \
126+
docker run -d --net=host --restart=always \
129127
-e TARS_OPEN_FRAMEWORK=true \
130128
-e TARS_LOCATOR="tcp -h 192.168.11.1 -p 7890:tcp -h 192.168.11.1 -p 7891:tcp -h 192.168.11.1 -p 7892" \
131129
-e TARS_NODENAME="tarsnode-3" \
@@ -135,7 +133,7 @@ docker run -d --rm --net=host \
135133
-v /data/tars:/data/tars \
136134
-v /etc/localtime:/etc/localtime \
137135
--name framework-pro-3 \
138-
ruanshudong/framework-pro
136+
docker.tarsyun.com/tars-pro/framework-pro
139137

140138
```
141139

@@ -144,31 +142,46 @@ ruanshudong/framework-pro
144142
docker exec ${containid} tarsctl framework status
145143
```
146144

147-
注意:
148-
- 以上例子中只有framework-pro-1才启动了TARS_OPEN_WEB, 因为如果都启动, 会导致端口冲突, 因为在启动了三个容器, 且使用了--net=host模式
145+
可以通过`http://192.168.11.1:3000`, `http://192.168.11.2:3000`,`http://192.168.11.3:3000`, 打开管理平台!
149146

150-
# 增加节点
147+
- 在一台机器上以单节模式启动容器
148+
149+
```shell
150+
docker run -d --net=host --restart=always \
151+
-e TARS_OPEN_FRAMEWORK=true \
152+
-e TARS_LOCATOR="tcp -h 192.168.11.1 -p 7890" \
153+
-e TARS_NODENAME="master" \
154+
-e TARS_LOCALIP="192.168.11.1" \
155+
-e TARS_START_PORT=9200 \
156+
-e TARS_MODE=single \
157+
-v /data/tars:/data/tars \
158+
-v /etc/localtime:/etc/localtime \
159+
--name framework-pro \
160+
docker.tarsyun.com/tars-pro/framework-pro
161+
162+
```
163+
164+
## 增加节点
151165
当部署框架以后, 我们可以增加节点, 也以容器方式增加节点, 命令如下:
152166

153167
```shell
154168

155-
docker run -d --rm --net=host \
169+
docker run -d --net=host --restart=always \
156170
-e TARS_OPEN_FRAMEWORK=false \
157171
-e TARS_LOCATOR="tcp -h $ip1 -p $port1:tcp -h $ip2 -p $port2:tcp -h $ip3 -p $port3" \
158172
-e TARS_NODENAME="$nodename" \
159173
-e TARS_LOCALIP="$localip" \
160-
-e TARS_OPEN_WEB=true \
161174
-v /data/tars:/data/tars \
162175
-v /etc/localtime:/etc/localtime \
163176
--name $nodename \
164-
ruanshudong/framework-pro
177+
docker.tarsyun.com/tars-pro/framework-pro
165178
```
166179

167180
例如:
168181

169182
```shell
170183

171-
docker run -d --rm --net=host \
184+
docker run -d --net=host --restart=always \
172185
-e TARS_OPEN_FRAMEWORK=false \
173186
-e TARS_LOCATOR="tcp -h 192.168.11.1 -p 7890:tcp -h 192.168.11.1 -p 7891:tcp -h 192.168.11.1 -p 7892" \
174187
-e TARS_NODENAME="tarsnode-4" \
@@ -177,5 +190,7 @@ docker run -d --rm --net=host \
177190
-v /data/tars:/data/tars \
178191
-v /etc/localtime:/etc/localtime \
179192
--name tarsnode-4 \
180-
ruanshudong/framework-pro
181-
```
193+
docker.tarsyun.com/tars-pro/framework-pro
194+
```
195+
196+

pro/tars-pro.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
- 更高的可靠性
1010
- 更优的可管理性
1111

12-
为了更好的长久维护Tars框架, 使用企业版本框架我们会收取一定的费用, 如果有需要请和管理员(ruanshudong@qq.com)联系!
1312

1413
### 基于raft构建集群高可用性
1514

@@ -102,4 +101,4 @@ tars核心组件服务包括以下服务:
102101
- 使用企业版, 如果碰到技术问题, 可以提供相关的技术支持;
103102
- 提出的需求, 如果评估合适, 会纳入到开发计划中;
104103

105-
如果您有需要, 请联系`ruanshudong@qq.com`!
104+
如果您有需要, 请联系`39067484@qq.com`!

pro/tars-single.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
## 框架单节点机制
2+
3+
企业版本框架除了支持集群化机制以外, 也支持单节点机制, 在某些轻量级场合可以使用.
4+
5+
6+
### 数据目录
7+
8+
tarsregistry的数据文件目录在: `/usr/local/app/tars/tarsnode/data/tars.tarsregistry/data/DB` 目录下
9+
10+
### 框架扩容
11+
12+
单节点的框架如果希望扩容成集群化机制, 只需要将DB文件copy多其他节点, 然后启动时设置为集群模式启动即可(多台节点都需要重新启动).
13+
14+
注意: tarspatch, tarscollect也需要做同理处理, 当然你可以让tarsregistry是集群化机制, tarspatch, tarscollect仍然是单节点机制.

0 commit comments

Comments
 (0)