Skip to content

Commit

Permalink
Fix description bug of sc-cluster.md
Browse files Browse the repository at this point in the history
Signed-off-by: MabinGo <bin.ma@huawei.com>
  • Loading branch information
MabinGo authored and WillemJiang committed Dec 22, 2018
1 parent 412c2f2 commit 7971701
Showing 1 changed file with 29 additions and 32 deletions.
61 changes: 29 additions & 32 deletions service-center-reference/zh_CN/sc-cluster.md 100644 → 100755
@@ -1,65 +1,60 @@
###在群集模式下部署Service-Center
### 在集群模式下部署服务中心(Service-Center

由于服务中心是无状态应用程序,因此可以在群集模式下无缝部署以实现HA。
SC依赖于etcd来存储微服务信息,因此您可以选择独立运行etcd或在[cluster]中运行(https://github.com/coreos/etcd/blob/master/Documentation/op-guide/container.md )模式。
完成以群集或独立模式安装etcd后,您可以按照以下步骤运行服务中心。
服务中心是无状态应用,其使用 etcd 作为对象存储保存微服务的元数据。

假设您要在VM上安装2个Service-Center实例,并提供以下详细信息
搭建单机版服务中心,服务中心发布版本默认内置一个 etcd,开箱即用;用户亦可以通过简单配置方式外接指定的 etcd 环境。

搭建服务中心集群,首先需要部署 etcd 集群,其次对服务中心做简单配置即可实现集群管理,如下举例简单说明,

准备工作:
1. 两个VM(虚拟机),分别安装一个服务中心实例

| Name | Address |
| :-----: | :---------: |
| VM1 | 10.12.0.1 |
| VM2 | 10.12.0.2 |

这里我们假设您的etcd在http://10.12.0.4:2379上运行(您可以关注[this]https://github.com/coreos/etcd/blob/master/Documentation/op-guide/container.md )指导在集群模式下安装etcd。)
2. [etcd集群](https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/container.md) 已安装部署就绪,服务开放端口为 http://10.12.0.4:2379

3. 运行环境为 Linux

##### Step 1

从所有VM上的[here]https://github.com/apache/incubator-servicecomb-service-center/releases)下载SC版本。
下载 [服务中心版本](http://servicecomb.apache.org/release/) ,如:[ServiceComb Service-Center 1.1.0](https://apache.org/dyn/closer.cgi/servicecomb/servicecomb-service-center/1.1.0/)

```
``` shell
# Untar the release
# tar -xvf service-center-X.X.X-linux-amd64.tar.gz
tar -xvf service-center-X.X.X-linux-amd64.tar.gz
```

注意:请不要运行start.sh,因为它也会启动etcd
注意:请勿运行 start.sh 脚本,因为该脚本会启动版本默认内置的 etcd

##### Step 2
编辑ip/port(SC运行需要)和etcd ip的配置
配置服务中心运行参数,配置文件默认为发布包的 /conf/app.conf,打开文件编辑如下字段

###### VM1
```
# vi conf/app.conf
``` shell
#Replace the below values
httpaddr = 10.12.0.1
manager_cluster = "10.12.0.4:2379"
# Start the Service-center
./service-center
```

###### VM2
```
# vi conf/app.conf
``` shell
#Replace the below values
httpaddr = 10.12.0.2
manager_cluster = "10.12.0.4:2379"
# Start the Service-center
./service-center
```

注意:在`manger_cluster`中,你可以将etcd的多个实例放在集群中
注意:在 `manger_cluster` 中,可以将 etcd 的多个实例放在集群中

```
``` shell
manager_cluster= "10.12.0.4:2379,10.12.0.X:2379,10.12.0.X:2379"
```

#### Step 4
Verify your instances
```
# curl http://10.12.0.1:30101/v4/default/registry/health
验证实例是否已成功运行,调用API:curl http://10.12.0.1:30101/v4/default/registry/health
``` json
{
"instances": [
{
Expand Down Expand Up @@ -98,15 +93,17 @@ Verify your instances
}
```

我们在这里可以看到Service-Center可以自动发现在集群中运行的Service-Center的所有实例,[Java-Chassis SDK]使用此自动发现功能(https://github.com/apache / incubator-servicecomb-java-chassis)通过了解集群中运行的服务中心的至少1个IP来自动发现服务中心的所有实例
可以看到服务中心可以自动发现在集群中运行的所有实例

在您的microservice.yaml中,您可以提供实例或任何一个实例的SC IP,sdk可以自动发现其他实例,并使用其他实例在第一个实例失败的情况下获取微服务详细信息。
```
cse:
#### Step 5
在基于ServiceComb微服务SDK [servicecomb-java-chassis](https://github.com/apache/servicecomb-java-chassis) 构建的微服务工程中,通过配置 `microservice.yaml` 文件中的 `servicecomb.service.registry.address` 参数,使微服务自动发现集群中所有的实例。

``` yaml
servicecomb:
service:
registry:
address: "http://10.12.0.1:30100,http://10.12.0.2:30100"
autodiscovery: true
```
在这种情况下,sdk将能够发现集群中SC的所有实例。

注:允许配置一个或多个服务中心的实例地址,配置多个服务中心实例的场景可以起到单点故障备份的作用

0 comments on commit 7971701

Please sign in to comment.