This is an automated email from the ASF dual-hosted git repository.
tianxiaoliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-mesher.git
The following commit(s) were added to refs/heads/master by this push:
new 75a8c6d Optimize docs (#88)
75a8c6d is described below
commit 75a8c6de41b812e5adce84866076b44a2e31410e
Author: Ang Li <[email protected]>
AuthorDate: Thu Nov 28 09:35:17 2019 +0800
Optimize docs (#88)
---
docs/configurations/admin.md | 10 ++---
docs/configurations/cli.md | 18 ++++-----
docs/configurations/destination_resolver.md | 7 ++--
docs/configurations/edge.md | 38 +++++++++---------
docs/configurations/health.md | 60 +++++++++++++++--------------
docs/configurations/profiling.md | 10 ++---
docs/development/build.md | 6 +--
docs/development/cloud-provider.md | 17 ++++----
docs/development/handler-chain.md | 28 +++++++-------
docs/getstarted/install.md | 49 +++++++++++------------
docs/getstarted/minimum.md | 15 ++++----
docs/intro/concepts.md | 10 ++---
docs/intro/what-is.md | 2 +-
docs/istio/egress.md | 30 ++++++++-------
docs/istio/getstarted.md | 2 +-
docs/istio/router.md | 12 +++---
docs/protocols/grpc.md | 4 +-
17 files changed, 167 insertions(+), 151 deletions(-)
diff --git a/docs/configurations/admin.md b/docs/configurations/admin.md
index 0dffc61..c541338 100644
--- a/docs/configurations/admin.md
+++ b/docs/configurations/admin.md
@@ -2,17 +2,17 @@
### Configurations
-admin api server leverage protocol server, it listens on isolated port, by
default admin is enabled, and default value of goRuntimeMetrics is false.
+Admin API server leverages protocol server, it listens on isolated port. By
default admin is enabled, and default value of goRuntimeMetrics is false.
-To start api server, set protocol server config in chassis.yaml
+To start API server, set protocol server config in chassis.yaml:
```yaml
cse:
protocols:
rest-admin:
- listenAddress: 0.0.0.0:30102 # listen addr for adminAPI
+ listenAddress: 0.0.0.0:30102 # listen addr for admin API
```
-tune admin api in mesher.yaml
+Tune admin api in mesher.yaml:
```yaml
admin:
enable: true
@@ -20,6 +20,6 @@ admin:
**admin.enable**
->*(optional, bool)* default is false
+>*(optional, bool)* Default is false
diff --git a/docs/configurations/cli.md b/docs/configurations/cli.md
index 38c646e..8ff4c30 100644
--- a/docs/configurations/cli.md
+++ b/docs/configurations/cli.md
@@ -1,5 +1,5 @@
# Mesher command Line
-when you start mesher process, you can use mesher command line to specify
configurations like below
+When you start a mesher process, you can use mesher command line to specify
configurations as follows:
```shell
mesher --config=mesher.yaml --service-ports=rest:8080
```
@@ -7,19 +7,19 @@ mesher --config=mesher.yaml --service-ports=rest:8080
### Options
-
**--config**
->*(optional, string)* the path to mesher configuration file, default value is
{current_bin_work_dir}/conf/mesher.yaml
+>*(optional, string)* The path to mesher configuration file, default value is
{current_bin_work_dir}/conf/mesher.yaml
**--mode**
->*(optional, string)* mesher has 2 work mode, sidecar and edge, default is
sidecar
+>*(optional, string)* Mesher has 2 work modes, sidecar and edge, default is
sidecar
**--service-ports**
->*(optional, string)* running as sidecar, mesher need to know local service
ports,
+
+>*(optional, string)* Running as sidecar, mesher needs to know local service
ports,
this is to tell mesher service port list,
-The value format is {protocol}-{suffix} or {protocol}
-if service has multiple protocol, you can separate with comma
"rest-admin:8080,grpc:9000".
-default is empty, in that case mesher will use header X-Forwarded-Port as
local service port,
-if it is empty also mesher can not communicate to your local service
+The value format is {protocol}-{suffix} or {protocol}.
+If service has multiple protocols, you can separate with comma
"rest-admin:8080, grpc:9000",
+default is empty. In that case mesher will use header X-Forwarded-Port as
local service port,
+if header X-Forwarded-Port is also empty, mesher can not communicate to your
local service.
diff --git a/docs/configurations/destination_resolver.md
b/docs/configurations/destination_resolver.md
index 4b2712d..dff8f3e 100644
--- a/docs/configurations/destination_resolver.md
+++ b/docs/configurations/destination_resolver.md
@@ -1,11 +1,11 @@
# Destination Resolver
Destination Resolver is a module to parse each protocol request to get a
target service name.
-you can write your own resolver implementation for different protocol.
+You can write your own resolver implementation for different protocols.
## Configurations
-example
+Example:
```yaml
plugin:
destinationResolver:
@@ -16,5 +16,6 @@ plugin:
**plugin.destinationResolver**
->*(optional, map)* here you can define what kind of resolver, a protocol
should use
+
+>*(optional, map)* Define what kind of resolver, a protocol should use
diff --git a/docs/configurations/edge.md b/docs/configurations/edge.md
index 9076689..bd175b9 100644
--- a/docs/configurations/edge.md
+++ b/docs/configurations/edge.md
@@ -1,39 +1,41 @@
# API gateway
-mesher is able to work as a API gateway to mange traffic,to run mesher as an
API gateway
+Mesher is able to work as a API gateway to mange traffic, to run mesher as an
API gateway:
```shell
mesher --config=mesher.yaml --mode edge
```
-the ingress rule is in mesher.yaml
+The ingress rule is in mesher.yaml.
### Options
**mesher.ingress.type**
->*(optional, string)* default is servicecomb, it reads servicecomb ingress
rule.
->it is a plugin, you can custom your own implementation
-
+>*(optional, string)* Default is servicecomb, it reads servicecomb ingress
rule.
+>It is a plugin, you can custom your own implementation.
**mesher.ingress.rule.http**
->*(optional, string)* rule about how to forward http traffic. it holds a yaml
content as rule.
-below explain the content, the rule list is like a filter, all the request
will go through this rule list until match one rule.
+>*(optional, string)* Rule about how to forward http traffic. It holds a yaml
content as rule.
+
+
+
+Below explaining the content, the rule list is like a filter, all the request
will go through this rule list until matching one rule.
**apiPath**
->*(required, string)* if request's url match this, it will use this rule
+
+>*(required, string)* If request's url matches this, it will use this rule.
**host**
->*(optional, string)* if request HOST match this, mesher will use this rule,
it can be empty,
->if you set both host and apiPath, the request's host and api path must match
them at the same time
+>*(optional, string)* If request HOST matches this, mesher will use this rule.
It can be empty.
+>If you set both host and apiPath, the request's host and api path must match
them both.
>
**service.name**
->*(required, string)* target backend service name in registry service(like
ServiceComb service center)
+>*(required, string)* Target back-end service name in registry service (like
ServiceComb service center).
>
**service.redirectPath**
->*(optional, string)* by default, mesher use original request's url
+>*(optional, string)* By default, mesher uses original request's url.
>
**service.port.value**
->*(optional, string)* if you use java chassis or go chassis to develop backend
service, no need to set it.
->but if your backend service use mesher-sidecar, you must give your service
port here.
->
+>*(optional, string)* If using java chassis or go chassis to develop back-end
service, no need to set it.
+>But if back-end service uses mesher-sidecar, service port must be given here.
### example
```yaml
mesher:
@@ -59,15 +61,15 @@ mesher:
### Enable TLS
-generate private key
+Generate private key
```sh
openssl genrsa -out server.key 2048
```
-sign cert with private key
+Sign cert with private key
```shell script
openssl req -new -x509 -key server.key -out server.crt -days 3650
```
-set file path in chassis.yaml
+Set file path in chassis.yaml
```yaml
ssl:
mesher-edge.rest.Provider.certFile: server.crt
diff --git a/docs/configurations/health.md b/docs/configurations/health.md
index 99792ce..12aeca8 100644
--- a/docs/configurations/health.md
+++ b/docs/configurations/health.md
@@ -1,45 +1,49 @@
# Local Health check
-you can use health checker to check local service health,
-when service instance is not healthy, mesher will update the instance status
in registry service to "DOWN"
-so that other service
-can not discover this instance. If the service is healthy again, mesher will
update status to "UP",
+You can use health checker to check local service health.
+When service instance is unhealthy, mesher will update the instance status in
registry service to "DOWN"
+so that other services
+can not discover this instance. After the service becoming healthy again,
mesher will update the status to "UP",
then other instance can discover it again.
-currently this function works only when you use service center as registry
-
-examples:
-
-Check local http service
-```yaml
-localHealthCheck:
- - port: 8080
- protocol: rest
- uri: /health
- interval: 30s
- match:
- status: 200
- body: ok
-```
+Currently this function works only when using service center as registry.
-### Options
+Examples:
+
+- Check local http service
+ ```yaml
+ localHealthCheck:
+ - port: 8080
+ protocol: rest
+ uri: /health
+ interval: 30s
+ match:
+ status: 200
+ body: ok
+ ```
+
+### Options
**port**
->*(require, string)* must be a port number, mesher is only responsible to
check local service,
-it use 127.0.0.1:{port} to check service
+
+>*(require, string)* Must be a port number, mesher is only responsible to
check local services,
+it use 127.0.0.1:{port} to check services.
**protocol**
->*(optional, string)* mesher has a built-in checker "rest",for other protocol,
-will use default TCP checker unless you implement your own checker
+
+>*(optional, string)* Mesher has a built-in checker "rest",for other
protocols,
+will use default TCP checker unless implementing your own checker.
**uri**
->*(optional, string)* uri start with /.
+
+>*(optional, string)* Uri start with /.
**interval**
->*(optional, string)* check interval, you can use number with unit: 1m, 10s.
+>*(optional, string)* Check interval, you can use number with unit: 1m, 10s.
**match.status**
->*(optional, string)* the http response status must match status code
+>*(optional, string)* The http response status must match status code.
**match.body**
->*(optional, string)* the http response body must match body
\ No newline at end of file
+
+>*(optional, string)* The http response body must match body.
\ No newline at end of file
diff --git a/docs/configurations/profiling.md b/docs/configurations/profiling.md
index 1f3a6fe..41caca9 100644
--- a/docs/configurations/profiling.md
+++ b/docs/configurations/profiling.md
@@ -1,6 +1,6 @@
# Profile Mesher
-Mesher has a convenience way to enable go pprof, so that you can easily
analyze the performance of mesher
+Mesher has a convenience way to enable go [pprof](
https://golang.org/pkg/net/http/pprof/ ), so that you can easily analyze the
performance of mesher.
## Configurations
@@ -10,11 +10,11 @@ pprof:
listen: 127.0.0.0.1:6060
```
-
-
**enable**
->*(optional, bool)* default is false
+>*(optional, bool)* Default is false
**listen**
->*(optional, string)* Listen IP and port
\ No newline at end of file
+
+>*(optional, string)* Listen IP and port
+
diff --git a/docs/development/build.md b/docs/development/build.md
index 0454d44..ecf9d54 100644
--- a/docs/development/build.md
+++ b/docs/development/build.md
@@ -1,7 +1,7 @@
# Build mesher
-you need to build and release your mesher after the customization
+You need to build and release your mesher after customization.
### Build binary
-you can refer to build/build_proxy to see how we build mesher binary and
docker image.
+You can refer to build/build_proxy to see how we build mesher binary and
docker image.
-build/docker/proxy/Dockerfile is a example about how to make a docker image
\ No newline at end of file
+build/docker/proxy/Dockerfile is a example about making a docker image
\ No newline at end of file
diff --git a/docs/development/cloud-provider.md
b/docs/development/cloud-provider.md
index f464ac8..6432a92 100644
--- a/docs/development/cloud-provider.md
+++ b/docs/development/cloud-provider.md
@@ -1,28 +1,29 @@
# Cloud Provider
By default Mesher do not support any cloud provider.
-But there is plugin that helps mesher to do it.
+But there is plugin that helps mesher do it.
### Huawei Cloud
Mesher is able to use huawei cloud ServiceComb engine.
#### Access ServiceComb Engine API
-import auth in cmd/mesher/mesher.go
+Import auth in cmd/mesher/mesher.go
```go
import _ "github.com/huaweicse/auth/adaptor/gochassis"
```
-it will sign all requests between mesher to ServiceComb Engine.
+It will sign all requests from mesher to ServiceComb Engine.
#### Use Config Center to manage configuration
-Mesher use servicecomb-kie as config server,
+Mesher uses servicecomb-kie as config server,
```go
-_ "github.com/go-chassis/go-chassis-config/servicecombkie"
+_ "github.com/apache/servicecomb-kie"
```
-when you need to use ServiceComb Engine, you must replace this line.
-import config center in cmd/mesher/mesher.go.
+When you need to use ServiceComb Engine, you must replace this line.
+Import config center in cmd/mesher/mesher.go.
+
```go
_ "github.com/go-chassis/go-chassis-config/configcenter"
```
-set the config center in chassis.yaml
+Set the config center in chassis.yaml
```yaml
config:
client:
diff --git a/docs/development/handler-chain.md
b/docs/development/handler-chain.md
index 4960583..d97eb4f 100644
--- a/docs/development/handler-chain.md
+++ b/docs/development/handler-chain.md
@@ -1,23 +1,24 @@
# Handler chain
-all the traffic will go through the handler chain.
+All the traffic will go through the handler chain.
A chain is composite of handlers, each handler has a particular logic.
-Mesher also has a lots of feature working in chain, like route management,
circuit breaking, rate-limiting.
-In Summary, handler is the middle ware between client and servers,
-it is useful, when you want to add authorization to intercept illegal requests.
+Mesher also has lots of feature working in chain, like route management,
circuit breaking and rate-limiting.
+In Summary, handler is the middle ware between clients and servers,
+it is useful when adding authorization to intercept illegal requests.
### How to write a handler
https://docs.go-chassis.com/dev-guides/how-to-implement-handler.html
### How to use it in handler chain
-in chassis.yaml add your handler name in chain configuration.
-as side car and API gateway, mesher's chain has different meaning.
+In chassis.yaml add your handler name in chain configuration.
+As sidecar and API gateway, mesher's chain has different meanings.
For example, running as mesher-sidecar, service A call another service B,
-outgoing chain process all the service A requests before remote call,
-incoming chain process all the requests from service A, before access to
service B API.
+outgoing chain of service A processes all the service A requests before remote
call,
+incoming chain of service B processes all the requests from service A, before
access to service B API.
+
+In summary, outgoing chain works when a service attempt to call other
services,
+incoming chain works when other services call this service.
-In summary outgoing chain works when a service attempt to call other services,
-incoming chain works when other services call this service
```yaml
handler:
chain:
@@ -28,9 +29,10 @@ incoming chain works when other services call this service
incoming: ratelimiter-provider
```
-running as API gateway,
-incoming chain process all the requests from the external network,
-outgoing chain process all the the request between API gateway and backend
services
+Running as API gateway,
+incoming chain processes all the requests from the external network,
+outgoing chain processes all the the requests between API gateway and back-end
services.
+
```yaml
handler:
chain:
diff --git a/docs/getstarted/install.md b/docs/getstarted/install.md
index 4ad1897..8a70426 100644
--- a/docs/getstarted/install.md
+++ b/docs/getstarted/install.md
@@ -2,47 +2,48 @@
### Local
In this case, you will launch one mesher sidecar proxy and
-one service developed based on go-chassis as provider
+one service developed with go-chassis as provider
and use curl as a dummy consumer to access this service
-the network traffic: curl->mesher->service
+The network traffic: curl->mesher->service
+1. Install ServiceComb
[service-center](https://github.com/apache/incubator-servicecomb-service-center/releases)
-1.Install ServiceComb
[service-center](https://github.com/apache/incubator-servicecomb-service-center/releases)
+2. Install
[go-chassis](https://go-chassis.readthedocs.io/en/latest/getstarted/install.html)
and
+ run [rest
server](https://github.com/go-chassis/go-chassis/tree/master/examples/rest/server)
-2.Install
[go-chassis](https://go-chassis.readthedocs.io/en/latest/getstarted/install.html)
and
-run [rest
server](https://github.com/go-chassis/go-chassis/tree/master/examples/rest/server)
+3. Build and run, use go mod(go 1.11+, experimental but a recommended way)
-2. Build and run, use go mod(go 1.11+, experimental but a recommended way)
-```shell
-cd mesher
-GO111MODULE=on go mod download
-#optional
-GO111MODULE=on go mod vendor
-go build mesher.go
-./mesher
-```
+ ```shell
+ cd mesher
+ GO111MODULE=on go mod download
+ #optional
+ GO111MODULE=on go mod vendor
+ go build mesher.go
+ ./mesher
+ ```
-
-4.verify, in this case curl command is the consumer, mesher is consumer's
sidecar,
-and rest server is provider
-```shell
-export http_proxy=http://127.0.0.1:30101
-curl http://RESTServer:8083/sayhello/peter
-```
+4. Verify, in this case curl command is the consumer, mesher is consumer's
sidecar,
+ and rest server is provider
+
+ ```shell
+ export http_proxy=http://127.0.0.1:30101
+ curl http://RESTServer:8083/sayhello/peter
+ ```
**Notice**:
+
>>You don't need to set service registry in chassis.yaml,
because by default registry address is 127.0.0.1:30100,
just same service center default listen address.
>>curl command read lower case http_proxy environment variable.
-### Run on different infrastructure
+### Run on different infrastructures
-Mesher does not bind to any platform or infrastructures, plz refer to
+Mesher does not bind to any platform or infrastructure, please refer to
https://github.com/go-mesh/mesher-examples/tree/master/Infrastructure
-to know how to run mesher on different infra
+to know how to run mesher on different infrastructures
### Sidecar injector
Mesher supply a way to automatically inject mesher configurations in kubernetes
diff --git a/docs/getstarted/minimum.md b/docs/getstarted/minimum.md
index 6791a50..8bcc0e6 100644
--- a/docs/getstarted/minimum.md
+++ b/docs/getstarted/minimum.md
@@ -11,17 +11,18 @@ To run mesher along with your services, you need to set
minimum configurations a
1. Give mesher your service name in microservice.yaml file
2. Set service discovery service(service center, Istio etc) configurations in
chassis.yaml
-3. export HTTP_PROXY=http://127.0.0.1:30101 as your service runtime environment
-4. (optional)Give mesher your service port list by ENV SERVICE_PORTS or CLI
--service-ports
+3. Export HTTP_PROXY=http://127.0.0.1:30101 as your service runtime environment
+4. (optional) Give mesher your service port list by ENV SERVICE_PORTS or CLI
--service-ports
-After the configurations, assume you serviceB is listening at 127.0.0.1:8080
+After the configurations, assume you serviceB is listening at 127.0.0.1:8080.
-the serviceA must use http://ServiceB:8080/{api_path} to access ServiceB
+The serviceA must use http://ServiceB:8080/{api_path} to access ServiceB.
-Now you can launch as many as serviceA and serviceB to make this system become
a distributed system
+Now you can launch as many as serviceA and serviceB to make this system become
a distributed system.
**Notice**:
- >> consumer need to use http://provider_name:provider_port/ to access
provider,
+
+ >> Consumer need to use http://provider_name:provider_port/ to access
provider,
instead of http://provider_ip:provider_port/.
- if you choose to set step4, then you can simply use http://provider_name/ to
access provider
\ No newline at end of file
+ if you choose to set step4, then you can simply use http://provider_name/ to
access provider.
\ No newline at end of file
diff --git a/docs/intro/concepts.md b/docs/intro/concepts.md
index 114227f..1a0801b 100644
--- a/docs/intro/concepts.md
+++ b/docs/intro/concepts.md
@@ -1,7 +1,7 @@
# Concepts
### Sidecar
-Mesher leverage
+Mesher leverages
[distributed design pattern,
sidecar](https://kubernetes.io/blog/2015/06/the-distributed-system-toolkit-patterns/)
to work along with service.
@@ -10,15 +10,15 @@ Mesher is a light weight sidecar proxy developed on top of
go-chassis,
so it has the same
[concepts](http://go-chassis.readthedocs.io/en/latest/intro/concepts.html) with
it
and it has all features of go chassis
-### DestinationResolver
+### Destination Resolver
-Destination Resolver parse request into a service name
+Destination Resolver parses request into a service name
### Source Resolver
-source resolver get remote IP and based on remote IP, it
+Source resolver gets remote IP and based on remote IP, it provides a standard
way for the applications to create media sources.
### Admin API
-Listen on isolated port, it gives a way to interact with mesher
+Admin API listens on isolated port, it gives a way to interact with mesher
diff --git a/docs/intro/what-is.md b/docs/intro/what-is.md
index d0987dc..87ba37a 100644
--- a/docs/intro/what-is.md
+++ b/docs/intro/what-is.md
@@ -6,5 +6,5 @@ implementation based on [go
chassis](https://github.com/go-chassis/go-chassis).
So it has all the
[features](http://go-chassis.readthedocs.io/en/latest/intro/features.html)
of go chassis like service discovery,
load balancing, fault tolerance, route management,distributed tracing etc.
-it makes your service become resilience and observable
+it makes your service become resilient and observable.
diff --git a/docs/istio/egress.md b/docs/istio/egress.md
index 5a4ce8a..272fb55 100644
--- a/docs/istio/egress.md
+++ b/docs/istio/egress.md
@@ -1,32 +1,36 @@
# Egress
## Introduction
-Mesher support Egress for your service, so that you can access any publicly
accessible service from your microservice.
-
+Mesher support Egress for your service, so that you can access any publicly
accessible services from your microservices.
+
## Configuration
-The egress related configurations is all in egress.yaml.
+The egress related configurations are all in egress.yaml.
**infra**
-> *(optional, string)* specifies from where the egress configuration need to
be taken supports two values cse or pilot ,
- cse means the egress configuration from egress.yaml file,
- pilot means egress configuaration are taken from pilot of istio,
- default is *cse*
-
+
+> *(optional, string)* Specifies from where the egress configuration need to
be taken supports two values CSE or pilot ,
+ CSE means the egress configurations from egress.yaml file,
+ pilot means egress configurations are taken from pilot of Istio,
+ default is *CSE*.
+
**address**
+
> *(optional, string)* The end point of pilot from which configuration need to
> be fetched.
**hosts**
-> *(optional, []string)* host associated with external service, could be a DNS
name with wildcard prefix
+> *(optional, []string)* Host associated with external service, could be a DNS
name with wildcard prefix.
**ports.port**
-> *(optional, int)* The port associated with the external service, default is
*80*
+
+> *(optional, int)* The port associated with the external service, default is
*80*.
**ports.protocol**
-> *(optional, int)* The protocol associated with the external service,supports
only http default is *HTTP*
-## example
-edit egress.yaml
+> *(optional, int)* The protocol associated with the external service,
supports only HTTP, default is *HTTP*.
+
+## Example
+Edit egress.yaml
```yaml
egress:
diff --git a/docs/istio/getstarted.md b/docs/istio/getstarted.md
index 84feb8e..66e1c76 100644
--- a/docs/istio/getstarted.md
+++ b/docs/istio/getstarted.md
@@ -19,7 +19,7 @@ cse:
address: grpc://istio-pilot.istio-system:15010
```
-Since mesher doesn't have to register the service to Pilot, the registrator
config item should be disabled. Make serviceDiscovery.type to be pilotv2, to
get service information by xDS v2 API(the v1 API is deprecated).
+Since mesher doesn't have to register the service to Pilot, the registrator
config item should be disabled. Make serviceDiscovery.type to be pilotv2, to
get service information by xDS v2 API (the v1 API is deprecated).
### The routing tags in Istio
diff --git a/docs/istio/router.md b/docs/istio/router.md
index dc631dd..8416c25 100755
--- a/docs/istio/router.md
+++ b/docs/istio/router.md
@@ -1,10 +1,10 @@
# Route Rule
-Instead of using CSE and route config to manage route, mesher supports Istio
as a control plane to set route rule and follows the envoy API reference to
manage route. This page gives the examples to show how requests are routed
between micro services.
+Instead of using CSE and route config to manage routes, mesher supports Istio
as a control plane to set route rules and follows the envoy API reference to
manage routes. This page gives the examples to show how requests are routed
between micro services.
## Mesher Configurations
-In **Consumer** router.yaml, you can set router.infra to define which router
plugin mesher fetches from. The default router.infra is cse, which means the
routerule comes from route config in CSE config-center. If router.infra is set
to be pilotv2, the router.address is necessary, such as the in-cluster
istio-pilot grpc address.
+In **Consumer** router.yaml, you can set router.infra to define which router
plugin mesher fetches from. The default router.infra is cse, which means the
route rule comes from route config in CSE config-center. If router.infra is set
to be pilotv2, the router.address is necessary, such as the in-cluster
istio-pilot grpc address.
> Notice that `infra: pilot` is deprecated since Istio removes the xDS v1 API
> from 0.7.1
@@ -29,7 +29,7 @@ cse:
## Kubernetes Configurations
-The provider applications of v1, v2 and v3 version could be deployed in
kubernetes cluster as **Deployment** with differenent labels. The labels of
version is necessary now, and you need to set env to generate nodeID in Istio
system, such as **POD_NAMESPACE, POD_NAME** and **INSTANCE_IP**.
+The provider applications of v1, v2 and v3 version could be deployed in
kubernetes cluster as **Deployment** with differenent labels. The labels of
version are necessary now, and you need to set env to generate nodeID in Istio
system, such as **POD_NAMESPACE, POD_NAME** and **INSTANCE_IP**.
```yaml
apiVersion: extensions/v1beta1
@@ -108,9 +108,9 @@ spec:
secretName: istio.default
```
-## Istio v1alpha3 router configurations
+## Istio v1alpha3 Router Configurations
-
[Traffic-management](https://istio.io/docs/tasks/traffic-management/request-routing/)
gives references and examples of Istio new router rule schema. First, subsets
is defined according to labels. Then you can set route rule of differenent
weight for virtual services.
+
[Traffic-management](https://istio.io/docs/tasks/traffic-management/request-routing/)
gives references and examples of Istio new route rule schema. First, subsets
is defined according to labels. Then you can set route rules of different
weights for virtual services.
```yaml
apiVersion: networking.istio.io/v1alpha3
@@ -131,7 +131,7 @@ spec:
version: v3
```
-> **NOTICE: The subsets only support labels of version to distinguish
differenent virtual services, this constrains will canceled later.**
+> **NOTICE: The subsets only support labels of version to distinguish
different virtual services, this constrains will be canceled later.**
```yaml
apiVersion: networking.istio.io/v1alpha3
diff --git a/docs/protocols/grpc.md b/docs/protocols/grpc.md
index f9b7530..03aa7f7 100644
--- a/docs/protocols/grpc.md
+++ b/docs/protocols/grpc.md
@@ -18,11 +18,11 @@ Assume you original client is
grpc.WithInsecure(),
)
```
-set http_proxy
+Set http_proxy:
```bash
export http_proxy=http://127.0.0.1:40100
```
-## example
+## Example
A gRPC example is
[here](https://github.com/go-mesh/mesher-examples/tree/master/protocol/grpc-go)