From bc2aa6410c30387479c9f6e9e4a4deb6d1e7beeb Mon Sep 17 00:00:00 2001 From: Marcia Xu <48591728+Ross0101@users.noreply.github.com> Date: Sat, 6 Jul 2019 15:22:41 +0800 Subject: [PATCH 01/25] Translation faq.md --- docs/en-us/faq.md | 188 +++++++++++++++++++++++----------------------- 1 file changed, 96 insertions(+), 92 deletions(-) diff --git a/docs/en-us/faq.md b/docs/en-us/faq.md index c97d15548fe..0ef60522ff3 100644 --- a/docs/en-us/faq.md +++ b/docs/en-us/faq.md @@ -1,152 +1,156 @@ -- Nacos常规问题 - - [Nacos是什么](#1.1) - - [Nacos如何支持多环境](#1.2) - - [Nacos是否生产可用](#1.3) - - [Nacos版本计划](#1.4) - - [Nacos有什么依赖](#1.5) - - [Nacos使用什么开源协议](#1.6) +--- +title: FAQ +keywords: Nacos,FAQ +description: Nacos of FAQ +--- -- Nacos运维问题 - - [Nacos如何单机部署](#2.1) - - [Nacos单机部署如何使用Mysql](#2.2) - - [生产环境如何部署Nacos](#2.3) - - [Nacos如何Docker部署](#2.4) - - [如何在k8s中部署Nacos](#2.5) - - [如何监控Nacos](#2.6) +# FAQ -- Nacos使用问题 - - [Zookeeper服务可以迁移到Nacos上吗](#3.1) - - [Nacos支持多配置文件](#3.2) - - [Nacos支持Dubbo](#3.3) - - [Nacos支持Spring体系](#3.4) - - [不使用Nacos SDK如何访问Nacos](#3.5) - - [Nacos对多语言的支持](#3.6) - - [Nacos0.8版本登陆失败](#3.7) - - [服务端报错java.lang.IllegalStateException: unable to find local peer: 127.0.0.1:8848](#3.8) - - [Nacos如何对配置进行加密](#3.9) - - [Nacos报401错误](#3.10) - - [Nacos权重不生效](#3.11) - - [Nacos如何扩缩容](#3.12) - - [Nacos客户端修改日志级别](#3.13) - - [Nacos与Zipkin 整合出现 Service not found 问题](#3.14) +- Nacos standard questions + - [What is Nacos](#1.1) + - [Nacos how to support more than the environment](#1.2) + - [Nacos whether production is available](#1.3) + - [Nacos version plan](#1.4) + - [Nacos dependent](#1.5) + - [Nacos using open source licenses](#1.6) -- Nacos原理问题 +- Nacos operational questions + - [Nacos standalone deployment](#2.1) + - [Nacos standalone deployment using Mysql](#2.2) + - [Nacos production deployment](#2.3) + - [Nacos Docker deployment](#2.4) + - [How to deploy in k8s Nacos](#2.5) + - [How to monitor Nacos](#2.6) -## Nacos常规问题 -

Nacos是什么

+- Nacos used questions + - [Zookeeper service can be migrated to Nacos?](#3.1) + - [Nacos support multiple configuration files](#3.2) + - [Nacos support Dubbo](#3.3) + - [Nacos support Spring system](#3.4) + - [Don't use Nacos SDK how to access the Nacos](#3.5) + - [Nacos support for multiple languages](#3.6) + - [Nacos 0.8 version logon failure](#3.7) + - [Server error `java.lang.IllegalStateException: unable to find local peer: 127.0.0.1:8848`](#3.8) + - [Nacos configuration for encryption](#3.9) + - [Nacos at 401 error](#3.10) + - [Nacos weight not to take effect](#3.11) + - [Nacos how to enlarge shrinks capacity](#3.12) + - [Nacos client modify the log level](#3.13) + - [Nacos and Zipkin integration `Service not found` error](#3.14) -Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。详情可以参考[Nacos官网介绍](https://nacos.io/zh-cn/docs/what-is-nacos.html) +- Nacos principle questions -

Nacos如何支持多环境

+## Nacos standard questions +

What is Nacos

-在日常使用中常常需要不同的环境,比如日常,预发,线上环境,如果是逻辑隔离可以使用命名空间,Nacos支持命名空间来支持多环境隔离,可以在Nacos控制台创建多个命名空间。如果需要物理隔离需要部署多套Nacos环境 +Nacos dedicated to help you find, micro configuration and management services. Nacos provides a set of simple and easy to use feature set, help you quickly realize dynamic service discovery, service configuration, service metadata, and traffic management. Details you can refer to [Nacos website](https://nacos.io/en-us/docs/what-is-nacos.html). -

Nacos是否生产可用

+

Nacos how to support more than the environment

-Nacos在2019.1发布了Pre-GA版本,支持了安全隔离、监控和服务迁移等上生产的最后一公里,以更稳定的支撑用户的生产环境。具体详情[Nacos 发布 v0.8.0 Pre-GA 版本,安全稳定上生产 -](https://www.oschina.net/news/104019/nacos-0-8-0-pre-ga) +In daily use are often need different environment, such as daily, pretest, online environment, if it is a logical isolation, can use the namespace Nacos support namespace to support more environmental isolation, can create multiple namespaces in Nacos console. If you need physical isolation, will deploy more sets of Nacos environment. -

Nacos版本计划

+

Nacos whether production is available

-Nacos 0.8.0 开始支持生产可用,1.0版本达到大规模生产可用,2.0版本计划与K8s、Spring Cloud、Service Mesh、Serverless进一步融合,具体的详情参考[Nacos规划](https://nacos.io/zh-cn/docs/roadmap.html) +Nacos in January 2019 issued a Pre - GA version, to support the security isolation, monitoring and service migration on the last mile of production, in a more stable support the user's production environment. Details you can refer to [Nacos release v0.8.0 Pre - GA version, the safe and stable production](https://www.oschina.net/news/104019/nacos-0-8-0-pre-ga). -

Nacos有什么依赖

+

Nacos version plan

-在单机模式下,Nacos没有任何依赖,在集群模式下,Nacos依赖Mysql做存储,详情可以参考[Nacos部署](https://nacos.io/zh-cn/docs/deployment.html) +Nacos 0.8.0 to support production available, version 1.0 to mass production is available, version 2.0 plan and K8s, Spring Cloud, and further integration Service Mesh, Serverless, details you can refer to [Nacos roadmap](https://nacos.io/en-us/docs/roadmap.html). -

Nacos使用什么开源协议

+

Nacos dependent

-Nacos使用 [Apache 2.0](https://github.com/alibaba/nacos/blob/master/LICENSE) +In stand-alone mode, Nacos without any rely on, in cluster mode, Nacos rely on Mysql storage, details you can refer to [Nacos deployment](https://nacos.io/en-us/docs/deployment.html). -## Nacos运维问题 -

Nacos如何单机部署

+

Nacos using open source licenses

-可以参考Nacos官网部署手册 [quick start](https://nacos.io/zh-cn/docs/quick-start.html) +Nacos using [Apache 2.0](https://github.com/alibaba/nacos/blob/master/LICENSE). -

Nacos单机部署如何使用mysql

+## Nacos operational questions +

Nacos standalone deployment

-Nacos单机模式默认使用内嵌的数据库作为存储引擎,如果想换成自己安装的mysql,可以按照 [官网文档](https://nacos.io/zh-cn/docs/deployment.html) +You can refer to the manual Nacos website deployment [quick start](https://nacos.io/en-us/docs/quick-start.html). -

生产环境如何部署Nacos

+

Nacos standalone deployment using Mysql

-生产环境使用Nacos为了达到高可用不能使用单机模式,需要搭建nacos集群,具体详情可以参考 [集群部署手册](https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html) +Nacos stand-alone mode defaults to using the embedded database as the storage engine, if you want to change your mysql installation, you can refer to [website document](https://nacos.io/en-us/docs/deployment.html). -

Nacos如何Docker部署

+

Nacos production deployment

-除了使用压缩包部署Nacos,Nacos也提供了相应的Docker镜像,当Nacos发布新的版本的时候,Nacos会发布对应的镜像版本支持Docker部署。具体详情可以参考[Nacos Docker](https://nacos.io/zh-cn/docs/quick-start-docker.html) +Production environment using Nacos in order to achieve high availability cannot use stand-alone mode, need to build Nacos cluster, specific details can refer to [the manual cluster deployment](https://nacos.io/en-us/docs/cluster-mode-quick-start.html). -

如何在k8s中部署Nacos

+

Nacos Docker deployment

-在生产环境部署Nacos集群,如果要对Nacos进行扩容操作,需要手动更改集群ip文件,启动新的Nacos服务。为了能进行自动化运维,Nacos和k8s结合利用StatefulSets提供了自动运维方案,能对Nacos进行动态扩缩容,具体详情参考[Kubernetes Nacos](https://github.com/nacos-group/nacos-k8s/blob/master/README-CN.md) +In addition to using compressed package deployment Nacos, Nacos also provides a corresponding Docker image, when Nacos release new versions, Nacos will release the corresponding image version supports Docker deployment.Specific details you can refer to [Nacos Docker](https://nacos.io/en-us/docs/quick-start-docker.html). -

如何监控Nacos

+

How to deploy in k8s Nacos

-Nacos0.8版本提供了Metrics数据暴露能力,能通过Metrics数据的内容对Nacos的运行状态进行监控,详情参考[Nacos监控](https://nacos.io/zh-cn/docs/monitor-guide.html) +In production deployment Nacos cluster, if for Nacos expansion operation, need to manually change the cluster IP file, start a new Nacos service.In order to automate operations, k8s Nacos and combined use of StatefulSets provides automatic operations plan, to dynamic scalability Nacos capacity, specific details reference [Kubernetes Nacos](https://github.com/nacos-group/nacos-k8s/blob/master/README.md). -## Nacos使用问题 -

Zookeeper上的服务可以迁移到Nacos上吗?

+

How to monitor Nacos

-可以通过Nacos-Sync把Zookeeper服务迁移到Nacos,也可以从Nacos迁移到Zookeeper,具体可以参考[Nacos Sync 使用](https://github.com/paderlol/nacos-sync-example) +Nacos0.8 version provides the Metrics data exposed ability, can pass the Metrics data to monitor the running status of Nacos, the content of the details you can refer to [Nacos monitor](https://nacos.io/en-us/docs/monitor-guide.html). -

Nacos支持多配置文件

+## Nacos used questions +

Zookeeper service can be migrated to Nacos?

-Nacos通过Spring Cloud Alibaba Nacos Config支持了多配置文件,可以将配置存储在多个独立的配置文件中。关联的[issue](https://github.com/alibaba/nacos/issues/320),详情参考文档[Spring Cloud Alibaba Nacos Config](https://github.com/spring-cloud-incubator/spring-cloud-alibaba/wiki/Nacos-config) +Can through the Nacos - Sync moved the Zookeeper service and Nacos, can also be migrated from Nacos Zookeeper, specific details can be used as [Nacos Sync reference](https://github.com/paderlol/nacos-sync-example). -

Nacos支持Dubbo

+

Nacos support multiple configuration files

-Nacos 0.6版本和Dubbo集成,支持使用Nacos作为注册中心,关联[issue](https://github.com/alibaba/nacos/issues/390),具体文档参考[Dubbo 融合 Nacos 成为注册中心 -](https://nacos.io/zh-cn/docs/use-nacos-with-dubbo.html) +Nacos through Spring Cloud Alibaba Nacos Config support multiple configuration files, configuration can be stored in a separate configuration file.The associated [issue](https://github.com/alibaba/nacos/issues/320), details refer to the document [Spring Cloud Alibaba Nacos Config](https://github.com/spring-cloud-incubator/spring-cloud-alibaba/wiki/Nacos-config). -

Nacos支持Spring体系

+

Nacos support Dubbo

-Nacos完善支持了Sping技术栈,具体可以参考[Nacos Spring](https://nacos.io/zh-cn/docs/quick-start-spring.html)、[Nacos Spring Boot](https://nacos.io/zh-cn/docs/quick-start-spring-boot.html)、[Spring Cloud](https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html) +Nacos version 0.6 and Dubbo integration, support the use of Nacos as registry, related [issue](https://github.com/alibaba/nacos/issues/390), details refer to the document [Nacos and Dubbo fusion become registry](https://nacos.io/en-us/docs/use-nacos-with-dubbo.html). -

不使用Nacos SDK如何访问Nacos

+

Nacos support Spring system

-Nacos的网络交互都是基于Http协议实现的,提供了[Open-API](https://nacos.io/zh-cn/docs/open-API.html)可以很容易实现Nacos的访问 +Nacos perfect supports the Sping technology stack, details refer to the document [Nacos Spring](https://nacos.io/en-us/docs/quick-start-spring.html)、[Nacos Spring Boot](https://nacos.io/en-us/docs/quick-start-spring-boot.html)、[Spring Cloud](https://nacos.io/en-us/docs/quick-start-spring-cloud.html). -

Nacos对多语言的支持

+

Don't use Nacos SDK how to access the Nacos

-Nacos目前只支持Java,对于其他语言的支持还正在开发中,需要大家大力支持一起共建 +Nacos network interaction is implemented based on Http protocol, provides the [Open-API]((https://nacos.io/en-us/docs/open-api.html)) can easily achieve Nacos access. -

Nacos0.8版本登陆失败

+

Nacos support for multiple languages

-Nacos 0.8版本当使用openjdk并且没有JAVA_HOME的环境变量时,nacos可以启动成功,是因为yum install安装的openjdk 会把java命令注册一份到/bin目录下面,所以会引发SignatureException异常。这个问题已经修复,0.9版本会发版,具体详情可以参考[issue](https://github.com/alibaba/nacos/issues/711) +Nacos currently only supports Java, support for other languages are being developed, also need your support to build together. -

服务端报错java.lang.IllegalStateException: unable to find local peer: 127.0.0.1:8848

+

Nacos 0.8 version logon failure

-这个问题是因为Nacos获取本机IP时,没有获取到正确的外部IP.需要保证InetAddress.getLocalHost().getHostAddress()或者hostname -i的结果是与cluster.conf里配置的IP是一致的. +Nacos version 0.8 when using its and no `JAVA_HOME` environment variable, Nacos can launch successful, because `yum install` installed its the Java command to register a beneath `/bin` directory, and so can cause abnormal `SignatureException`.This problem has been repair, version 0.9 release, the specific details can refer to the [issue](https://github.com/alibaba/nacos/issues/711). -

Nacos如何对配置进行加密

+

Server error java.lang.IllegalStateException: unable to find local peer: 127.0.0.1:8848

-Nacos计划在1.X版本提供加密的能力,目前还不支持加密,只能靠sdk做好了加密再存到nacos中 +This problem because Nacos get native IP, don't get to the correct external IP. The need to guarantee the `InetAddress.getLocalHost().getHostAddress()` or the result of the `hostname -i` was with the cluster. The conf configuration of IP is the same. -

Nacos报401错误

+

Nacos configuration for encryption

-Nacos服务端报错了,可以检查服务端日志,参考[issue](https://github.com/alibaba/nacos/issues/816) +Nacos plan in 1.X version's ability to provide encryption, currently does not support encryption, can only rely on the SDK prepared encryption endures Nacos again. -

Nacos权重不生效

+

Nacos at 401 error

-Nacos控制台上编辑权重, 目前从SpringCloud客户端和Dubbo客户端都没有打通, 所以不能生效. 对于SpringCloud客户端, 应用可以实现Ribbon的负载均衡器来进行权重过滤. +Nacos server error, check the server logs, refer to the [issue](https://github.com/alibaba/nacos/issues/816). -

Nacos如何扩缩容

+

Nacos weight not to take effect

-目前支持修改cluster.conf文件的方式进行扩缩容, 改完后无需重启, Server会自动刷新到文件新内容. +Nacos console editors weights, at present from SpringCloud client and Dubbo client didn't get through, so can't take effect. For SpringCloud client application can realize the load balancer Ribbon for weighting filter. -

Nacos客户端修改日志级别

+

Nacos how to enlarge shrinks capacity

-配置-D参数com.alibaba.nacos.naming.log.level设置naming客户端的日志级别,例如设置为error: -`-Dcom.alibaba.nacos.naming.log.level=error` -同样的,-D参数com.alibaba.nacos.config.log.level用来设置config客户端的日志级别。 +Currently supported modify the `cluster.conf` file in a way that expanding capacity, after the change without restart, the Server will automatically refresh the new content to the file. -

Nacos与Zipkin 整合出现 Service not found 问题

+

Nacos client modify the log level

-配置spring-cloud-seluth参数:spring.zipkin.discovery-client-enabled=false 。 +Configuration - D parameters `com.alibaba.nacos.naming.log.level` set naming the client log level, such as setting for the error:`-Dcom.alibaba.nacos.naming.log.level=error` Similarly, - D parameters `com.alibaba.nacos.config.log.level` is used to set the config client log level. -如果仍然存在`Service not found`错误,则建议先使用open-api将Zipkin-server注册为永久实例服务: +

Nacos and Zipkin integration Service not found error

+ +Configuration `spring-cloud-seluth` parameters: `spring.zipkin.discovery-client-enabled=false`. + +If there is still a `Service not found` error, is recommended to use the open-api will Zipkin-server instance is registered as a permanent Service: `curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?port=9411&healthy=true&ip=127.0.0.1&weight=1.0&serviceName=zipkin-server&ephemeral=false&namespaceId=public'` -然后,前往nacos控制台,找到服务名为`zipkin-server`的服务,找到集群配置,设置健康检查模式为`TCP`,端口号为`9411`(即zipkin-server的端口)。 +Then, went to nacos console, find a service called `zipkin-server` service, find the cluster configuration, set the health examination mode to `TCP`, port number of `9411` (zipkin-server port). -## Nacos原理问题 +## Nacos principle questions From 5b81bf9f177d6cb7cd43b4798103665145c040c0 Mon Sep 17 00:00:00 2001 From: Marcia Xu <48591728+Ross0101@users.noreply.github.com> Date: Sat, 6 Jul 2019 15:23:48 +0800 Subject: [PATCH 02/25] Update faq.md --- docs/zh-cn/faq.md | 68 ++++++++++++++++++++++++++--------------------- 1 file changed, 37 insertions(+), 31 deletions(-) diff --git a/docs/zh-cn/faq.md b/docs/zh-cn/faq.md index c97d15548fe..1b1ad0c55ab 100644 --- a/docs/zh-cn/faq.md +++ b/docs/zh-cn/faq.md @@ -1,3 +1,11 @@ +--- +title: FAQ +keywords: Nacos,FAQ +description: Nacos 的 FAQ +--- + +# FAQ + - Nacos常规问题 - [Nacos是什么](#1.1) - [Nacos如何支持多环境](#1.2) @@ -22,116 +30,114 @@ - [不使用Nacos SDK如何访问Nacos](#3.5) - [Nacos对多语言的支持](#3.6) - [Nacos0.8版本登陆失败](#3.7) - - [服务端报错java.lang.IllegalStateException: unable to find local peer: 127.0.0.1:8848](#3.8) + - [服务端报错`java.lang.IllegalStateException: unable to find local peer: 127.0.0.1:8848`](#3.8) - [Nacos如何对配置进行加密](#3.9) - [Nacos报401错误](#3.10) - [Nacos权重不生效](#3.11) - [Nacos如何扩缩容](#3.12) - [Nacos客户端修改日志级别](#3.13) - - [Nacos与Zipkin 整合出现 Service not found 问题](#3.14) + - [Nacos与Zipkin 整合出现`Service not found`问题](#3.14) - Nacos原理问题 ## Nacos常规问题

Nacos是什么

-Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。详情可以参考[Nacos官网介绍](https://nacos.io/zh-cn/docs/what-is-nacos.html) +Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。详情可以参考[Nacos官网介绍](https://nacos.io/zh-cn/docs/what-is-nacos.html)。

Nacos如何支持多环境

-在日常使用中常常需要不同的环境,比如日常,预发,线上环境,如果是逻辑隔离可以使用命名空间,Nacos支持命名空间来支持多环境隔离,可以在Nacos控制台创建多个命名空间。如果需要物理隔离需要部署多套Nacos环境 +在日常使用中常常需要不同的环境,比如日常,预发,线上环境,如果是逻辑隔离可以使用命名空间,Nacos支持命名空间来支持多环境隔离,可以在Nacos控制台创建多个命名空间。如果需要物理隔离,就要部署多套Nacos环境。

Nacos是否生产可用

-Nacos在2019.1发布了Pre-GA版本,支持了安全隔离、监控和服务迁移等上生产的最后一公里,以更稳定的支撑用户的生产环境。具体详情[Nacos 发布 v0.8.0 Pre-GA 版本,安全稳定上生产 -](https://www.oschina.net/news/104019/nacos-0-8-0-pre-ga) +Nacos在2019.1发布了Pre-GA版本,支持了安全隔离、监控和服务迁移等上生产的最后一公里,以更稳定的支撑用户的生产环境。详情可以参考[Nacos 发布 v0.8.0 Pre-GA 版本,安全稳定上生产](https://www.oschina.net/news/104019/nacos-0-8-0-pre-ga)。

Nacos版本计划

-Nacos 0.8.0 开始支持生产可用,1.0版本达到大规模生产可用,2.0版本计划与K8s、Spring Cloud、Service Mesh、Serverless进一步融合,具体的详情参考[Nacos规划](https://nacos.io/zh-cn/docs/roadmap.html) +Nacos 0.8.0 开始支持生产可用,1.0版本达到大规模生产可用,2.0版本计划与K8s、Spring Cloud、Service Mesh、Serverless进一步融合,具体的详情参考[Nacos规划](https://nacos.io/zh-cn/docs/roadmap.html)。

Nacos有什么依赖

-在单机模式下,Nacos没有任何依赖,在集群模式下,Nacos依赖Mysql做存储,详情可以参考[Nacos部署](https://nacos.io/zh-cn/docs/deployment.html) +在单机模式下,Nacos没有任何依赖,在集群模式下,Nacos依赖Mysql做存储,详情可以参考[Nacos部署](https://nacos.io/zh-cn/docs/deployment.html)。

Nacos使用什么开源协议

-Nacos使用 [Apache 2.0](https://github.com/alibaba/nacos/blob/master/LICENSE) +Nacos使用[Apache 2.0](https://github.com/alibaba/nacos/blob/master/LICENSE)。 ## Nacos运维问题

Nacos如何单机部署

-可以参考Nacos官网部署手册 [quick start](https://nacos.io/zh-cn/docs/quick-start.html) +可以参考Nacos官网部署手册[quick start](https://nacos.io/zh-cn/docs/quick-start.html)。

Nacos单机部署如何使用mysql

-Nacos单机模式默认使用内嵌的数据库作为存储引擎,如果想换成自己安装的mysql,可以按照 [官网文档](https://nacos.io/zh-cn/docs/deployment.html) +Nacos单机模式默认使用内嵌的数据库作为存储引擎,如果想换成自己安装的mysql,可以按照[官网文档](https://nacos.io/zh-cn/docs/deployment.html)。

生产环境如何部署Nacos

-生产环境使用Nacos为了达到高可用不能使用单机模式,需要搭建nacos集群,具体详情可以参考 [集群部署手册](https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html) +生产环境使用Nacos为了达到高可用不能使用单机模式,需要搭建nacos集群,具体详情可以参考[集群部署手册](https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html)。

Nacos如何Docker部署

-除了使用压缩包部署Nacos,Nacos也提供了相应的Docker镜像,当Nacos发布新的版本的时候,Nacos会发布对应的镜像版本支持Docker部署。具体详情可以参考[Nacos Docker](https://nacos.io/zh-cn/docs/quick-start-docker.html) +除了使用压缩包部署Nacos,Nacos也提供了相应的Docker镜像,当Nacos发布新的版本的时候,Nacos会发布对应的镜像版本支持Docker部署。具体详情可以参考[Nacos Docker](https://nacos.io/zh-cn/docs/quick-start-docker.html)。

如何在k8s中部署Nacos

-在生产环境部署Nacos集群,如果要对Nacos进行扩容操作,需要手动更改集群ip文件,启动新的Nacos服务。为了能进行自动化运维,Nacos和k8s结合利用StatefulSets提供了自动运维方案,能对Nacos进行动态扩缩容,具体详情参考[Kubernetes Nacos](https://github.com/nacos-group/nacos-k8s/blob/master/README-CN.md) +在生产环境部署Nacos集群,如果要对Nacos进行扩容操作,需要手动更改集群ip文件,启动新的Nacos服务。为了能进行自动化运维,Nacos和k8s结合利用StatefulSets提供了自动运维方案,能对Nacos进行动态扩缩容,具体详情参考[Kubernetes Nacos](https://github.com/nacos-group/nacos-k8s/blob/master/README-CN.md)。

如何监控Nacos

-Nacos0.8版本提供了Metrics数据暴露能力,能通过Metrics数据的内容对Nacos的运行状态进行监控,详情参考[Nacos监控](https://nacos.io/zh-cn/docs/monitor-guide.html) +Nacos0.8版本提供了Metrics数据暴露能力,能通过Metrics数据的内容对Nacos的运行状态进行监控,详情参考[Nacos监控](https://nacos.io/zh-cn/docs/monitor-guide.html)。 ## Nacos使用问题 -

Zookeeper上的服务可以迁移到Nacos上吗?

+

Zookeeper上的服务可以迁移到Nacos上吗

-可以通过Nacos-Sync把Zookeeper服务迁移到Nacos,也可以从Nacos迁移到Zookeeper,具体可以参考[Nacos Sync 使用](https://github.com/paderlol/nacos-sync-example) +可以通过Nacos-Sync把Zookeeper服务迁移到Nacos,也可以从Nacos迁移到Zookeeper,具体可以参考[Nacos Sync 使用](https://github.com/paderlol/nacos-sync-example)。

Nacos支持多配置文件

-Nacos通过Spring Cloud Alibaba Nacos Config支持了多配置文件,可以将配置存储在多个独立的配置文件中。关联的[issue](https://github.com/alibaba/nacos/issues/320),详情参考文档[Spring Cloud Alibaba Nacos Config](https://github.com/spring-cloud-incubator/spring-cloud-alibaba/wiki/Nacos-config) +Nacos通过Spring Cloud Alibaba Nacos Config支持了多配置文件,可以将配置存储在多个独立的配置文件中。关联的[issue](https://github.com/alibaba/nacos/issues/320),详情参考文档[Spring Cloud Alibaba Nacos Config](https://github.com/spring-cloud-incubator/spring-cloud-alibaba/wiki/Nacos-config)。

Nacos支持Dubbo

-Nacos 0.6版本和Dubbo集成,支持使用Nacos作为注册中心,关联[issue](https://github.com/alibaba/nacos/issues/390),具体文档参考[Dubbo 融合 Nacos 成为注册中心 -](https://nacos.io/zh-cn/docs/use-nacos-with-dubbo.html) +Nacos 0.6版本和Dubbo集成,支持使用Nacos作为注册中心,关联[issue](https://github.com/alibaba/nacos/issues/390),具体文档参考[Dubbo 融合 Nacos 成为注册中心](https://nacos.io/zh-cn/docs/use-nacos-with-dubbo.html)。

Nacos支持Spring体系

-Nacos完善支持了Sping技术栈,具体可以参考[Nacos Spring](https://nacos.io/zh-cn/docs/quick-start-spring.html)、[Nacos Spring Boot](https://nacos.io/zh-cn/docs/quick-start-spring-boot.html)、[Spring Cloud](https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html) +Nacos完善支持了Sping技术栈,具体可以参考[Nacos Spring](https://nacos.io/zh-cn/docs/quick-start-spring.html)、[Nacos Spring Boot](https://nacos.io/zh-cn/docs/quick-start-spring-boot.html)、[Spring Cloud](https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html)。

不使用Nacos SDK如何访问Nacos

-Nacos的网络交互都是基于Http协议实现的,提供了[Open-API](https://nacos.io/zh-cn/docs/open-API.html)可以很容易实现Nacos的访问 +Nacos的网络交互都是基于Http协议实现的,提供了[Open-API](https://nacos.io/zh-cn/docs/open-api.html)可以很容易实现Nacos的访问。

Nacos对多语言的支持

-Nacos目前只支持Java,对于其他语言的支持还正在开发中,需要大家大力支持一起共建 +Nacos目前只支持Java,对于其他语言的支持还正在开发中,需要大家大力支持一起共建。

Nacos0.8版本登陆失败

-Nacos 0.8版本当使用openjdk并且没有JAVA_HOME的环境变量时,nacos可以启动成功,是因为yum install安装的openjdk 会把java命令注册一份到/bin目录下面,所以会引发SignatureException异常。这个问题已经修复,0.9版本会发版,具体详情可以参考[issue](https://github.com/alibaba/nacos/issues/711) +Nacos 0.8版本当使用openjdk并且没有`JAVA_HOME`的环境变量时,nacos可以启动成功,是因为`yum install`安装的openjdk 会把java命令注册一份到`/bin`目录下面,所以会引发`SignatureException`异常。这个问题已经修复,0.9版本会发版,具体详情可以参考[issue](https://github.com/alibaba/nacos/issues/711)。 -

服务端报错java.lang.IllegalStateException: unable to find local peer: 127.0.0.1:8848

+

服务端报错 java.lang.IllegalStateException: unable to find local peer: 127.0.0.1:8848

-这个问题是因为Nacos获取本机IP时,没有获取到正确的外部IP.需要保证InetAddress.getLocalHost().getHostAddress()或者hostname -i的结果是与cluster.conf里配置的IP是一致的. +这个问题是因为Nacos获取本机IP时,没有获取到正确的外部IP.需要保证`InetAddress.getLocalHost().getHostAddress()`或者`hostname -i`的结果是与cluster.conf里配置的IP是一致的。

Nacos如何对配置进行加密

-Nacos计划在1.X版本提供加密的能力,目前还不支持加密,只能靠sdk做好了加密再存到nacos中 +Nacos计划在1.X版本提供加密的能力,目前还不支持加密,只能靠sdk做好了加密再存到nacos中。

Nacos报401错误

-Nacos服务端报错了,可以检查服务端日志,参考[issue](https://github.com/alibaba/nacos/issues/816) +Nacos服务端报错了,可以检查服务端日志,参考[issue](https://github.com/alibaba/nacos/issues/816)。

Nacos权重不生效

-Nacos控制台上编辑权重, 目前从SpringCloud客户端和Dubbo客户端都没有打通, 所以不能生效. 对于SpringCloud客户端, 应用可以实现Ribbon的负载均衡器来进行权重过滤. +Nacos控制台上编辑权重, 目前从SpringCloud客户端和Dubbo客户端都没有打通, 所以不能生效. 对于SpringCloud客户端, 应用可以实现Ribbon的负载均衡器来进行权重过滤。

Nacos如何扩缩容

-目前支持修改cluster.conf文件的方式进行扩缩容, 改完后无需重启, Server会自动刷新到文件新内容. +目前支持修改cluster.conf文件的方式进行扩缩容, 改完后无需重启, Server会自动刷新到文件新内容。

Nacos客户端修改日志级别

@@ -141,7 +147,7 @@ Nacos控制台上编辑权重, 目前从SpringCloud客户端和Dubbo客户端都

Nacos与Zipkin 整合出现 Service not found 问题

-配置spring-cloud-seluth参数:spring.zipkin.discovery-client-enabled=false 。 +配置`spring-cloud-seluth`参数:`spring.zipkin.discovery-client-enabled=false`。 如果仍然存在`Service not found`错误,则建议先使用open-api将Zipkin-server注册为永久实例服务: From f6b974bc9ee44e93d2f54656c00303745ec75487 Mon Sep 17 00:00:00 2001 From: Marcia Xu <48591728+Ross0101@users.noreply.github.com> Date: Sat, 6 Jul 2019 15:24:56 +0800 Subject: [PATCH 03/25] Translation faq.html --- en-us/docs/faq.html | 189 ++++++++++++++++++++++---------------------- 1 file changed, 93 insertions(+), 96 deletions(-) diff --git a/en-us/docs/faq.html b/en-us/docs/faq.html index 9eaa26ecd58..cd3238e511f 100644 --- a/en-us/docs/faq.html +++ b/en-us/docs/faq.html @@ -4,123 +4,120 @@ - - + + - faq + FAQ -
Documentation
    +
    Documentation

    FAQ

    + -

    Nacos常规问题

    -

    Nacos是什么

    -

    Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。详情可以参考Nacos官网介绍

    -

    Nacos如何支持多环境

    -

    在日常使用中常常需要不同的环境,比如日常,预发,线上环境,如果是逻辑隔离可以使用命名空间,Nacos支持命名空间来支持多环境隔离,可以在Nacos控制台创建多个命名空间。如果需要物理隔离需要部署多套Nacos环境

    -

    Nacos是否生产可用

    -

    Nacos在2019.1发布了Pre-GA版本,支持了安全隔离、监控和服务迁移等上生产的最后一公里,以更稳定的支撑用户的生产环境。具体详情Nacos 发布 v0.8.0 Pre-GA 版本,安全稳定上生产 -

    -

    Nacos版本计划

    -

    Nacos 0.8.0 开始支持生产可用,1.0版本达到大规模生产可用,2.0版本计划与K8s、Spring Cloud、Service Mesh、Serverless进一步融合,具体的详情参考Nacos规划

    -

    Nacos有什么依赖

    -

    在单机模式下,Nacos没有任何依赖,在集群模式下,Nacos依赖Mysql做存储,详情可以参考Nacos部署

    -

    Nacos使用什么开源协议

    -

    Nacos使用 Apache 2.0

    -

    Nacos运维问题

    -

    Nacos如何单机部署

    -

    可以参考Nacos官网部署手册 quick start

    -

    Nacos单机部署如何使用mysql

    -

    Nacos单机模式默认使用内嵌的数据库作为存储引擎,如果想换成自己安装的mysql,可以按照 官网文档

    -

    生产环境如何部署Nacos

    -

    生产环境使用Nacos为了达到高可用不能使用单机模式,需要搭建nacos集群,具体详情可以参考 集群部署手册

    -

    Nacos如何Docker部署

    -

    除了使用压缩包部署Nacos,Nacos也提供了相应的Docker镜像,当Nacos发布新的版本的时候,Nacos会发布对应的镜像版本支持Docker部署。具体详情可以参考Nacos Docker

    -

    如何在k8s中部署Nacos

    -

    在生产环境部署Nacos集群,如果要对Nacos进行扩容操作,需要手动更改集群ip文件,启动新的Nacos服务。为了能进行自动化运维,Nacos和k8s结合利用StatefulSets提供了自动运维方案,能对Nacos进行动态扩缩容,具体详情参考Kubernetes Nacos

    -

    如何监控Nacos

    -

    Nacos0.8版本提供了Metrics数据暴露能力,能通过Metrics数据的内容对Nacos的运行状态进行监控,详情参考Nacos监控

    -

    Nacos使用问题

    -

    Zookeeper上的服务可以迁移到Nacos上吗?

    -

    可以通过Nacos-Sync把Zookeeper服务迁移到Nacos,也可以从Nacos迁移到Zookeeper,具体可以参考Nacos Sync 使用

    -

    Nacos支持多配置文件

    -

    Nacos通过Spring Cloud Alibaba Nacos Config支持了多配置文件,可以将配置存储在多个独立的配置文件中。关联的issue,详情参考文档Spring Cloud Alibaba Nacos Config

    -

    Nacos支持Dubbo

    -

    Nacos 0.6版本和Dubbo集成,支持使用Nacos作为注册中心,关联issue,具体文档参考Dubbo 融合 Nacos 成为注册中心 -

    -

    Nacos支持Spring体系

    -

    Nacos完善支持了Sping技术栈,具体可以参考Nacos SpringNacos Spring BootSpring Cloud

    -

    不使用Nacos SDK如何访问Nacos

    -

    Nacos的网络交互都是基于Http协议实现的,提供了Open-API可以很容易实现Nacos的访问

    -

    Nacos对多语言的支持

    -

    Nacos目前只支持Java,对于其他语言的支持还正在开发中,需要大家大力支持一起共建

    -

    Nacos0.8版本登陆失败

    -

    Nacos 0.8版本当使用openjdk并且没有JAVA_HOME的环境变量时,nacos可以启动成功,是因为yum install安装的openjdk 会把java命令注册一份到/bin目录下面,所以会引发SignatureException异常。这个问题已经修复,0.9版本会发版,具体详情可以参考issue

    -

    服务端报错java.lang.IllegalStateException: unable to find local peer: 127.0.0.1:8848

    -

    这个问题是因为Nacos获取本机IP时,没有获取到正确的外部IP.需要保证InetAddress.getLocalHost().getHostAddress()或者hostname -i的结果是与cluster.conf里配置的IP是一致的.

    -

    Nacos如何对配置进行加密

    -

    Nacos计划在1.X版本提供加密的能力,目前还不支持加密,只能靠sdk做好了加密再存到nacos中

    -

    Nacos报401错误

    -

    Nacos服务端报错了,可以检查服务端日志,参考issue

    -

    Nacos权重不生效

    -

    Nacos控制台上编辑权重, 目前从SpringCloud客户端和Dubbo客户端都没有打通, 所以不能生效. 对于SpringCloud客户端, 应用可以实现Ribbon的负载均衡器来进行权重过滤.

    -

    Nacos如何扩缩容

    -

    目前支持修改cluster.conf文件的方式进行扩缩容, 改完后无需重启, Server会自动刷新到文件新内容.

    -

    Nacos客户端修改日志级别

    -

    配置-D参数com.alibaba.nacos.naming.log.level设置naming客户端的日志级别,例如设置为error: --Dcom.alibaba.nacos.naming.log.level=error -同样的,-D参数com.alibaba.nacos.config.log.level用来设置config客户端的日志级别。

    -

    Nacos与Zipkin 整合出现 Service not found 问题

    -

    配置spring-cloud-seluth参数:spring.zipkin.discovery-client-enabled=false 。

    -

    如果仍然存在Service not found错误,则建议先使用open-api将Zipkin-server注册为永久实例服务:

    +

    Nacos standard questions

    +

    What is Nacos

    +

    Nacos dedicated to help you find, micro configuration and management services. Nacos provides a set of simple and easy to use feature set, help you quickly realize dynamic service discovery, service configuration, service metadata, and traffic management. Details you can refer to Nacos website.

    +

    Nacos how to support more than the environment

    +

    In daily use are often need different environment, such as daily, pretest, online environment, if it is a logical isolation, can use the namespace Nacos support namespace to support more environmental isolation, can create multiple namespaces in Nacos console. If you need physical isolation, will deploy more sets of Nacos environment.

    +

    Nacos whether production is available

    +

    Nacos in January 2019 issued a Pre - GA version, to support the security isolation, monitoring and service migration on the last mile of production, in a more stable support the user's production environment. Details you can refer to Nacos release v0.8.0 Pre - GA version, the safe and stable production.

    +

    Nacos version plan

    +

    Nacos 0.8.0 to support production available, version 1.0 to mass production is available, version 2.0 plan and K8s, Spring Cloud, and further integration Service Mesh, Serverless, details you can refer to Nacos roadmap.

    +

    Nacos dependent

    +

    In stand-alone mode, Nacos without any rely on, in cluster mode, Nacos rely on Mysql storage, details you can refer to Nacos deployment.

    +

    Nacos using open source licenses

    +

    Nacos using Apache 2.0.

    +

    Nacos operational questions

    +

    Nacos standalone deployment

    +

    You can refer to the manual Nacos website deployment quick start.

    +

    Nacos standalone deployment using Mysql

    +

    Nacos stand-alone mode defaults to using the embedded database as the storage engine, if you want to change your mysql installation, you can refer to website document.

    +

    Nacos production deployment

    +

    Production environment using Nacos in order to achieve high availability cannot use stand-alone mode, need to build Nacos cluster, specific details can refer to the manual cluster deployment.

    +

    Nacos Docker deployment

    +

    In addition to using compressed package deployment Nacos, Nacos also provides a corresponding Docker image, when Nacos release new versions, Nacos will release the corresponding image version supports Docker deployment.Specific details you can refer to Nacos Docker.

    +

    How to deploy in k8s Nacos

    +

    In production deployment Nacos cluster, if for Nacos expansion operation, need to manually change the cluster IP file, start a new Nacos service.In order to automate operations, k8s Nacos and combined use of StatefulSets provides automatic operations plan, to dynamic scalability Nacos capacity, specific details reference Kubernetes Nacos.

    +

    How to monitor Nacos

    +

    Nacos0.8 version provides the Metrics data exposed ability, can pass the Metrics data to monitor the running status of Nacos, the content of the details you can refer to Nacos monitor.

    +

    Nacos used questions

    +

    Zookeeper service can be migrated to Nacos?

    +

    Can through the Nacos - Sync moved the Zookeeper service and Nacos, can also be migrated from Nacos Zookeeper, specific details can be used as Nacos Sync reference.

    +

    Nacos support multiple configuration files

    +

    Nacos through Spring Cloud Alibaba Nacos Config support multiple configuration files, configuration can be stored in a separate configuration file.The associated issue, details refer to the document Spring Cloud Alibaba Nacos Config.

    +

    Nacos support Dubbo

    +

    Nacos version 0.6 and Dubbo integration, support the use of Nacos as registry, related issue, details refer to the document Nacos and Dubbo fusion become registry.

    +

    Nacos support Spring system

    +

    Nacos perfect supports the Sping technology stack, details refer to the document Nacos SpringNacos Spring BootSpring Cloud.

    +

    Don't use Nacos SDK how to access the Nacos

    +

    Nacos network interaction is implemented based on Http protocol, provides the Open-API can easily achieve Nacos access.

    +

    Nacos support for multiple languages

    +

    Nacos currently only supports Java, support for other languages are being developed, also need your support to build together.

    +

    Nacos 0.8 version logon failure

    +

    Nacos version 0.8 when using its and no JAVA_HOME environment variable, Nacos can launch successful, because yum install installed its the Java command to register a beneath /bin directory, and so can cause abnormal SignatureException.This problem has been repair, version 0.9 release, the specific details can refer to the issue.

    +

    Server error java.lang.IllegalStateException: unable to find local peer: 127.0.0.1:8848

    +

    This problem because Nacos get native IP, don't get to the correct external IP. The need to guarantee the InetAddress.getLocalHost().getHostAddress() or the result of the hostname -i was with the cluster. The conf configuration of IP is the same.

    +

    Nacos configuration for encryption

    +

    Nacos plan in 1.X version's ability to provide encryption, currently does not support encryption, can only rely on the SDK prepared encryption endures Nacos again.

    +

    Nacos at 401 error

    +

    Nacos server error, check the server logs, refer to the issue.

    +

    Nacos weight not to take effect

    +

    Nacos console editors weights, at present from SpringCloud client and Dubbo client didn't get through, so can't take effect. For SpringCloud client application can realize the load balancer Ribbon for weighting filter.

    +

    Nacos how to enlarge shrinks capacity

    +

    Currently supported modify the cluster.conf file in a way that expanding capacity, after the change without restart, the Server will automatically refresh the new content to the file.

    +

    Nacos client modify the log level

    +

    Configuration - D parameters com.alibaba.nacos.naming.log.level set naming the client log level, such as setting for the error:-Dcom.alibaba.nacos.naming.log.level=error Similarly, - D parameters com.alibaba.nacos.config.log.level is used to set the config client log level.

    +

    Nacos and Zipkin integration Service not found error

    +

    Configuration spring-cloud-seluth parameters: spring.zipkin.discovery-client-enabled=false.

    +

    If there is still a Service not found error, is recommended to use the open-api will Zipkin-server instance is registered as a permanent Service:

    curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?port=9411&healthy=true&ip=127.0.0.1&weight=1.0&serviceName=zipkin-server&ephemeral=false&namespaceId=public'

    -

    然后,前往nacos控制台,找到服务名为zipkin-server的服务,找到集群配置,设置健康检查模式为TCP,端口号为9411(即zipkin-server的端口)。

    -

    Nacos原理问题

    +

    Then, went to nacos console, find a service called zipkin-server service, find the cluster configuration, set the health examination mode to TCP, port number of 9411 (zipkin-server port).

    +

    Nacos principle questions

    From 0355120ae3eb67879af433eca8f056ed34955628 Mon Sep 17 00:00:00 2001 From: Marcia Xu <48591728+Ross0101@users.noreply.github.com> Date: Sat, 6 Jul 2019 15:25:26 +0800 Subject: [PATCH 04/25] Translation faq.json --- en-us/docs/faq.json | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/en-us/docs/faq.json b/en-us/docs/faq.json index 3ba0122c476..22a5c234b67 100644 --- a/en-us/docs/faq.json +++ b/en-us/docs/faq.json @@ -1,6 +1,10 @@ { "filename": "faq.md", - "__html": "\n

    Nacos常规问题

    \n

    Nacos是什么

    \n

    Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。详情可以参考Nacos官网介绍

    \n

    Nacos如何支持多环境

    \n

    在日常使用中常常需要不同的环境,比如日常,预发,线上环境,如果是逻辑隔离可以使用命名空间,Nacos支持命名空间来支持多环境隔离,可以在Nacos控制台创建多个命名空间。如果需要物理隔离需要部署多套Nacos环境

    \n

    Nacos是否生产可用

    \n

    Nacos在2019.1发布了Pre-GA版本,支持了安全隔离、监控和服务迁移等上生产的最后一公里,以更稳定的支撑用户的生产环境。具体详情Nacos 发布 v0.8.0 Pre-GA 版本,安全稳定上生产\n

    \n

    Nacos版本计划

    \n

    Nacos 0.8.0 开始支持生产可用,1.0版本达到大规模生产可用,2.0版本计划与K8s、Spring Cloud、Service Mesh、Serverless进一步融合,具体的详情参考Nacos规划

    \n

    Nacos有什么依赖

    \n

    在单机模式下,Nacos没有任何依赖,在集群模式下,Nacos依赖Mysql做存储,详情可以参考Nacos部署

    \n

    Nacos使用什么开源协议

    \n

    Nacos使用 Apache 2.0

    \n

    Nacos运维问题

    \n

    Nacos如何单机部署

    \n

    可以参考Nacos官网部署手册 quick start

    \n

    Nacos单机部署如何使用mysql

    \n

    Nacos单机模式默认使用内嵌的数据库作为存储引擎,如果想换成自己安装的mysql,可以按照 官网文档

    \n

    生产环境如何部署Nacos

    \n

    生产环境使用Nacos为了达到高可用不能使用单机模式,需要搭建nacos集群,具体详情可以参考 集群部署手册

    \n

    Nacos如何Docker部署

    \n

    除了使用压缩包部署Nacos,Nacos也提供了相应的Docker镜像,当Nacos发布新的版本的时候,Nacos会发布对应的镜像版本支持Docker部署。具体详情可以参考Nacos Docker

    \n

    如何在k8s中部署Nacos

    \n

    在生产环境部署Nacos集群,如果要对Nacos进行扩容操作,需要手动更改集群ip文件,启动新的Nacos服务。为了能进行自动化运维,Nacos和k8s结合利用StatefulSets提供了自动运维方案,能对Nacos进行动态扩缩容,具体详情参考Kubernetes Nacos

    \n

    如何监控Nacos

    \n

    Nacos0.8版本提供了Metrics数据暴露能力,能通过Metrics数据的内容对Nacos的运行状态进行监控,详情参考Nacos监控

    \n

    Nacos使用问题

    \n

    Zookeeper上的服务可以迁移到Nacos上吗?

    \n

    可以通过Nacos-Sync把Zookeeper服务迁移到Nacos,也可以从Nacos迁移到Zookeeper,具体可以参考Nacos Sync 使用

    \n

    Nacos支持多配置文件

    \n

    Nacos通过Spring Cloud Alibaba Nacos Config支持了多配置文件,可以将配置存储在多个独立的配置文件中。关联的issue,详情参考文档Spring Cloud Alibaba Nacos Config

    \n

    Nacos支持Dubbo

    \n

    Nacos 0.6版本和Dubbo集成,支持使用Nacos作为注册中心,关联issue,具体文档参考Dubbo 融合 Nacos 成为注册中心\n

    \n

    Nacos支持Spring体系

    \n

    Nacos完善支持了Sping技术栈,具体可以参考Nacos SpringNacos Spring BootSpring Cloud

    \n

    不使用Nacos SDK如何访问Nacos

    \n

    Nacos的网络交互都是基于Http协议实现的,提供了Open-API可以很容易实现Nacos的访问

    \n

    Nacos对多语言的支持

    \n

    Nacos目前只支持Java,对于其他语言的支持还正在开发中,需要大家大力支持一起共建

    \n

    Nacos0.8版本登陆失败

    \n

    Nacos 0.8版本当使用openjdk并且没有JAVA_HOME的环境变量时,nacos可以启动成功,是因为yum install安装的openjdk 会把java命令注册一份到/bin目录下面,所以会引发SignatureException异常。这个问题已经修复,0.9版本会发版,具体详情可以参考issue

    \n

    服务端报错java.lang.IllegalStateException: unable to find local peer: 127.0.0.1:8848

    \n

    这个问题是因为Nacos获取本机IP时,没有获取到正确的外部IP.需要保证InetAddress.getLocalHost().getHostAddress()或者hostname -i的结果是与cluster.conf里配置的IP是一致的.

    \n

    Nacos如何对配置进行加密

    \n

    Nacos计划在1.X版本提供加密的能力,目前还不支持加密,只能靠sdk做好了加密再存到nacos中

    \n

    Nacos报401错误

    \n

    Nacos服务端报错了,可以检查服务端日志,参考issue

    \n

    Nacos权重不生效

    \n

    Nacos控制台上编辑权重, 目前从SpringCloud客户端和Dubbo客户端都没有打通, 所以不能生效. 对于SpringCloud客户端, 应用可以实现Ribbon的负载均衡器来进行权重过滤.

    \n

    Nacos如何扩缩容

    \n

    目前支持修改cluster.conf文件的方式进行扩缩容, 改完后无需重启, Server会自动刷新到文件新内容.

    \n

    Nacos客户端修改日志级别

    \n

    配置-D参数com.alibaba.nacos.naming.log.level设置naming客户端的日志级别,例如设置为error:\n-Dcom.alibaba.nacos.naming.log.level=error\n同样的,-D参数com.alibaba.nacos.config.log.level用来设置config客户端的日志级别。

    \n

    Nacos与Zipkin 整合出现 Service not found 问题

    \n

    配置spring-cloud-seluth参数:spring.zipkin.discovery-client-enabled=false 。

    \n

    如果仍然存在Service not found错误,则建议先使用open-api将Zipkin-server注册为永久实例服务:

    \n

    curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?port=9411&healthy=true&ip=127.0.0.1&weight=1.0&serviceName=zipkin-server&ephemeral=false&namespaceId=public'

    \n

    然后,前往nacos控制台,找到服务名为zipkin-server的服务,找到集群配置,设置健康检查模式为TCP,端口号为9411(即zipkin-server的端口)。

    \n

    Nacos原理问题

    \n", + "__html": "

    FAQ

    \n\n

    Nacos standard questions

    \n

    What is Nacos

    \n

    Nacos dedicated to help you find, micro configuration and management services. Nacos provides a set of simple and easy to use feature set, help you quickly realize dynamic service discovery, service configuration, service metadata, and traffic management. Details you can refer to Nacos website.

    \n

    Nacos how to support more than the environment

    \n

    In daily use are often need different environment, such as daily, pretest, online environment, if it is a logical isolation, can use the namespace Nacos support namespace to support more environmental isolation, can create multiple namespaces in Nacos console. If you need physical isolation, will deploy more sets of Nacos environment.

    \n

    Nacos whether production is available

    \n

    Nacos in January 2019 issued a Pre - GA version, to support the security isolation, monitoring and service migration on the last mile of production, in a more stable support the user's production environment. Details you can refer to Nacos release v0.8.0 Pre - GA version, the safe and stable production.

    \n

    Nacos version plan

    \n

    Nacos 0.8.0 to support production available, version 1.0 to mass production is available, version 2.0 plan and K8s, Spring Cloud, and further integration Service Mesh, Serverless, details you can refer to Nacos roadmap.

    \n

    Nacos dependent

    \n

    In stand-alone mode, Nacos without any rely on, in cluster mode, Nacos rely on Mysql storage, details you can refer to Nacos deployment.

    \n

    Nacos using open source licenses

    \n

    Nacos using Apache 2.0.

    \n

    Nacos operational questions

    \n

    Nacos standalone deployment

    \n

    You can refer to the manual Nacos website deployment quick start.

    \n

    Nacos standalone deployment using Mysql

    \n

    Nacos stand-alone mode defaults to using the embedded database as the storage engine, if you want to change your mysql installation, you can refer to website document.

    \n

    Nacos production deployment

    \n

    Production environment using Nacos in order to achieve high availability cannot use stand-alone mode, need to build Nacos cluster, specific details can refer to the manual cluster deployment.

    \n

    Nacos Docker deployment

    \n

    In addition to using compressed package deployment Nacos, Nacos also provides a corresponding Docker image, when Nacos release new versions, Nacos will release the corresponding image version supports Docker deployment.Specific details you can refer to Nacos Docker.

    \n

    How to deploy in k8s Nacos

    \n

    In production deployment Nacos cluster, if for Nacos expansion operation, need to manually change the cluster IP file, start a new Nacos service.In order to automate operations, k8s Nacos and combined use of StatefulSets provides automatic operations plan, to dynamic scalability Nacos capacity, specific details reference Kubernetes Nacos.

    \n

    How to monitor Nacos

    \n

    Nacos0.8 version provides the Metrics data exposed ability, can pass the Metrics data to monitor the running status of Nacos, the content of the details you can refer to Nacos monitor.

    \n

    Nacos used questions

    \n

    Zookeeper service can be migrated to Nacos?

    \n

    Can through the Nacos - Sync moved the Zookeeper service and Nacos, can also be migrated from Nacos Zookeeper, specific details can be used as Nacos Sync reference.

    \n

    Nacos support multiple configuration files

    \n

    Nacos through Spring Cloud Alibaba Nacos Config support multiple configuration files, configuration can be stored in a separate configuration file.The associated issue, details refer to the document Spring Cloud Alibaba Nacos Config.

    \n

    Nacos support Dubbo

    \n

    Nacos version 0.6 and Dubbo integration, support the use of Nacos as registry, related issue, details refer to the document Nacos and Dubbo fusion become registry.

    \n

    Nacos support Spring system

    \n

    Nacos perfect supports the Sping technology stack, details refer to the document Nacos SpringNacos Spring BootSpring Cloud.

    \n

    Don't use Nacos SDK how to access the Nacos

    \n

    Nacos network interaction is implemented based on Http protocol, provides the Open-API can easily achieve Nacos access.

    \n

    Nacos support for multiple languages

    \n

    Nacos currently only supports Java, support for other languages are being developed, also need your support to build together.

    \n

    Nacos 0.8 version logon failure

    \n

    Nacos version 0.8 when using its and no JAVA_HOME environment variable, Nacos can launch successful, because yum install installed its the Java command to register a beneath /bin directory, and so can cause abnormal SignatureException.This problem has been repair, version 0.9 release, the specific details can refer to the issue.

    \n

    Server error java.lang.IllegalStateException: unable to find local peer: 127.0.0.1:8848

    \n

    This problem because Nacos get native IP, don't get to the correct external IP. The need to guarantee the InetAddress.getLocalHost().getHostAddress() or the result of the hostname -i was with the cluster. The conf configuration of IP is the same.

    \n

    Nacos configuration for encryption

    \n

    Nacos plan in 1.X version's ability to provide encryption, currently does not support encryption, can only rely on the SDK prepared encryption endures Nacos again.

    \n

    Nacos at 401 error

    \n

    Nacos server error, check the server logs, refer to the issue.

    \n

    Nacos weight not to take effect

    \n

    Nacos console editors weights, at present from SpringCloud client and Dubbo client didn't get through, so can't take effect. For SpringCloud client application can realize the load balancer Ribbon for weighting filter.

    \n

    Nacos how to enlarge shrinks capacity

    \n

    Currently supported modify the cluster.conf file in a way that expanding capacity, after the change without restart, the Server will automatically refresh the new content to the file.

    \n

    Nacos client modify the log level

    \n

    Configuration - D parameters com.alibaba.nacos.naming.log.level set naming the client log level, such as setting for the error:-Dcom.alibaba.nacos.naming.log.level=error Similarly, - D parameters com.alibaba.nacos.config.log.level is used to set the config client log level.

    \n

    Nacos and Zipkin integration Service not found error

    \n

    Configuration spring-cloud-seluth parameters: spring.zipkin.discovery-client-enabled=false.

    \n

    If there is still a Service not found error, is recommended to use the open-api will Zipkin-server instance is registered as a permanent Service:

    \n

    curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?port=9411&healthy=true&ip=127.0.0.1&weight=1.0&serviceName=zipkin-server&ephemeral=false&namespaceId=public'

    \n

    Then, went to nacos console, find a service called zipkin-server service, find the cluster configuration, set the health examination mode to TCP, port number of 9411 (zipkin-server port).

    \n

    Nacos principle questions

    \n", "link": "/en-us/docs/faq.html", - "meta": {} + "meta": { + "title": "FAQ", + "keywords": "Nacos,FAQ", + "description": "Nacos of FAQ" + } } From 361555b7c2b694df6d99ee7ee8ce4ec659d52e77 Mon Sep 17 00:00:00 2001 From: Marcia Xu <48591728+Ross0101@users.noreply.github.com> Date: Sat, 6 Jul 2019 15:25:59 +0800 Subject: [PATCH 05/25] Update faq.html --- zh-cn/docs/faq.html | 69 ++++++++++++++++++++++----------------------- 1 file changed, 34 insertions(+), 35 deletions(-) diff --git a/zh-cn/docs/faq.html b/zh-cn/docs/faq.html index 033e665b60a..61746a420ef 100644 --- a/zh-cn/docs/faq.html +++ b/zh-cn/docs/faq.html @@ -4,15 +4,16 @@ - - + + - faq + FAQ -
    Nacos 文档
      +
      Nacos 文档

      FAQ

      +

      Nacos常规问题

      Nacos是什么

      -

      Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。详情可以参考Nacos官网介绍

      +

      Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。详情可以参考Nacos官网介绍

      Nacos如何支持多环境

      -

      在日常使用中常常需要不同的环境,比如日常,预发,线上环境,如果是逻辑隔离可以使用命名空间,Nacos支持命名空间来支持多环境隔离,可以在Nacos控制台创建多个命名空间。如果需要物理隔离需要部署多套Nacos环境

      +

      在日常使用中常常需要不同的环境,比如日常,预发,线上环境,如果是逻辑隔离可以使用命名空间,Nacos支持命名空间来支持多环境隔离,可以在Nacos控制台创建多个命名空间。如果需要物理隔离,就要部署多套Nacos环境。

      Nacos是否生产可用

      -

      Nacos在2019.1发布了Pre-GA版本,支持了安全隔离、监控和服务迁移等上生产的最后一公里,以更稳定的支撑用户的生产环境。具体详情Nacos 发布 v0.8.0 Pre-GA 版本,安全稳定上生产 -

      +

      Nacos在2019.1发布了Pre-GA版本,支持了安全隔离、监控和服务迁移等上生产的最后一公里,以更稳定的支撑用户的生产环境。详情可以参考Nacos 发布 v0.8.0 Pre-GA 版本,安全稳定上生产

      Nacos版本计划

      -

      Nacos 0.8.0 开始支持生产可用,1.0版本达到大规模生产可用,2.0版本计划与K8s、Spring Cloud、Service Mesh、Serverless进一步融合,具体的详情参考Nacos规划

      +

      Nacos 0.8.0 开始支持生产可用,1.0版本达到大规模生产可用,2.0版本计划与K8s、Spring Cloud、Service Mesh、Serverless进一步融合,具体的详情参考Nacos规划

      Nacos有什么依赖

      -

      在单机模式下,Nacos没有任何依赖,在集群模式下,Nacos依赖Mysql做存储,详情可以参考Nacos部署

      +

      在单机模式下,Nacos没有任何依赖,在集群模式下,Nacos依赖Mysql做存储,详情可以参考Nacos部署

      Nacos使用什么开源协议

      -

      Nacos使用 Apache 2.0

      +

      Nacos使用Apache 2.0

      Nacos运维问题

      Nacos如何单机部署

      -

      可以参考Nacos官网部署手册 quick start

      +

      可以参考Nacos官网部署手册quick start

      Nacos单机部署如何使用mysql

      -

      Nacos单机模式默认使用内嵌的数据库作为存储引擎,如果想换成自己安装的mysql,可以按照 官网文档

      +

      Nacos单机模式默认使用内嵌的数据库作为存储引擎,如果想换成自己安装的mysql,可以按照官网文档

      生产环境如何部署Nacos

      -

      生产环境使用Nacos为了达到高可用不能使用单机模式,需要搭建nacos集群,具体详情可以参考 集群部署手册

      +

      生产环境使用Nacos为了达到高可用不能使用单机模式,需要搭建nacos集群,具体详情可以参考集群部署手册

      Nacos如何Docker部署

      -

      除了使用压缩包部署Nacos,Nacos也提供了相应的Docker镜像,当Nacos发布新的版本的时候,Nacos会发布对应的镜像版本支持Docker部署。具体详情可以参考Nacos Docker

      +

      除了使用压缩包部署Nacos,Nacos也提供了相应的Docker镜像,当Nacos发布新的版本的时候,Nacos会发布对应的镜像版本支持Docker部署。具体详情可以参考Nacos Docker

      如何在k8s中部署Nacos

      -

      在生产环境部署Nacos集群,如果要对Nacos进行扩容操作,需要手动更改集群ip文件,启动新的Nacos服务。为了能进行自动化运维,Nacos和k8s结合利用StatefulSets提供了自动运维方案,能对Nacos进行动态扩缩容,具体详情参考Kubernetes Nacos

      +

      在生产环境部署Nacos集群,如果要对Nacos进行扩容操作,需要手动更改集群ip文件,启动新的Nacos服务。为了能进行自动化运维,Nacos和k8s结合利用StatefulSets提供了自动运维方案,能对Nacos进行动态扩缩容,具体详情参考Kubernetes Nacos

      如何监控Nacos

      -

      Nacos0.8版本提供了Metrics数据暴露能力,能通过Metrics数据的内容对Nacos的运行状态进行监控,详情参考Nacos监控

      +

      Nacos0.8版本提供了Metrics数据暴露能力,能通过Metrics数据的内容对Nacos的运行状态进行监控,详情参考Nacos监控

      Nacos使用问题

      -

      Zookeeper上的服务可以迁移到Nacos上吗?

      -

      可以通过Nacos-Sync把Zookeeper服务迁移到Nacos,也可以从Nacos迁移到Zookeeper,具体可以参考Nacos Sync 使用

      +

      Zookeeper上的服务可以迁移到Nacos上吗

      +

      可以通过Nacos-Sync把Zookeeper服务迁移到Nacos,也可以从Nacos迁移到Zookeeper,具体可以参考Nacos Sync 使用

      Nacos支持多配置文件

      -

      Nacos通过Spring Cloud Alibaba Nacos Config支持了多配置文件,可以将配置存储在多个独立的配置文件中。关联的issue,详情参考文档Spring Cloud Alibaba Nacos Config

      +

      Nacos通过Spring Cloud Alibaba Nacos Config支持了多配置文件,可以将配置存储在多个独立的配置文件中。关联的issue,详情参考文档Spring Cloud Alibaba Nacos Config

      Nacos支持Dubbo

      -

      Nacos 0.6版本和Dubbo集成,支持使用Nacos作为注册中心,关联issue,具体文档参考Dubbo 融合 Nacos 成为注册中心 -

      +

      Nacos 0.6版本和Dubbo集成,支持使用Nacos作为注册中心,关联issue,具体文档参考Dubbo 融合 Nacos 成为注册中心

      Nacos支持Spring体系

      -

      Nacos完善支持了Sping技术栈,具体可以参考Nacos SpringNacos Spring BootSpring Cloud

      +

      Nacos完善支持了Sping技术栈,具体可以参考Nacos SpringNacos Spring BootSpring Cloud

      不使用Nacos SDK如何访问Nacos

      -

      Nacos的网络交互都是基于Http协议实现的,提供了Open-API可以很容易实现Nacos的访问

      +

      Nacos的网络交互都是基于Http协议实现的,提供了Open-API可以很容易实现Nacos的访问。

      Nacos对多语言的支持

      -

      Nacos目前只支持Java,对于其他语言的支持还正在开发中,需要大家大力支持一起共建

      +

      Nacos目前只支持Java,对于其他语言的支持还正在开发中,需要大家大力支持一起共建。

      Nacos0.8版本登陆失败

      -

      Nacos 0.8版本当使用openjdk并且没有JAVA_HOME的环境变量时,nacos可以启动成功,是因为yum install安装的openjdk 会把java命令注册一份到/bin目录下面,所以会引发SignatureException异常。这个问题已经修复,0.9版本会发版,具体详情可以参考issue

      -

      服务端报错java.lang.IllegalStateException: unable to find local peer: 127.0.0.1:8848

      -

      这个问题是因为Nacos获取本机IP时,没有获取到正确的外部IP.需要保证InetAddress.getLocalHost().getHostAddress()或者hostname -i的结果是与cluster.conf里配置的IP是一致的.

      +

      Nacos 0.8版本当使用openjdk并且没有JAVA_HOME的环境变量时,nacos可以启动成功,是因为yum install安装的openjdk 会把java命令注册一份到/bin目录下面,所以会引发SignatureException异常。这个问题已经修复,0.9版本会发版,具体详情可以参考issue

      +

      服务端报错 java.lang.IllegalStateException: unable to find local peer: 127.0.0.1:8848

      +

      这个问题是因为Nacos获取本机IP时,没有获取到正确的外部IP.需要保证InetAddress.getLocalHost().getHostAddress()或者hostname -i的结果是与cluster.conf里配置的IP是一致的。

      Nacos如何对配置进行加密

      -

      Nacos计划在1.X版本提供加密的能力,目前还不支持加密,只能靠sdk做好了加密再存到nacos中

      +

      Nacos计划在1.X版本提供加密的能力,目前还不支持加密,只能靠sdk做好了加密再存到nacos中。

      Nacos报401错误

      -

      Nacos服务端报错了,可以检查服务端日志,参考issue

      +

      Nacos服务端报错了,可以检查服务端日志,参考issue

      Nacos权重不生效

      -

      Nacos控制台上编辑权重, 目前从SpringCloud客户端和Dubbo客户端都没有打通, 所以不能生效. 对于SpringCloud客户端, 应用可以实现Ribbon的负载均衡器来进行权重过滤.

      +

      Nacos控制台上编辑权重, 目前从SpringCloud客户端和Dubbo客户端都没有打通, 所以不能生效. 对于SpringCloud客户端, 应用可以实现Ribbon的负载均衡器来进行权重过滤。

      Nacos如何扩缩容

      -

      目前支持修改cluster.conf文件的方式进行扩缩容, 改完后无需重启, Server会自动刷新到文件新内容.

      +

      目前支持修改cluster.conf文件的方式进行扩缩容, 改完后无需重启, Server会自动刷新到文件新内容。

      Nacos客户端修改日志级别

      配置-D参数com.alibaba.nacos.naming.log.level设置naming客户端的日志级别,例如设置为error: -Dcom.alibaba.nacos.naming.log.level=error 同样的,-D参数com.alibaba.nacos.config.log.level用来设置config客户端的日志级别。

      Nacos与Zipkin 整合出现 Service not found 问题

      -

      配置spring-cloud-seluth参数:spring.zipkin.discovery-client-enabled=false 。

      +

      配置spring-cloud-seluth参数:spring.zipkin.discovery-client-enabled=false

      如果仍然存在Service not found错误,则建议先使用open-api将Zipkin-server注册为永久实例服务:

      curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?port=9411&healthy=true&ip=127.0.0.1&weight=1.0&serviceName=zipkin-server&ephemeral=false&namespaceId=public'

      然后,前往nacos控制台,找到服务名为zipkin-server的服务,找到集群配置,设置健康检查模式为TCP,端口号为9411(即zipkin-server的端口)。

      From c2bb0c0be170743b421a113dc992628843c1f61b Mon Sep 17 00:00:00 2001 From: Marcia Xu <48591728+Ross0101@users.noreply.github.com> Date: Sat, 6 Jul 2019 15:26:23 +0800 Subject: [PATCH 06/25] Update faq.json --- zh-cn/docs/faq.json | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/zh-cn/docs/faq.json b/zh-cn/docs/faq.json index 288454ab3b0..0d0ab4d60b6 100644 --- a/zh-cn/docs/faq.json +++ b/zh-cn/docs/faq.json @@ -1,6 +1,10 @@ { "filename": "faq.md", - "__html": "\n

      Nacos常规问题

      \n

      Nacos是什么

      \n

      Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。详情可以参考Nacos官网介绍

      \n

      Nacos如何支持多环境

      \n

      在日常使用中常常需要不同的环境,比如日常,预发,线上环境,如果是逻辑隔离可以使用命名空间,Nacos支持命名空间来支持多环境隔离,可以在Nacos控制台创建多个命名空间。如果需要物理隔离需要部署多套Nacos环境

      \n

      Nacos是否生产可用

      \n

      Nacos在2019.1发布了Pre-GA版本,支持了安全隔离、监控和服务迁移等上生产的最后一公里,以更稳定的支撑用户的生产环境。具体详情Nacos 发布 v0.8.0 Pre-GA 版本,安全稳定上生产\n

      \n

      Nacos版本计划

      \n

      Nacos 0.8.0 开始支持生产可用,1.0版本达到大规模生产可用,2.0版本计划与K8s、Spring Cloud、Service Mesh、Serverless进一步融合,具体的详情参考Nacos规划

      \n

      Nacos有什么依赖

      \n

      在单机模式下,Nacos没有任何依赖,在集群模式下,Nacos依赖Mysql做存储,详情可以参考Nacos部署

      \n

      Nacos使用什么开源协议

      \n

      Nacos使用 Apache 2.0

      \n

      Nacos运维问题

      \n

      Nacos如何单机部署

      \n

      可以参考Nacos官网部署手册 quick start

      \n

      Nacos单机部署如何使用mysql

      \n

      Nacos单机模式默认使用内嵌的数据库作为存储引擎,如果想换成自己安装的mysql,可以按照 官网文档

      \n

      生产环境如何部署Nacos

      \n

      生产环境使用Nacos为了达到高可用不能使用单机模式,需要搭建nacos集群,具体详情可以参考 集群部署手册

      \n

      Nacos如何Docker部署

      \n

      除了使用压缩包部署Nacos,Nacos也提供了相应的Docker镜像,当Nacos发布新的版本的时候,Nacos会发布对应的镜像版本支持Docker部署。具体详情可以参考Nacos Docker

      \n

      如何在k8s中部署Nacos

      \n

      在生产环境部署Nacos集群,如果要对Nacos进行扩容操作,需要手动更改集群ip文件,启动新的Nacos服务。为了能进行自动化运维,Nacos和k8s结合利用StatefulSets提供了自动运维方案,能对Nacos进行动态扩缩容,具体详情参考Kubernetes Nacos

      \n

      如何监控Nacos

      \n

      Nacos0.8版本提供了Metrics数据暴露能力,能通过Metrics数据的内容对Nacos的运行状态进行监控,详情参考Nacos监控

      \n

      Nacos使用问题

      \n

      Zookeeper上的服务可以迁移到Nacos上吗?

      \n

      可以通过Nacos-Sync把Zookeeper服务迁移到Nacos,也可以从Nacos迁移到Zookeeper,具体可以参考Nacos Sync 使用

      \n

      Nacos支持多配置文件

      \n

      Nacos通过Spring Cloud Alibaba Nacos Config支持了多配置文件,可以将配置存储在多个独立的配置文件中。关联的issue,详情参考文档Spring Cloud Alibaba Nacos Config

      \n

      Nacos支持Dubbo

      \n

      Nacos 0.6版本和Dubbo集成,支持使用Nacos作为注册中心,关联issue,具体文档参考Dubbo 融合 Nacos 成为注册中心\n

      \n

      Nacos支持Spring体系

      \n

      Nacos完善支持了Sping技术栈,具体可以参考Nacos SpringNacos Spring BootSpring Cloud

      \n

      不使用Nacos SDK如何访问Nacos

      \n

      Nacos的网络交互都是基于Http协议实现的,提供了Open-API可以很容易实现Nacos的访问

      \n

      Nacos对多语言的支持

      \n

      Nacos目前只支持Java,对于其他语言的支持还正在开发中,需要大家大力支持一起共建

      \n

      Nacos0.8版本登陆失败

      \n

      Nacos 0.8版本当使用openjdk并且没有JAVA_HOME的环境变量时,nacos可以启动成功,是因为yum install安装的openjdk 会把java命令注册一份到/bin目录下面,所以会引发SignatureException异常。这个问题已经修复,0.9版本会发版,具体详情可以参考issue

      \n

      服务端报错java.lang.IllegalStateException: unable to find local peer: 127.0.0.1:8848

      \n

      这个问题是因为Nacos获取本机IP时,没有获取到正确的外部IP.需要保证InetAddress.getLocalHost().getHostAddress()或者hostname -i的结果是与cluster.conf里配置的IP是一致的.

      \n

      Nacos如何对配置进行加密

      \n

      Nacos计划在1.X版本提供加密的能力,目前还不支持加密,只能靠sdk做好了加密再存到nacos中

      \n

      Nacos报401错误

      \n

      Nacos服务端报错了,可以检查服务端日志,参考issue

      \n

      Nacos权重不生效

      \n

      Nacos控制台上编辑权重, 目前从SpringCloud客户端和Dubbo客户端都没有打通, 所以不能生效. 对于SpringCloud客户端, 应用可以实现Ribbon的负载均衡器来进行权重过滤.

      \n

      Nacos如何扩缩容

      \n

      目前支持修改cluster.conf文件的方式进行扩缩容, 改完后无需重启, Server会自动刷新到文件新内容.

      \n

      Nacos客户端修改日志级别

      \n

      配置-D参数com.alibaba.nacos.naming.log.level设置naming客户端的日志级别,例如设置为error:\n-Dcom.alibaba.nacos.naming.log.level=error\n同样的,-D参数com.alibaba.nacos.config.log.level用来设置config客户端的日志级别。

      \n

      Nacos与Zipkin 整合出现 Service not found 问题

      \n

      配置spring-cloud-seluth参数:spring.zipkin.discovery-client-enabled=false 。

      \n

      如果仍然存在Service not found错误,则建议先使用open-api将Zipkin-server注册为永久实例服务:

      \n

      curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?port=9411&healthy=true&ip=127.0.0.1&weight=1.0&serviceName=zipkin-server&ephemeral=false&namespaceId=public'

      \n

      然后,前往nacos控制台,找到服务名为zipkin-server的服务,找到集群配置,设置健康检查模式为TCP,端口号为9411(即zipkin-server的端口)。

      \n

      Nacos原理问题

      \n", + "__html": "

      FAQ

      \n\n

      Nacos常规问题

      \n

      Nacos是什么

      \n

      Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。详情可以参考Nacos官网介绍

      \n

      Nacos如何支持多环境

      \n

      在日常使用中常常需要不同的环境,比如日常,预发,线上环境,如果是逻辑隔离可以使用命名空间,Nacos支持命名空间来支持多环境隔离,可以在Nacos控制台创建多个命名空间。如果需要物理隔离,就要部署多套Nacos环境。

      \n

      Nacos是否生产可用

      \n

      Nacos在2019.1发布了Pre-GA版本,支持了安全隔离、监控和服务迁移等上生产的最后一公里,以更稳定的支撑用户的生产环境。详情可以参考Nacos 发布 v0.8.0 Pre-GA 版本,安全稳定上生产

      \n

      Nacos版本计划

      \n

      Nacos 0.8.0 开始支持生产可用,1.0版本达到大规模生产可用,2.0版本计划与K8s、Spring Cloud、Service Mesh、Serverless进一步融合,具体的详情参考Nacos规划

      \n

      Nacos有什么依赖

      \n

      在单机模式下,Nacos没有任何依赖,在集群模式下,Nacos依赖Mysql做存储,详情可以参考Nacos部署

      \n

      Nacos使用什么开源协议

      \n

      Nacos使用Apache 2.0

      \n

      Nacos运维问题

      \n

      Nacos如何单机部署

      \n

      可以参考Nacos官网部署手册quick start

      \n

      Nacos单机部署如何使用mysql

      \n

      Nacos单机模式默认使用内嵌的数据库作为存储引擎,如果想换成自己安装的mysql,可以按照官网文档

      \n

      生产环境如何部署Nacos

      \n

      生产环境使用Nacos为了达到高可用不能使用单机模式,需要搭建nacos集群,具体详情可以参考集群部署手册

      \n

      Nacos如何Docker部署

      \n

      除了使用压缩包部署Nacos,Nacos也提供了相应的Docker镜像,当Nacos发布新的版本的时候,Nacos会发布对应的镜像版本支持Docker部署。具体详情可以参考Nacos Docker

      \n

      如何在k8s中部署Nacos

      \n

      在生产环境部署Nacos集群,如果要对Nacos进行扩容操作,需要手动更改集群ip文件,启动新的Nacos服务。为了能进行自动化运维,Nacos和k8s结合利用StatefulSets提供了自动运维方案,能对Nacos进行动态扩缩容,具体详情参考Kubernetes Nacos

      \n

      如何监控Nacos

      \n

      Nacos0.8版本提供了Metrics数据暴露能力,能通过Metrics数据的内容对Nacos的运行状态进行监控,详情参考Nacos监控

      \n

      Nacos使用问题

      \n

      Zookeeper上的服务可以迁移到Nacos上吗

      \n

      可以通过Nacos-Sync把Zookeeper服务迁移到Nacos,也可以从Nacos迁移到Zookeeper,具体可以参考Nacos Sync 使用

      \n

      Nacos支持多配置文件

      \n

      Nacos通过Spring Cloud Alibaba Nacos Config支持了多配置文件,可以将配置存储在多个独立的配置文件中。关联的issue,详情参考文档Spring Cloud Alibaba Nacos Config

      \n

      Nacos支持Dubbo

      \n

      Nacos 0.6版本和Dubbo集成,支持使用Nacos作为注册中心,关联issue,具体文档参考Dubbo 融合 Nacos 成为注册中心

      \n

      Nacos支持Spring体系

      \n

      Nacos完善支持了Sping技术栈,具体可以参考Nacos SpringNacos Spring BootSpring Cloud

      \n

      不使用Nacos SDK如何访问Nacos

      \n

      Nacos的网络交互都是基于Http协议实现的,提供了Open-API可以很容易实现Nacos的访问。

      \n

      Nacos对多语言的支持

      \n

      Nacos目前只支持Java,对于其他语言的支持还正在开发中,需要大家大力支持一起共建。

      \n

      Nacos0.8版本登陆失败

      \n

      Nacos 0.8版本当使用openjdk并且没有JAVA_HOME的环境变量时,nacos可以启动成功,是因为yum install安装的openjdk 会把java命令注册一份到/bin目录下面,所以会引发SignatureException异常。这个问题已经修复,0.9版本会发版,具体详情可以参考issue

      \n

      服务端报错 java.lang.IllegalStateException: unable to find local peer: 127.0.0.1:8848

      \n

      这个问题是因为Nacos获取本机IP时,没有获取到正确的外部IP.需要保证InetAddress.getLocalHost().getHostAddress()或者hostname -i的结果是与cluster.conf里配置的IP是一致的。

      \n

      Nacos如何对配置进行加密

      \n

      Nacos计划在1.X版本提供加密的能力,目前还不支持加密,只能靠sdk做好了加密再存到nacos中。

      \n

      Nacos报401错误

      \n

      Nacos服务端报错了,可以检查服务端日志,参考issue

      \n

      Nacos权重不生效

      \n

      Nacos控制台上编辑权重, 目前从SpringCloud客户端和Dubbo客户端都没有打通, 所以不能生效. 对于SpringCloud客户端, 应用可以实现Ribbon的负载均衡器来进行权重过滤。

      \n

      Nacos如何扩缩容

      \n

      目前支持修改cluster.conf文件的方式进行扩缩容, 改完后无需重启, Server会自动刷新到文件新内容。

      \n

      Nacos客户端修改日志级别

      \n

      配置-D参数com.alibaba.nacos.naming.log.level设置naming客户端的日志级别,例如设置为error:\n-Dcom.alibaba.nacos.naming.log.level=error\n同样的,-D参数com.alibaba.nacos.config.log.level用来设置config客户端的日志级别。

      \n

      Nacos与Zipkin 整合出现 Service not found 问题

      \n

      配置spring-cloud-seluth参数:spring.zipkin.discovery-client-enabled=false

      \n

      如果仍然存在Service not found错误,则建议先使用open-api将Zipkin-server注册为永久实例服务:

      \n

      curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?port=9411&healthy=true&ip=127.0.0.1&weight=1.0&serviceName=zipkin-server&ephemeral=false&namespaceId=public'

      \n

      然后,前往nacos控制台,找到服务名为zipkin-server的服务,找到集群配置,设置健康检查模式为TCP,端口号为9411(即zipkin-server的端口)。

      \n

      Nacos原理问题

      \n", "link": "/zh-cn/docs/faq.html", - "meta": {} + "meta": { + "title": "FAQ", + "keywords": "Nacos,FAQ", + "description": "Nacos 的 FAQ" + } } From b4bac6de1eac0d7495e1fa78f69031be69d126b9 Mon Sep 17 00:00:00 2001 From: Marcia Xu <48591728+Ross0101@users.noreply.github.com> Date: Sat, 6 Jul 2019 15:27:43 +0800 Subject: [PATCH 07/25] Translation nacos config benchmark.md --- docs/en-us/nacos-config-benchmark.md | 98 +++++++++++++++------------- 1 file changed, 52 insertions(+), 46 deletions(-) diff --git a/docs/en-us/nacos-config-benchmark.md b/docs/en-us/nacos-config-benchmark.md index 1af1ad2fb54..31b25613440 100644 --- a/docs/en-us/nacos-config-benchmark.md +++ b/docs/en-us/nacos-config-benchmark.md @@ -1,24 +1,31 @@ -# Nacos服务配置性能测试报告 +--- +title: Nacos service configuration performance test report +keywords: Nacos,service,configuration,performance +description: Nacos service configuration performance test report +--- -## 测试目的 -主要让大家了解Nacos的性能负载和容量,协助我们更好的管理Nacos性能质量,帮助用户更快的运用评估Nacos系统负荷。 +# Nacos service configuration performance test report -## 测试工具 -我们使用自研的PAS性能评估服务平台进行压测,其原理是基于利用JMeter引擎,使用PAS自动生成的JMeter脚本,进行智能压测。 +## Test purposes +Let everybody understand the Nacos main performance load and capacity, to help us better manage Nacos performance quality, help users use of assessment Nacos system load faster. + +## Test tools +We use the research of PAS performance evaluation service platform for pressure measurement, the principle is based on the use of JMeter engine, the use of PAS to automatically generate the JMeter scripts, intelligent pressure measurement. ![IMAGE](https://img.alicdn.com/tfs/TB1xCfDDpzqK1RjSZFvXXcB7VXa-692-297.png) -## 测试环境 -### 1.环境 +## Test environment + +### 1.environment -指标|参数 +indicators|parameter ---|--- -机器|CPU 8核,内存16G -集群规模|单机,3节点,10节点,100节点 -Nacos版本|0.8.0 -数据库|32C128G +machine|CPU 8 nuclear, 16G memory +cluster size|stand-alone, 3 nodes, 10 nodes, 100 nodes +Nacos version|0.8.0 +database|32C128G -### 2.设置启动参数 +### 2.Set the launch parameters ``` /opt/taobao/java/bin/java -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m @@ -37,46 +44,45 @@ Nacos版本|0.8.0 --spring.config.location=classpath:/,classpath:/config/,file:./,file:./config/,file:/home/admin/nacos/conf/ ``` -## 测试场景 -以下测试场景都是服务配置重要接口: -* 验证Nacos服务发布配置的能力 -* 验证Nacos服务获取配置的能力 -* 验证Nacos服务监听配置的能力 -* 验证Nacos服务长连接容量能力 +## Test scenarios +The following test scenarios are service discovery interface: +* Verify Nacos service ability to release configuration +* Verify Nacos service access configuration +* Verify Nacos service listening configuration +* Verify Nacos service long connection capacity ability -## 测试数据 -### 1. 发布配置 -发布配置主要测试Nacos publishConfig接口的性能。 -在各规模集群的性能表现: +## Test data -单机|3节点|10节点|100节点 +### 1. Release configuration +The performance of the main test launch configuration Nacos publishConfig interface. +In the performance of each scale clusters: + +stand-alone|3 nodes|10 nodes|100 nodes :---:|:---:|:---:|:---: 1400|4214|6863|8626 -具体我们看下3节点服务集群发布配置能力。 -以下为各个并发数 (施压机台数*并发数) 时,发布配置的TPS,平均RT。 +We look at three nodes specific services cluster configuration ability. +The following for each concurrency (press the machine number * concurrency), the configuration of the TPS, the average RT. ![IMAGE](https://img.alicdn.com/tfs/TB1OjzIDpzqK1RjSZFoXXbfcXXa-693-400.png) ![IMAGE](https://img.alicdn.com/tfs/TB1s.EfDxjaK1RjSZKzXXXVwXXa-693-325.png) +### 2. Access configuration +Access to configuration for Nacos getConfig interface for testing. +The measured performance in each cluster size: -### 2. 获取配置 -获取配置对Nacos getConfig接口进行测试。 -实测在各个规模集群的性能表现: - -单机|3节点|10节点|100节点 +stand-alone|3 nodes|10 nodes|100 nodes :---:|:---:|:---:|:---: 15000|23013|45000|161099 -具体我们也看下3节点服务集群获取配置能力, -以下为各个并发数 (施压机台数*并发数) 时,获取配置的TPS,平均RT。 +We also look at the three nodes specific services cluster acquire configuration, the following for each concurrency (pressure machine is used for * concurrency), access to configuration of TPS, the average RT. ![IMAGE](https://img.alicdn.com/tfs/TB1UjzDDr2pK1RjSZFsXXaNlXXa-691-365.png) ![IMAGE](https://img.alicdn.com/tfs/TB1kcfADwTqK1RjSZPhXXXfOFXa-691-380.png) -### 3. 监听配置 -执行Nacos addListeners的接口的性能, 监听配置主要采用增加多个配置监听,并多次发布配置的方法,统计发布时间与监听接收到配置时间间隔。 -我们选取了几个点,列举了发布与监听时间差,在100ms内基本都能监听到配置的更改。 +### 3. Listening configuration +Perform Nacos addListeners the performance of the interface to monitor configuration mainly adopts increase more configuration monitoring, and issued several configuration method, statistics released time and listening to receive configuration time interval. +We pick a few points, and lists the publish and listening time, the basic within 100 ms can listen to the configuration changes. -次数|发布与监听时间差(ms)| +times|publish and listening time (ms)| :---:|:---: 1|63 2|53 @@ -88,16 +94,16 @@ Nacos版本|0.8.0 8|183 9|104 -### 4. 长连接容量测试 -Nacos监听配置与客户端建立长连接,长连接会消耗服务内存,从而集群load增高。建立长连接容量的能力,主要考查配置监听的瓶颈。 -测试方法逐渐增加集群的连接,单机连接达到9000时,CPU: 13.9% 内存:18.8%,load:4.7,都处于正常状态,连接数量增加后,load会成倍数级增加。 -在各规模集群测试基本上符合验证。 +### 4. Long connection capacity test +Nacos listener configuration with the client to establish long connection, long service connection consumes memory, thereby cluster increased load.Build up capability of the capacity of long connection, mainly examines configuration monitor bottlenecks. +Cluster connectivity test methods are increasing stand-alone connection to reach 9000, CPU: 13.9% memory: 18.8%, load: 4.7, are in normal state, the number of connections increases, the load will increase exponentially number level. +In each cluster scale test basically conform to test and verify. -单机|3节点|10节点|100节点 +stand-alone|3 nodes|10 nodes|100 nodes :---:|:---:|:---:|:---: 9000|27000|90000|910000 -## 测试结论 -Nacos性能测试都是针对重点功能,通过对各规模集群进行压测,可以看到各个集群的接口容量。 -本测试供给大家作为参考,如有不足或偏差,请指正! -如果对性能有其他需求,可以给我们提issue。 +## Test results +Nacos performance test is aimed at a key function, through the study of the pressure measurement of the cluster size, you can see the interface of each cluster capacity. +This test provides you as reference, if there are any deficiency or deviation, please correct me! +If you have any other requirements on the performance, can you give us the issue. From eb229e91ff917f6cb0850d8f1fbce266c4990c4e Mon Sep 17 00:00:00 2001 From: Marcia Xu <48591728+Ross0101@users.noreply.github.com> Date: Sat, 6 Jul 2019 15:28:23 +0800 Subject: [PATCH 08/25] Update nacos-config-benchmark.md --- docs/zh-cn/nacos-config-benchmark.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/zh-cn/nacos-config-benchmark.md b/docs/zh-cn/nacos-config-benchmark.md index 218b8a87ff0..e126863e416 100644 --- a/docs/zh-cn/nacos-config-benchmark.md +++ b/docs/zh-cn/nacos-config-benchmark.md @@ -15,6 +15,7 @@ description: Nacos服务配置性能测试报告 ![IMAGE](https://img.alicdn.com/tfs/TB1xCfDDpzqK1RjSZFvXXcB7VXa-692-297.png) ## 测试环境 + ### 1.环境 指标|参数 @@ -51,6 +52,7 @@ Nacos版本|0.8.0 * 验证Nacos服务长连接容量能力 ## 测试数据 + ### 1. 发布配置 发布配置主要测试Nacos publishConfig接口的性能。 在各规模集群的性能表现: @@ -73,8 +75,7 @@ Nacos版本|0.8.0 :---:|:---:|:---:|:---: 15000|23013|45000|161099 -具体我们也看下3节点服务集群获取配置能力, -以下为各个并发数 (施压机台数*并发数) 时,获取配置的TPS,平均RT。 +具体我们也看下3节点服务集群获取配置能力,以下为各个并发数 (施压机台数*并发数) 时,获取配置的TPS,平均RT。 ![IMAGE](https://img.alicdn.com/tfs/TB1UjzDDr2pK1RjSZFsXXaNlXXa-691-365.png) ![IMAGE](https://img.alicdn.com/tfs/TB1kcfADwTqK1RjSZPhXXXfOFXa-691-380.png) From 299087f5c04f9d6b5c7ae3f84b6b3e5691e9b873 Mon Sep 17 00:00:00 2001 From: Marcia Xu <48591728+Ross0101@users.noreply.github.com> Date: Sat, 6 Jul 2019 15:29:29 +0800 Subject: [PATCH 09/25] Translation nacos config benchmark.html --- en-us/docs/nacos-config-benchmark.html | 123 ++++++++++++------------- 1 file changed, 61 insertions(+), 62 deletions(-) diff --git a/en-us/docs/nacos-config-benchmark.html b/en-us/docs/nacos-config-benchmark.html index 3ed74e3318c..fc02f2b0527 100644 --- a/en-us/docs/nacos-config-benchmark.html +++ b/en-us/docs/nacos-config-benchmark.html @@ -4,49 +4,49 @@ - - + + - nacos-config-benchmark + Nacos service configuration performance test report -
      Documentation

      Nacos服务配置性能测试报告

      -

      测试目的

      -

      主要让大家了解Nacos的性能负载和容量,协助我们更好的管理Nacos性能质量,帮助用户更快的运用评估Nacos系统负荷。

      -

      测试工具

      -

      我们使用自研的PAS性能评估服务平台进行压测,其原理是基于利用JMeter引擎,使用PAS自动生成的JMeter脚本,进行智能压测。

      +
      Documentation

      Nacos service configuration performance test report

      +

      Test purposes

      +

      Let everybody understand the Nacos main performance load and capacity, to help us better manage Nacos performance quality, help users use of assessment Nacos system load faster.

      +

      Test tools

      +

      We use the research of PAS performance evaluation service platform for pressure measurement, the principle is based on the use of JMeter engine, the use of PAS to automatically generate the JMeter scripts, intelligent pressure measurement.

      IMAGE

      -

      测试环境

      -

      1.环境

      +

      Test environment

      +

      1.environment

      - - + + - - + + - - + + - + - +
      指标参数indicatorsparameter
      机器CPU 8核,内存16GmachineCPU 8 nuclear, 16G memory
      集群规模单机,3节点,10节点,100节点cluster sizestand-alone, 3 nodes, 10 nodes, 100 nodes
      Nacos版本Nacos version 0.8.0
      数据库database 32C128G
      -

      2.设置启动参数

      +

      2.Set the launch parameters

      /opt/taobao/java/bin/java -server -Xms4g -Xmx4g -Xmn2g 
       -XX:MetaspaceSize=128m 
       -XX:MaxMetaspaceSize=320m 
      @@ -63,25 +63,25 @@ 

      2.设置启动参数

      -XX:-UseLargePages -jar /home/admin/nacos/target/nacos-server.jar --spring.config.location=classpath:/,classpath:/config/,file:./,file:./config/,file:/home/admin/nacos/conf/
      -

      测试场景

      -

      以下测试场景都是服务配置重要接口:

      +

      Test scenarios

      +

      The following test scenarios are service discovery interface:

        -
      • 验证Nacos服务发布配置的能力
      • -
      • 验证Nacos服务获取配置的能力
      • -
      • 验证Nacos服务监听配置的能力
      • -
      • 验证Nacos服务长连接容量能力
      • +
      • Verify Nacos service ability to release configuration
      • +
      • Verify Nacos service access configuration
      • +
      • Verify Nacos service listening configuration
      • +
      • Verify Nacos service long connection capacity ability
      -

      测试数据

      -

      1. 发布配置

      -

      发布配置主要测试Nacos publishConfig接口的性能。
      -在各规模集群的性能表现:

      +

      Test data

      +

      1. Release configuration

      +

      The performance of the main test launch configuration Nacos publishConfig interface.
      +In the performance of each scale clusters:

      - - - - + + + + @@ -93,20 +93,20 @@

      1. 发布配置

      单机3节点10节点100节点stand-alone3 nodes10 nodes100 nodes
      -

      具体我们看下3节点服务集群发布配置能力。
      -以下为各个并发数 (施压机台数*并发数) 时,发布配置的TPS,平均RT。 +

      We look at three nodes specific services cluster configuration ability.
      +The following for each concurrency (press the machine number * concurrency), the configuration of the TPS, the average RT. IMAGE IMAGE

      -

      2. 获取配置

      -

      获取配置对Nacos getConfig接口进行测试。
      -实测在各个规模集群的性能表现:

      +

      2. Access configuration

      +

      Access to configuration for Nacos getConfig interface for testing.
      +The measured performance in each cluster size:

      - - - - + + + + @@ -118,18 +118,17 @@

      2. 获取配置

      单机3节点10节点100节点stand-alone3 nodes10 nodes100 nodes
      -

      具体我们也看下3节点服务集群获取配置能力,
      -以下为各个并发数 (施压机台数*并发数) 时,获取配置的TPS,平均RT。 +

      We also look at the three nodes specific services cluster acquire configuration, the following for each concurrency (pressure machine is used for * concurrency), access to configuration of TPS, the average RT. IMAGE IMAGE

      -

      3. 监听配置

      -

      执行Nacos addListeners的接口的性能, 监听配置主要采用增加多个配置监听,并多次发布配置的方法,统计发布时间与监听接收到配置时间间隔。
      -我们选取了几个点,列举了发布与监听时间差,在100ms内基本都能监听到配置的更改。

      +

      3. Listening configuration

      +

      Perform Nacos addListeners the performance of the interface to monitor configuration mainly adopts increase more configuration monitoring, and issued several configuration method, statistics released time and listening to receive configuration time interval.
      +We pick a few points, and lists the publish and listening time, the basic within 100 ms can listen to the configuration changes.

      - - + + @@ -171,17 +170,17 @@

      3. 监听配置

      次数发布与监听时间差(ms)timespublish and listening time (ms)
      -

      4. 长连接容量测试

      -

      Nacos监听配置与客户端建立长连接,长连接会消耗服务内存,从而集群load增高。建立长连接容量的能力,主要考查配置监听的瓶颈。
      -测试方法逐渐增加集群的连接,单机连接达到9000时,CPU: 13.9% 内存:18.8%,load:4.7,都处于正常状态,连接数量增加后,load会成倍数级增加。
      -在各规模集群测试基本上符合验证。

      +

      4. Long connection capacity test

      +

      Nacos listener configuration with the client to establish long connection, long service connection consumes memory, thereby cluster increased load.Build up capability of the capacity of long connection, mainly examines configuration monitor bottlenecks.
      +Cluster connectivity test methods are increasing stand-alone connection to reach 9000, CPU: 13.9% memory: 18.8%, load: 4.7, are in normal state, the number of connections increases, the load will increase exponentially number level.
      +In each cluster scale test basically conform to test and verify.

      - - - - + + + + @@ -193,10 +192,10 @@

      4. 长连接容量测试

      单机3节点10节点100节点stand-alone3 nodes10 nodes100 nodes
      -

      测试结论

      -

      Nacos性能测试都是针对重点功能,通过对各规模集群进行压测,可以看到各个集群的接口容量。
      -本测试供给大家作为参考,如有不足或偏差,请指正!
      -如果对性能有其他需求,可以给我们提issue。

      +

      Test results

      +

      Nacos performance test is aimed at a key function, through the study of the pressure measurement of the cluster size, you can see the interface of each cluster capacity.
      +This test provides you as reference, if there are any deficiency or deviation, please correct me!
      +If you have any other requirements on the performance, can you give us the issue.

      @@ -205,4 +204,4 @@

      测试结论

      - \ No newline at end of file + From c834ef3252d6677d51846bf8ca50097548e98ff7 Mon Sep 17 00:00:00 2001 From: Marcia Xu <48591728+Ross0101@users.noreply.github.com> Date: Sat, 6 Jul 2019 15:30:11 +0800 Subject: [PATCH 10/25] Translation nacos config benchmark.json --- en-us/docs/nacos-config-benchmark.json | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/en-us/docs/nacos-config-benchmark.json b/en-us/docs/nacos-config-benchmark.json index 7b77a3c1e4a..d2ce023ef9a 100644 --- a/en-us/docs/nacos-config-benchmark.json +++ b/en-us/docs/nacos-config-benchmark.json @@ -1,6 +1,10 @@ { "filename": "nacos-config-benchmark.md", - "__html": "

      Nacos服务配置性能测试报告

      \n

      测试目的

      \n

      主要让大家了解Nacos的性能负载和容量,协助我们更好的管理Nacos性能质量,帮助用户更快的运用评估Nacos系统负荷。

      \n

      测试工具

      \n

      我们使用自研的PAS性能评估服务平台进行压测,其原理是基于利用JMeter引擎,使用PAS自动生成的JMeter脚本,进行智能压测。

      \n

      \"IMAGE\"

      \n

      测试环境

      \n

      1.环境

      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
      指标参数
      机器CPU 8核,内存16G
      集群规模单机,3节点,10节点,100节点
      Nacos版本0.8.0
      数据库32C128G
      \n

      2.设置启动参数

      \n
      /opt/taobao/java/bin/java -server -Xms4g -Xmx4g -Xmn2g \n-XX:MetaspaceSize=128m \n-XX:MaxMetaspaceSize=320m \n-Xdebug \n-Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n \n-XX:+UseConcMarkSweepGC \n-XX:+UseCMSCompactAtFullCollection \n-XX:CMSInitiatingOccupancyFraction=70 \n-XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 \n-XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 \n-XX:-UseParNewGC -verbose:gc -Xloggc:/home/admin/nacos/logs/nacos_gc.log \n-XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime \n-XX:+PrintAdaptiveSizePolicy -Dnacos.home=/home/admin/nacos -XX:-OmitStackTraceInFastThrow \n-XX:-UseLargePages -jar /home/admin/nacos/target/nacos-server.jar \n--spring.config.location=classpath:/,classpath:/config/,file:./,file:./config/,file:/home/admin/nacos/conf/\n
      \n

      测试场景

      \n

      以下测试场景都是服务配置重要接口:

      \n
        \n
      • 验证Nacos服务发布配置的能力
      • \n
      • 验证Nacos服务获取配置的能力
      • \n
      • 验证Nacos服务监听配置的能力
      • \n
      • 验证Nacos服务长连接容量能力
      • \n
      \n

      测试数据

      \n

      1. 发布配置

      \n

      发布配置主要测试Nacos publishConfig接口的性能。
      \n在各规模集群的性能表现:

      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
      单机3节点10节点100节点
      1400421468638626
      \n

      具体我们看下3节点服务集群发布配置能力。
      \n以下为各个并发数 (施压机台数*并发数) 时,发布配置的TPS,平均RT。\n\"IMAGE\"\n\"IMAGE\"

      \n

      2. 获取配置

      \n

      获取配置对Nacos getConfig接口进行测试。
      \n实测在各个规模集群的性能表现:

      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
      单机3节点10节点100节点
      150002301345000161099
      \n

      具体我们也看下3节点服务集群获取配置能力,
      \n以下为各个并发数 (施压机台数*并发数) 时,获取配置的TPS,平均RT。\n\"IMAGE\"\n\"IMAGE\"

      \n

      3. 监听配置

      \n

      执行Nacos addListeners的接口的性能, 监听配置主要采用增加多个配置监听,并多次发布配置的方法,统计发布时间与监听接收到配置时间间隔。
      \n我们选取了几个点,列举了发布与监听时间差,在100ms内基本都能监听到配置的更改。

      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
      次数发布与监听时间差(ms)
      163
      253
      384
      473
      546
      635
      773
      8183
      9104
      \n

      4. 长连接容量测试

      \n

      Nacos监听配置与客户端建立长连接,长连接会消耗服务内存,从而集群load增高。建立长连接容量的能力,主要考查配置监听的瓶颈。
      \n测试方法逐渐增加集群的连接,单机连接达到9000时,CPU: 13.9% 内存:18.8%,load:4.7,都处于正常状态,连接数量增加后,load会成倍数级增加。
      \n在各规模集群测试基本上符合验证。

      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
      单机3节点10节点100节点
      90002700090000910000
      \n

      测试结论

      \n

      Nacos性能测试都是针对重点功能,通过对各规模集群进行压测,可以看到各个集群的接口容量。
      \n本测试供给大家作为参考,如有不足或偏差,请指正!
      \n如果对性能有其他需求,可以给我们提issue。

      \n", + "__html": "

      Nacos service configuration performance test report

      \n

      Test purposes

      \n

      Let everybody understand the Nacos main performance load and capacity, to help us better manage Nacos performance quality, help users use of assessment Nacos system load faster.

      \n

      Test tools

      \n

      We use the research of PAS performance evaluation service platform for pressure measurement, the principle is based on the use of JMeter engine, the use of PAS to automatically generate the JMeter scripts, intelligent pressure measurement.

      \n

      \"IMAGE\"

      \n

      Test environment

      \n

      1.environment

      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
      indicatorsparameter
      machineCPU 8 nuclear, 16G memory
      cluster sizestand-alone, 3 nodes, 10 nodes, 100 nodes
      Nacos version0.8.0
      database32C128G
      \n

      2.Set the launch parameters

      \n
      /opt/taobao/java/bin/java -server -Xms4g -Xmx4g -Xmn2g \n-XX:MetaspaceSize=128m \n-XX:MaxMetaspaceSize=320m \n-Xdebug \n-Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n \n-XX:+UseConcMarkSweepGC \n-XX:+UseCMSCompactAtFullCollection \n-XX:CMSInitiatingOccupancyFraction=70 \n-XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 \n-XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 \n-XX:-UseParNewGC -verbose:gc -Xloggc:/home/admin/nacos/logs/nacos_gc.log \n-XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime \n-XX:+PrintAdaptiveSizePolicy -Dnacos.home=/home/admin/nacos -XX:-OmitStackTraceInFastThrow \n-XX:-UseLargePages -jar /home/admin/nacos/target/nacos-server.jar \n--spring.config.location=classpath:/,classpath:/config/,file:./,file:./config/,file:/home/admin/nacos/conf/\n
      \n

      Test scenarios

      \n

      The following test scenarios are service discovery interface:

      \n
        \n
      • Verify Nacos service ability to release configuration
      • \n
      • Verify Nacos service access configuration
      • \n
      • Verify Nacos service listening configuration
      • \n
      • Verify Nacos service long connection capacity ability
      • \n
      \n

      Test data

      \n

      1. Release configuration

      \n

      The performance of the main test launch configuration Nacos publishConfig interface.
      \nIn the performance of each scale clusters:

      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
      stand-alone3 nodes10 nodes100 nodes
      1400421468638626
      \n

      We look at three nodes specific services cluster configuration ability.
      \nThe following for each concurrency (press the machine number * concurrency), the configuration of the TPS, the average RT.\n\"IMAGE\"\n\"IMAGE\"

      \n

      2. Access configuration

      \n

      Access to configuration for Nacos getConfig interface for testing.
      \nThe measured performance in each cluster size:

      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
      stand-alone3 nodes10 nodes100 nodes
      150002301345000161099
      \n

      We also look at the three nodes specific services cluster acquire configuration, the following for each concurrency (pressure machine is used for * concurrency), access to configuration of TPS, the average RT.\n\"IMAGE\"\n\"IMAGE\"

      \n

      3. Listening configuration

      \n

      Perform Nacos addListeners the performance of the interface to monitor configuration mainly adopts increase more configuration monitoring, and issued several configuration method, statistics released time and listening to receive configuration time interval.
      \nWe pick a few points, and lists the publish and listening time, the basic within 100 ms can listen to the configuration changes.

      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
      timespublish and listening time (ms)
      163
      253
      384
      473
      546
      635
      773
      8183
      9104
      \n

      4. Long connection capacity test

      \n

      Nacos listener configuration with the client to establish long connection, long service connection consumes memory, thereby cluster increased load.Build up capability of the capacity of long connection, mainly examines configuration monitor bottlenecks.
      \nCluster connectivity test methods are increasing stand-alone connection to reach 9000, CPU: 13.9% memory: 18.8%, load: 4.7, are in normal state, the number of connections increases, the load will increase exponentially number level.
      \nIn each cluster scale test basically conform to test and verify.

      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
      stand-alone3 nodes10 nodes100 nodes
      90002700090000910000
      \n

      Test results

      \n

      Nacos performance test is aimed at a key function, through the study of the pressure measurement of the cluster size, you can see the interface of each cluster capacity.
      \nThis test provides you as reference, if there are any deficiency or deviation, please correct me!
      \nIf you have any other requirements on the performance, can you give us the issue.

      \n", "link": "/en-us/docs/nacos-config-benchmark.html", - "meta": {} -} \ No newline at end of file + "meta": { + "title": "Nacos service configuration performance test report", + "keywords": "Nacos,service,configuration,performance", + "description": "Nacos service configuration performance test report" + } +} From cbd7d82882c7d17e972f7a36917593cb07925ba8 Mon Sep 17 00:00:00 2001 From: Marcia Xu <48591728+Ross0101@users.noreply.github.com> Date: Sat, 6 Jul 2019 15:31:06 +0800 Subject: [PATCH 11/25] Update nacos-config-benchmark.html --- zh-cn/docs/nacos-config-benchmark.html | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/zh-cn/docs/nacos-config-benchmark.html b/zh-cn/docs/nacos-config-benchmark.html index 3884ff1180d..54e18315dae 100644 --- a/zh-cn/docs/nacos-config-benchmark.html +++ b/zh-cn/docs/nacos-config-benchmark.html @@ -118,8 +118,7 @@

      2. 获取配置

      -

      具体我们也看下3节点服务集群获取配置能力,
      -以下为各个并发数 (施压机台数*并发数) 时,获取配置的TPS,平均RT。 +

      具体我们也看下3节点服务集群获取配置能力,以下为各个并发数 (施压机台数*并发数) 时,获取配置的TPS,平均RT。 IMAGE IMAGE

      3. 监听配置

      @@ -205,4 +204,4 @@

      测试结论

      - \ No newline at end of file + From e8bac456321555cbe980ddd0761319e7787df504 Mon Sep 17 00:00:00 2001 From: Marcia Xu <48591728+Ross0101@users.noreply.github.com> Date: Sat, 6 Jul 2019 15:31:41 +0800 Subject: [PATCH 12/25] Update nacos-config-benchmark.json --- zh-cn/docs/nacos-config-benchmark.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/docs/nacos-config-benchmark.json b/zh-cn/docs/nacos-config-benchmark.json index 21f4cba98ff..bced31a53ed 100644 --- a/zh-cn/docs/nacos-config-benchmark.json +++ b/zh-cn/docs/nacos-config-benchmark.json @@ -1,10 +1,10 @@ { "filename": "nacos-config-benchmark.md", - "__html": "

      Nacos服务配置性能测试报告

      \n

      测试目的

      \n

      主要让大家了解Nacos的性能负载和容量,协助我们更好的管理Nacos性能质量,帮助用户更快的运用评估Nacos系统负荷。

      \n

      测试工具

      \n

      我们使用自研的PAS性能评估服务平台进行压测,其原理是基于利用JMeter引擎,使用PAS自动生成的JMeter脚本,进行智能压测。

      \n

      \"IMAGE\"

      \n

      测试环境

      \n

      1.环境

      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
      指标参数
      机器CPU 8核,内存16G
      集群规模单机,3节点,10节点,100节点
      Nacos版本0.8.0
      数据库32C128G
      \n

      2.设置启动参数

      \n
      /opt/taobao/java/bin/java -server -Xms4g -Xmx4g -Xmn2g \n-XX:MetaspaceSize=128m \n-XX:MaxMetaspaceSize=320m \n-Xdebug \n-Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n \n-XX:+UseConcMarkSweepGC \n-XX:+UseCMSCompactAtFullCollection \n-XX:CMSInitiatingOccupancyFraction=70 \n-XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 \n-XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 \n-XX:-UseParNewGC -verbose:gc -Xloggc:/home/admin/nacos/logs/nacos_gc.log \n-XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime \n-XX:+PrintAdaptiveSizePolicy -Dnacos.home=/home/admin/nacos -XX:-OmitStackTraceInFastThrow \n-XX:-UseLargePages -jar /home/admin/nacos/target/nacos-server.jar \n--spring.config.location=classpath:/,classpath:/config/,file:./,file:./config/,file:/home/admin/nacos/conf/\n
      \n

      测试场景

      \n

      以下测试场景都是服务配置重要接口:

      \n
        \n
      • 验证Nacos服务发布配置的能力
      • \n
      • 验证Nacos服务获取配置的能力
      • \n
      • 验证Nacos服务监听配置的能力
      • \n
      • 验证Nacos服务长连接容量能力
      • \n
      \n

      测试数据

      \n

      1. 发布配置

      \n

      发布配置主要测试Nacos publishConfig接口的性能。
      \n在各规模集群的性能表现:

      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
      单机3节点10节点100节点
      1400421468638626
      \n

      具体我们看下3节点服务集群发布配置能力。
      \n以下为各个并发数 (施压机台数*并发数) 时,发布配置的TPS,平均RT。\n\"IMAGE\"\n\"IMAGE\"

      \n

      2. 获取配置

      \n

      获取配置对Nacos getConfig接口进行测试。
      \n实测在各个规模集群的性能表现:

      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
      单机3节点10节点100节点
      150002301345000161099
      \n

      具体我们也看下3节点服务集群获取配置能力,
      \n以下为各个并发数 (施压机台数*并发数) 时,获取配置的TPS,平均RT。\n\"IMAGE\"\n\"IMAGE\"

      \n

      3. 监听配置

      \n

      执行Nacos addListeners的接口的性能, 监听配置主要采用增加多个配置监听,并多次发布配置的方法,统计发布时间与监听接收到配置时间间隔。
      \n我们选取了几个点,列举了发布与监听时间差,在100ms内基本都能监听到配置的更改。

      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
      次数发布与监听时间差(ms)
      163
      253
      384
      473
      546
      635
      773
      8183
      9104
      \n

      4. 长连接容量测试

      \n

      Nacos监听配置与客户端建立长连接,长连接会消耗服务内存,从而集群load增高。建立长连接容量的能力,主要考查配置监听的瓶颈。
      \n测试方法逐渐增加集群的连接,单机连接达到9000时,CPU: 13.9% 内存:18.8%,load:4.7,都处于正常状态,连接数量增加后,load会成倍数级增加。
      \n在各规模集群测试基本上符合验证。

      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
      单机3节点10节点100节点
      90002700090000910000
      \n

      测试结论

      \n

      Nacos性能测试都是针对重点功能,通过对各规模集群进行压测,可以看到各个集群的接口容量。
      \n本测试供给大家作为参考,如有不足或偏差,请指正!
      \n如果对性能有其他需求,可以给我们提issue。

      \n", + "__html": "

      Nacos服务配置性能测试报告

      \n

      测试目的

      \n

      主要让大家了解Nacos的性能负载和容量,协助我们更好的管理Nacos性能质量,帮助用户更快的运用评估Nacos系统负荷。

      \n

      测试工具

      \n

      我们使用自研的PAS性能评估服务平台进行压测,其原理是基于利用JMeter引擎,使用PAS自动生成的JMeter脚本,进行智能压测。

      \n

      \"IMAGE\"

      \n

      测试环境

      \n

      1.环境

      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
      指标参数
      机器CPU 8核,内存16G
      集群规模单机,3节点,10节点,100节点
      Nacos版本0.8.0
      数据库32C128G
      \n

      2.设置启动参数

      \n
      /opt/taobao/java/bin/java -server -Xms4g -Xmx4g -Xmn2g \n-XX:MetaspaceSize=128m \n-XX:MaxMetaspaceSize=320m \n-Xdebug \n-Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n \n-XX:+UseConcMarkSweepGC \n-XX:+UseCMSCompactAtFullCollection \n-XX:CMSInitiatingOccupancyFraction=70 \n-XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 \n-XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 \n-XX:-UseParNewGC -verbose:gc -Xloggc:/home/admin/nacos/logs/nacos_gc.log \n-XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime \n-XX:+PrintAdaptiveSizePolicy -Dnacos.home=/home/admin/nacos -XX:-OmitStackTraceInFastThrow \n-XX:-UseLargePages -jar /home/admin/nacos/target/nacos-server.jar \n--spring.config.location=classpath:/,classpath:/config/,file:./,file:./config/,file:/home/admin/nacos/conf/\n
      \n

      测试场景

      \n

      以下测试场景都是服务配置重要接口:

      \n
        \n
      • 验证Nacos服务发布配置的能力
      • \n
      • 验证Nacos服务获取配置的能力
      • \n
      • 验证Nacos服务监听配置的能力
      • \n
      • 验证Nacos服务长连接容量能力
      • \n
      \n

      测试数据

      \n

      1. 发布配置

      \n

      发布配置主要测试Nacos publishConfig接口的性能。
      \n在各规模集群的性能表现:

      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
      单机3节点10节点100节点
      1400421468638626
      \n

      具体我们看下3节点服务集群发布配置能力。
      \n以下为各个并发数 (施压机台数*并发数) 时,发布配置的TPS,平均RT。\n\"IMAGE\"\n\"IMAGE\"

      \n

      2. 获取配置

      \n

      获取配置对Nacos getConfig接口进行测试。
      \n实测在各个规模集群的性能表现:

      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
      单机3节点10节点100节点
      150002301345000161099
      \n

      具体我们也看下3节点服务集群获取配置能力,以下为各个并发数 (施压机台数*并发数) 时,获取配置的TPS,平均RT。\n\"IMAGE\"\n\"IMAGE\"

      \n

      3. 监听配置

      \n

      执行Nacos addListeners的接口的性能, 监听配置主要采用增加多个配置监听,并多次发布配置的方法,统计发布时间与监听接收到配置时间间隔。
      \n我们选取了几个点,列举了发布与监听时间差,在100ms内基本都能监听到配置的更改。

      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
      次数发布与监听时间差(ms)
      163
      253
      384
      473
      546
      635
      773
      8183
      9104
      \n

      4. 长连接容量测试

      \n

      Nacos监听配置与客户端建立长连接,长连接会消耗服务内存,从而集群load增高。建立长连接容量的能力,主要考查配置监听的瓶颈。
      \n测试方法逐渐增加集群的连接,单机连接达到9000时,CPU: 13.9% 内存:18.8%,load:4.7,都处于正常状态,连接数量增加后,load会成倍数级增加。
      \n在各规模集群测试基本上符合验证。

      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
      单机3节点10节点100节点
      90002700090000910000
      \n

      测试结论

      \n

      Nacos性能测试都是针对重点功能,通过对各规模集群进行压测,可以看到各个集群的接口容量。
      \n本测试供给大家作为参考,如有不足或偏差,请指正!
      \n如果对性能有其他需求,可以给我们提issue。

      \n", "link": "/zh-cn/docs/nacos-config-benchmark.html", "meta": { "title": "Nacos服务配置性能测试报告", "keywords": "Nacos,服务,配置,性能", "description": "Nacos服务配置性能测试报告" } -} \ No newline at end of file +} From 5f2bcbf65f4bf6b67f7df2aff64b8ff2e2e53036 Mon Sep 17 00:00:00 2001 From: Marcia Xu <48591728+Ross0101@users.noreply.github.com> Date: Sat, 6 Jul 2019 15:33:27 +0800 Subject: [PATCH 13/25] Translation nacos sync use.md --- docs/en-us/nacos-sync-use.md | 178 ++++++++++++++++------------------- 1 file changed, 83 insertions(+), 95 deletions(-) diff --git a/docs/en-us/nacos-sync-use.md b/docs/en-us/nacos-sync-use.md index 6cbdbb99fd7..ed16ea105e9 100644 --- a/docs/en-us/nacos-sync-use.md +++ b/docs/en-us/nacos-sync-use.md @@ -1,24 +1,26 @@ -# NacosSync迁移用户手册 - - -## 手册目标 -* 启动NacosSync服务 -* 通过一个简单的例子,演示如何将注册到Zookeeper的Dubbo客户端迁移到Nacos - -## 系统需要 -启动服务之前,你需要安装下面的服务: +--- +title: NacosSync migration user guide +keywords: NacosSync,migration,user guide +description: NacosSync migration user manual +--- + +# NacosSync migration user guide + +## Guide purposes +* Start NacosSync service +* By a simple example, demonstrates how to register to the Zookeeper Dubbo client migrated to Nacos. + +## Preparatory work +Before you start the service, you need to install the following services: * 64bit OS: Linux/Unix/Mac/Windows supported, Linux/Unix/Mac recommended. * 64bit JDK 1.8+: [downloads](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html), [JAVA_HOME settings](https://docs.oracle.com/cd/E19182-01/820-7851/inst_cli_jdk_javahome_t/). * Maven 3.2.x+: [downloads](https://maven.apache.org/download.cgi), [settings](https://maven.apache.org/settings.html). * MySql 5.6.+ - - -## 获取安装包 -有2种方式可以获得NacosSync的安装包: -* 直接下载NacosSync的二进制安装包(下载最新的版本 https://github.com/nacos-group/nacos-sync/releases) -[nacosSync.${version}.zip](https://github.com/nacos-group/nacos-sync/releases) -* 从GitHub上下载NacosSync的源码进行构建 +## Get the installation package +There are two ways to obtain NacosSync installation package: +* Direct download NacosSync binary installation package:[nacosSync.${version}.zip](https://github.com/nacos-group/nacos-sync/releases) +* Download NacosSync source to build from the Github Package: ```basic @@ -26,12 +28,12 @@ cd nacosSync/ mvn clean package -U ``` -目标文件的路径: +The path of the target file: ```basic nacos-sync/nacossync-distribution/target/nacosSync.${version}.zip ``` -解压安装包之后,工程的文件目录结构: +Unpack the installation package, project file directory structure: ```basic nacosSync ├── LICENSE @@ -46,106 +48,99 @@ nacosSync ├── logs └── nacosSync-server.${version}.jar ``` - -### - -## 初始化DB -系统默认配置的数据库是MySql,也能支持其他的关系型数据库 -1. 建库,缺省的数据库名字为“nacos_Sync” -1. 数据库表不需要单独创建,默认使用了hibernate的自动建表功能 -1. 如果你的环境不支持自动建表,可以使用系统自带的sql脚本建表,脚本放在bin目录下 +## Initialize the database - -## DB配置 +The system default configuration database is Mysql, can also support other relational database. +1.The database construction, the default database name for "nacos_Sync". +2.The database table don't need to create separately, using the hibernate automatically by default build table function. +3.If you do not support automatic table, you can use the system's own build table SQL script, the script in the bin directory. -DB的配置文件放在conf/application.properties中: +## Database configuration + +Database configuration file on `conf/application.properties`: ```basic spring.datasource.url=jdbc:mysql://127.0.0.1:3306/nacos_sync?characterEncoding=utf8 spring.datasource.username=root spring.datasource.password=root ``` - -## 启动服务器 +## Start server ```bash $ nacosSync/bin: sh startup.sh restart ``` - -## 检查系统状态 +## Check system status + +1.Check system log + +The path of the log in `nacosSync/logs/nacosSync.log`, check whether there are abnormal information. + +2.Check system port + +Port is the default system `8081`, you can define your own `application.properties`. -1.系统日志检查
      日志的路径在 nacosSync/logs/nacosSync.log,检查是否有异常信息
      2.检查系统端口(缺省的系统端口是8081,你可以自己定义在application.properties中) ```bash $netstat -ano|grep 8081 tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN off (0.00/0/0) ``` - -## 控制台 -访问路径: +## Console + +Access path: ``` http://127.0.0.1:8081/#/serviceSync ``` - - ![image.png](https://img.alicdn.com/tfs/TB1EKbkJ3HqK1RjSZFEXXcGMXXa-2866-606.png) -如果检查没有问题,NacosSync已经正常启动了,NacosSync的部署结构:
      ![image.png](https://img.alicdn.com/tfs/TB107nfJ9zqK1RjSZFjXXblCFXa-1412-342.png) +If there is no problem, check NacosSync has begun, normal NacosSync deployment structure:![image.png](https://img.alicdn.com/tfs/TB107nfJ9zqK1RjSZFjXXblCFXa-1412-342.png) - -## 开始迁移 +## Starting migration - -### 迁移信息 +### Migration information -Dubbo服务的部署信息:
      ![image.png](https://img.alicdn.com/tfs/TB1Ci_eJ4TpK1RjSZR0XXbEwXXa-938-700.png) +Dubbo service deployment information:![image.png](https://img.alicdn.com/tfs/TB1Ci_eJ4TpK1RjSZR0XXbEwXXa-938-700.png) -迁移的服务: +The migration of services: | Service Name | Version | Group Name | | --- | --- | --- | | com.alibaba.nacos.api.DemoService | 1.0.0 | zk | +### Add the registry cluster information - -### 添加注册中心集群信息 - -1.点击左侧导航栏中的“集群配置”按钮,新增加一个集群,先增加一个Zookeeper集群,选择集群类型为ZK
      +1.Click on the "cluster configuration" button in the left navigation bar, a new cluster, first add a Zookeeper cluster, select the cluster type for ZK. ![image.png](https://img.alicdn.com/tfs/TB1oJDnJ7voK1RjSZFwXXciCFXa-2870-1130.png) -> 注意:集群名字可以自定义,但是一旦确认,不能被修改,否则基于此集群增加的任务,在NacosSync重启后,将不会恢复成功 - +> Note: the cluster name can customize, but once confirmed, cannot be modified, otherwise increase task based on the cluster, after NacosSync restart, success will not resume. -2.同样的步骤,增加NacosSync集群
      +2.The same steps, increase NacosSync cluster. ![image.png](https://img.alicdn.com/tfs/TB1HQPhJVzqK1RjSZFCXXbbxVXa-2846-1042.png) -添加完成后,可以在列表中查询到
      +3.After the completion of the add, can inquire on the list: ![image.png](https://img.alicdn.com/tfs/TB1AX6fJVYqK1RjSZLeXXbXppXa-2864-824.png) +### Add the synchronization task - -### 添加同步任务 - -1.增加一个同步任务,从Zookeeper集群同步到Nacos集群,同步的粒度是服务,Zookeeper集群则称为源集群,Nacos集群称为目标集群
      +1. Add a sync task, from Zookeeper cluster synchronization to Nacos cluster, synchronous granularity is service, it is called a Zookeeper cluster source cluster, Nacos cluster called target cluster. ![imagesd.png](https://img.alicdn.com/tfs/TB1tF_fJVYqK1RjSZLeXXbXppXa-2838-1138.png) -添加完成之后,可以在服务同步列表中,查看已添加的同步任务:
      +Add finished, can be in service sync list, view has add synchronization task: ![image.png](https://img.alicdn.com/tfs/TB1l6uJJ9zqK1RjSZPcXXbTepXa-2824-570.png) -2.同步完成之后,检查下数据是否同步成功到Nacos集群,可以通过Nacos的控制台进行查询
      +2. The synchronization is completed, check whether the data synchronization to success Nacos cluster, can query through the Nacos console. ![image.png](https://img.alicdn.com/tfs/TB1tPneJ4TpK1RjSZR0XXbEwXXa-2872-828.png) -此刻,数据已经成功从Zookeeper集群同步到了Nacos集群,部署结构如下: - +3. At the moment, the data has been successfully from Zookeeper cluster synchronization to Nacos cluster, the deployment structure is as follows: ![image.png](https://img.alicdn.com/tfs/TB14kriJ6TpK1RjSZKPXXa3UpXa-1724-772.png) - -### 让Dubbo客户端连接到Nacos注册中心 - -#### Dubbo Consumer客户端迁移 -Dubbo 已经支持Nacos注册中心,支持的版本为2.5+,需要增加一个Nacos注册中心的Dubbo扩展插件依赖: + +### Dubbo clients to connect to Nacos registry + +#### Dubbo Consumer client migration + +Dubbo has supported Nacos registry, support version 2.5 +, need to add a Nacos registry of Dubbo extensions depends on: ```basic com.alibaba @@ -153,7 +148,8 @@ Dubbo 已经支持Nacos注册中心,支持的版本为2.5+,需要增加一个Nac 0.0.2 ``` -

      增加Nacos客户端的依赖: + +Increase Nacos client depends on: ```basic com.alibaba.nacos @@ -162,7 +158,7 @@ Dubbo 已经支持Nacos注册中心,支持的版本为2.5+,需要增加一个Nac ``` -配置Dubbo Consumer的Dubbo配置文件,让客户端能够找到Nacos集群
      consumer.yaml +Configuration Dubbo Consumer Dubbo profile `Consumer. The yaml`, let the client can find Nacos cluster. ```basic spring: application: @@ -176,43 +172,35 @@ dubbo: address: nacos://127.0.0.1:8848 ``` -不需要修改代码,配置更新完毕之后 ,你就可以重启你的应用,使之生效了. +Don't need to modify the code, configuration after the update, you can restart your application into law. -Consumer发布完成之后,目前的部署结构如下:
      +Consumer release is completed, the deployment of the structure is as follows: ![image.png](https://img.alicdn.com/tfs/TB181fkJ3HqK1RjSZFEXXcGMXXa-1734-878.png) - -#### Dubbo Provider迁移 -在升级Provider之前,你需要确保该Provider发布的服务,都已经配置在NacosSync中,同步的方式为从Nacos同步到Zookeeper,因为Provider升级连接到Nacos之后,需要确保老的Dubbo Consumer客户端能够在Zookeeper上订阅到该Provider的地址,现在,我们增加一个同步任务:
      +#### Dubbo Provider migration + +Before you upgrade the Provider, you need to ensure that the Provider of services, are already configured in NacosSync, synchronous way from Nacos synchronization to Zookeeper, because the Provider connected to Nacos upgrade, you need to make sure that the old Dubbo Consumer client can subscribe to the Provider's address in the Zookeeper, now, we add a sync task: ![image.png](https://img.alicdn.com/tfs/TB1pdDnJ7voK1RjSZFwXXciCFXa-2872-1060.png) -
      + ![image.png](https://img.alicdn.com/tfs/TB19Ey_J6DpK1RjSZFrXXa78VXa-2842-660.png) -> 注意:Nacos服务同步到Zookeeper,不需要填写版本号,你在选择源集群的时候,版本号的输入框会自动隐藏掉 +> Note: Nacos synchronization to the Zookeeper service, do not need to fill in the version number, you in choosing the source cluster, the version number of the input box automatically hidden. +Sync task is completed, you can upgrade the Provider, upgrade the Provider method, reference to upgrade the Consumer steps. -同步任务完成后,你就可以升级Provider了,升级Provider的方法,参考升级Consumer的步骤. - -### 新的部署结构 -* 在升级的过程中,会有新老版本的客户端同时存在,部署结构如下: +### New deployment structure +* In the process of upgrading, there will be new and old versions of the client at the same time, the deployment structure is as follows: ![image.png](https://img.alicdn.com/tfs/TB14Y_iJ3HqK1RjSZFPXXcwapXa-1728-838.png) -* 在所有的客户端迁移完成之后,部署结构如下: - -![image.png](https://img.alicdn.com/tfs/TB1Cg2dJYvpK1RjSZPiXXbmwXXa-1466-864.png) - -现在,Zookeeper集群,NacosSync集群就可以下线了. - - -### 注意事项 -* 同步任务添加之后,需要确保下服务是否成功同步到目标集群,可以通过目标集群的控制台进行查询 -* NacosSync支持高可用集群模式部署,你只需要把数据库配置成同一个即可 -* 如果梳理不清楚订阅和发布的服务,建议可以把服务都做双向同步 -* Dubbo客户端目前不支持Nacos的权重功能,如果你用到了权重功能,需要重新考虑一下方案是否合适 - - - +* All client migration is completed, the deployment structure is as follows: +![image.png](https://img.alicdn.com/tfs/TB1Cg2dJYvpK1RjSZPiXXbmwXXa-1466-864.png) +Now, the Zookeeper cluster, NacosSync cluster can get offline. +### Attention +* Synchronization task after adding, you need to ensure that the service is successful sync to the target cluster, can through the console the target cluster. +* NacosSync support high availability cluster pattern deployment, you only need to put the database can be configured to the same. +* Comb if not clear subscription and published service, suggested can do services are two-way synchronous. +* Dubbo client currently does not support Nacos weighting function, if you are using the weight function, need to reconsider the plan. From c155bed22835ff657e037e3039f616af11c2cdf2 Mon Sep 17 00:00:00 2001 From: Marcia Xu <48591728+Ross0101@users.noreply.github.com> Date: Sat, 6 Jul 2019 15:34:14 +0800 Subject: [PATCH 14/25] Translation namespace endpoint best practices.md --- .../namespace-endpoint-best-practices.md | 142 ++++++++---------- 1 file changed, 62 insertions(+), 80 deletions(-) diff --git a/docs/en-us/namespace-endpoint-best-practices.md b/docs/en-us/namespace-endpoint-best-practices.md index b883ae1ea70..64094cbdbb7 100644 --- a/docs/en-us/namespace-endpoint-best-practices.md +++ b/docs/en-us/namespace-endpoint-best-practices.md @@ -1,137 +1,119 @@ -# namespace, endpoint 最佳实践 +--- +title: Namespace,endpoint best practices +keywords: namespace,endpoint,best practices +description: With using Nacos enterprises more and more, the two most frequently encountered problem is: how to use in my production environment right namespace and the endpoint. +--- +# Namespace, endpoint best practices -随着使用 Nacos 的企业越来越多,遇到的最频繁的两个问题就是:如何在我的生产环境正确的来使用 namespace 以及 endpoint。这篇文章主要就是针对这两个问题来聊聊使用 nacos 过程中关于这两个参数配置的最佳实践方式。 - +With using Nacos enterprises more and more, the two most frequently encountered problem is: how to use in my production environment right namespace and the endpoint. ## namespce -关于 namespace ,以下主要从 **namespace 的设计背景** 和 **namespace 的最佳实践** 两个方面来讨论。 - -### namespace 的设计背景 +Regarding the namespace, the following main from **namespace design background** and **namespace best practice** two aspects to discuss. -namespace 的设计是 nacos 基于此做多环境以及多租户数据(**配置和服务**)隔离的。即: +### namespace design background -* 从一个租户(用户)的角度来看,如果有多套不同的环境,那么这个时候可以根据指定的环境来创建不同的 namespce,以此来实现多环境的隔离。例如,你可能有日常,预发和生产三个不同的环境,那么使用一套 nacos 集群可以分别建以下三个不同的 namespace。如下图所示: +Namespace design is made more nacos based on this environment and multi-tenant data (**configuration and service**) of isolation.That is: -
      - -
      +* From the point of view of a tenant (user), if there are many different environment, so this time can be specified according to the environment to create different namespce, in order to realize the environment isolation.For example, you might be everyday, pretest and the production of three different environment, then use a nacos cluster can build the following three different namespace. As shown in the figure below: +![](http://edas.oss-cn-hangzhou.aliyuncs.com/deshao/pictures/nacos_ingle_tenant_namespace.jpg) -* 从多个租户(用户)的角度来看,每个租户(用户)可能会有自己的 namespace,每个租户(用户)的配置数据以及注册的服务数据都会归属到自己的 namespace 下,以此来实现多租户间的数据隔离。例如超级管理员分配了三个租户,分别为张三、李四和王五。分配好了之后,各租户用自己的账户名和密码登录后,创建自己的命名空间。如下图所示。 +* from the point of view of multiple tenants (user), each tenant (user) may have its own namespace, each tenant configuration data (user) and registered service data belonging to its own namespace, so as to achieve the multi-tenant isolation between the data.For example the supervisor assigned three tenants, San Zhang, Si Li and Wu Wang respectively.Distribution of good, after all the tenants on their own account name and password after logging in, create your own namespace. As shown in the figure below: -
      - -
      +![](http://edas.oss-cn-hangzhou.aliyuncs.com/deshao/pictures/nacos_multi_tenant_namespace.jpg) - **注意:** 该功能还在规划中。 + **Note:** This feature is still in planning. -## namespace 的最佳实践 - - -关于 namespace 的最佳实践 ,这部分主要包含有两个 Action: +### namespace best practices -* 如何来获取 namespace 的值 -* namespace 参数初始化方式 +Best practices on the namespace, this part mainly consists of two actions: -### 如何来获取 namespace 的值 +* How to obtain the value of the namespace +* The namespace parameters initialization method +### How to obtain the value of the namespace -无论您是基于 Spring Cloud 或者 Dubbo 来使用 nacos,都会涉及到 namespace 的参数输入,那么这个时候 namespace 的值从哪里可以获取呢? +Whether you are based on Spring Cloud or Dubbo to use nacos, involve namespace parameter input, so when the value of the namespace from where can I get? -1. 如果您在使用过程中没有感知到这个参数的输入,那么 nacos 统一会使用一个默认的 namespace 作为输入,nacos naming 会使用 **public** 作为默认的参数来初始化,nacos config 会使用一个**空字符串**作为默认的参数来初始化。。 +1. If you are using is not aware to this parameter in the process of input, then nacos unified will use a default namespace as input, nacos naming will use **public** as the default parameters to initialize, nacos config will use an **empty string** as the default parameters to initialize. -1. 如果您需要自定义自己的 namespace,那么这个值该怎么来产生? +2. If you need to customize your own namespace, then the value how to produce? - 可以在 nacos 的控制台左边功能侧看到有一个 **命名空间** 的功能,点击就可以看到 **新建命名空间** 的按钮,那么这个时候就可以创建自己的命名空间了。创建成功之后,会生成一个**命名空间ID**,主要是用来避免**命名空间名称**有可能会出现重名的情况。因此当您在应用中需要配置指定的 namespace 时,**填入的是命名空间ID**。重要的事情说三遍, + Can see on the console function of the left side of the nacos has the function of a **namespace**, click on the **new namespace** can see button, so this time you can create your own namespace.Create success, generates a **namespace ID**, is mainly used to avoid **namespace name** namesake, is likely to happen. So when you need to configure the specified namespace in the application, **fill in it is the namespace ID**.The important things three times: - 1. 当您在应用中需要配置指定的 namespace 时,**填入的是命名空间 ID** - 2. 当您在应用中需要配置指定的 namespace 时,**填入的是命名空间 ID** - 3. 当您在应用中需要配置指定的 namespace 时,**填入的是命名空间 ID** + 1. When you need to configure the specified namespace in the application, **fill in it isthe namespace ID**. + 2. When you need to configure the specified namespace in the application, **fill in it isthe namespace ID**. + 3. When you need to configure the specified namespace in the application, **fill in it isthe namespace ID**. +Namesace for **public** is nacos a retain control, if you need to create your own namespace, it is best not to **public** and name repetition, to an actual business scenarios have specific semantic named after, lest bring literally a namespace which is not easy to distinguish himself. -说明: namesace 为 **public** 是 nacos 的一个保留控件,如果您需要创建自己的 namespace,最好不要和 **public** 重名,以一个实际业务场景有具体语义的名字来命名,以免带来字面上不容易区分自己是哪一个 namespace。 +### namespace parameters initialization method +Nacos client for namespace initialization process as shown in the figure below: -### namespace 参数初始化方式 +![](http://edas.oss-cn-hangzhou.aliyuncs.com/deshao/pictures/nacos_init_namespace_plus.jpg) +Nacos client initialization of the namespace contains two main parts: -nacos client 对 namespace 的初始化流程如下图所示: +* User mode by nacos client through the properties in the instance structure parameters was introduced into the namespace. +* In a cloud environment (**Alibaba cloud of EDAS**) of the namespace argument parsing. -
      - -
      + By **-Duse.cloud.namespace.parsing=true/false** whether you need to control in a cloud environment automatic parsing namespace parameter, the default value is **true**, is automatically parsed, its purpose is convenient when the user on the cloud can be smooth on the cloud in the form of zero cost.If the user on the cloud under the need to use the self-built nacos namespace, that this time you only need to **-Duse.cloud.namespace.parsing=false**. +## endpoint -nacos client 对 namespace 的初始化,主要包含两部分, +On the endpoint, and mainly from the **the design background of endpoint** and **the endpoint parameters initialization** two aspects to discuss. -* 用户态通过 nacos client 构造实例时通过 properties 参数传入的 namespace - -* 在云环境下(**阿里云下的 EDAS**)的 namespace 参数解析。 - - 可通过 **-Duse.cloud.namespace.parsing=true/false** 来控制是否需要在云环境自动解析 namespace 参数,默认为 **true**,是会自动解析,其目的就是方便用户上云时可以以零成本的方式平滑上云。如果用户在云上需要用自建的 nacos 下的 namespace,那这个时候只需将 **-Duse.cloud.namespace.parsing=false** 即可。 - - -# endpoint +### The design background of endpoint -关于 endpoint ,也主要从 **endpoint 的设计背景** 和 **endpoint 的参数初始化** 两个方面来讨论。 +When nacos server cluster needs to enlarge shrinks, let a client needs to have a kind of ability can timely change perception to the cluster. In a timely manner to perceive the change of the cluster is realized through the endpoint.That the client will be timed to the endpoint sends a request to update the client list in memory clusters. -## endpoint 的设计背景 +### The endpoint of the initialization parameter -当 nacos server 集群需要扩缩容时,客户端需要有一种能力能够及时感知到集群发生变化。及时感知到集群的变化是通过 endpoint 来实现的。也即客户端会定时的向 endpoint 发送请求来更新客户端内存中的集群列表。 - -## endpoint 的参数初始化 - - -Nacos Client 提供一种可以对传入的 endpoint 参数规则解析的能力。即当通过构造函数的 **properties** 来初始化 endpoint 时,指定的 endpoint 值可以是一个具体的值,也可以是一个占位符的形式,如下所示: +Nacos Client provides an endpoint of the incoming parameter rules make sense of it.When through the constructor to initialize the **properties** the endpoint, the specified endpoint value can be a specific value, also can be in the form of a placeholder, as shown below: > **\${endpoint.options:defaultValue}**。 +Description: -说明: - -1. **endpoint.options** 是一个具体的变量。支持从系统属性,系统环境变量中读取。 -2. **defaultValue** 是给出的一个默认值。当从具体的变量中没有被正确初始化时,会使用给出的默认值来初始化。 +1. **endpoint.options** is a specific variable.Support from the system property, reads the system environment variables. +2. **defaultValue** is given a default value.When is not properly initialized from the specific variables, the given default value is used to initialize. -整个 endpoint 的解析规则比较复杂,整体的一个解析流程图如下所示: +The endpoint of the parsing rules is more complex, the overall flow chart of a parse is as follows: -
      - -
      +![](http://edas.oss-cn-hangzhou.aliyuncs.com/deshao/pictures/nacos_init_endpoint.jpg) +**Description:** Blue special distinction is to support a cloud environment (Alibaba cloud EDAS) automatically from the system environment variables to read in the endpoint value, in order to achieve the user local development or moving applications to the cloud with zero cost on the way to achieve a smooth of cloud. -**注意:** 蓝色特别区分的是支持云环境下(阿里云上的 EDAS)自动从系统环境变量中来读取 endpoint 值,以此来达到用户本地开发或者将应用往云上迁移的时候以零成本的改造方式实现平滑上云。 +Description: -说明: +* Open the endpoint parameters parsing rules -* 开启 endpoint 参数规则解析 + 1. If the initialization Nacos Client, not through the properties to specify the endpoint, this time from the system environment variables in called **ALIBABA\_ALIWARE\_ENDPOINT\_URL** to initialize the specified value, if the system environment variable is not set, so this time will return an empty string. - 1. 如果在初始化 Nacos Client 的时候,没有通过 properties 来指定 endpoint,这个时候会从系统环境变量中变量名为 **ALIBABA\_ALIWARE\_ENDPOINT\_URL** 指定的值来初始化,如果系统环境变量也没有设置,那么这个时候将会返回一个空字符串。 - - 2. 如果设置了 endpoint, + 2. If set the endpoint, - 1. 设置的 endpoint 是一个指定具体的值。 + 1. Set the endpoint is a specific value specified. - 这时会先从系统环境变量中变量名为 **ALIBABA\_ALIWARE\_ENDPOINT\_URL** 指定的值来初始化,如果系统环境变量没有设置,那么这个时候用用户态传入的具体值来初始化 endpoint。 + At this time will be from the system environment variables in the variables called **ALIBABA\_ALIWARE\_ENDPOINT\_URL** to initialize the specified value, if the system environment variables not set, so this time use user mode was introduced into the specific value to initialize the endpoint. - 1. 以占位符的形式输入。 + 2. Input in the form of a placeholder. - 这时会解析出具体占位符的值,然后: + Then parses the concrete placeholder value, then: - 1. 依次从系统属性和环境变量中来取值。 + 1. In order to value from the system properties and environment variables. - 例如,您输入的是 **${nacos.endpoint:defaultValue}**,那么解析出来的 占位符是 **nacos.endpoint**。解析出来后,会先读取系统属性中(**即 System.getProperty("nacos.endpoint")**)是否设置了 **nacos.endpoint** 变量值,如果没有,则会从系统环境变量中变量名为 **nacos.endpoint** 指定的值来初始化。 + For example,You input is **${nacos.endpoint:defaultValue}**, then parse out a placeholder is **nacos.endpoint**. Parsing comes out, can read first in the System properties (**System.getProperty("nacos.endpoint")**) is set up **nacos endpoint** variable values, if not, will be called from the System environment variables in the variables specified **nacos.endpoint** value to initialize. - 2. 如果通过解析出来的占位符还没有正确初始化 endpoint,则会从系统环境变量中变量名为 **ALIBABA\_ALIWARE\_ENDPOINT\_URL** 指定的值来初始化。 + 2. If by parsing out a placeholder is not properly initialized the endpoint, is from the system environment variables in called **ALIBABA\_ALIWARE\_ENDPOINT\_URL** to initialize the specified value. - 3. 如果经过以上两步还没有被初始化,这时如果您设置了默认值,这个时候就会使用默认值来初始化 endpoint,否则的话以解析出来的占位符返回。 + 3. If after the above two steps have not been initialized, then if you set the default value, this time will use the default value to initialize the endpoint, otherwise returned to parse out a placeholder. -* 关闭 endpoint 参数规则解析 +* Close the endpoint parameter parsing rules - 当关闭了 endpoint 参数规则解析的时候,这个时候就以用户态在构造 Nacos Client 时通过 properties 参数输入的 endpoint 值为主。 - - + When closed the endpoint parameter parsing rules, this time is in user mode in constructing Nacos Client through the properties parameter input values of the endpoint. -默认情况下, Nacos Client 是开启 endpoint 参数规则解析的能力。如果你想关闭该能力,可在 Nacos Client 初始化的时候在传入的 properties 实例中指定 key 为 **isUseEndpointParsingRule**,值为 **false** 即可关闭。 \ No newline at end of file +By default, Nacos Client is the ability to open the endpoint parameter parsing rules. If you want to close the ability, can be in Nacos Client initialization when the incoming instances of the properties specified in the key to **isUseEndpointParsingRule**, **false** value is can be closed. From 0c9d8500b10600354beb4a40a044b37ebef2135c Mon Sep 17 00:00:00 2001 From: Marcia Xu <48591728+Ross0101@users.noreply.github.com> Date: Sat, 6 Jul 2019 15:36:31 +0800 Subject: [PATCH 15/25] Fix SEO header bug --- docs/en-us/namespace-endpoint-best-practices.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en-us/namespace-endpoint-best-practices.md b/docs/en-us/namespace-endpoint-best-practices.md index 64094cbdbb7..a9b4d4063b1 100644 --- a/docs/en-us/namespace-endpoint-best-practices.md +++ b/docs/en-us/namespace-endpoint-best-practices.md @@ -1,7 +1,7 @@ --- title: Namespace,endpoint best practices keywords: namespace,endpoint,best practices -description: With using Nacos enterprises more and more, the two most frequently encountered problem is: how to use in my production environment right namespace and the endpoint. +description: With using Nacos enterprises more and more,the two most frequently encountered problem is:how to use in my production environment right namespace and the endpoint. --- # Namespace, endpoint best practices From ef630ebd59d3c5070dd5eb681d139b6e5c98e967 Mon Sep 17 00:00:00 2001 From: Marcia Xu <48591728+Ross0101@users.noreply.github.com> Date: Sat, 6 Jul 2019 15:37:08 +0800 Subject: [PATCH 16/25] Update nacos-sync-use.md --- docs/zh-cn/nacos-sync-use.md | 150 ++++++++++++++++------------------- 1 file changed, 69 insertions(+), 81 deletions(-) diff --git a/docs/zh-cn/nacos-sync-use.md b/docs/zh-cn/nacos-sync-use.md index 6cbdbb99fd7..6e0c1115275 100644 --- a/docs/zh-cn/nacos-sync-use.md +++ b/docs/zh-cn/nacos-sync-use.md @@ -1,24 +1,26 @@ -# NacosSync迁移用户手册 +--- +title: NacosSync 迁移用户手册 +keywords: NacosSync,迁移,用户手册 +description: NacosSync 迁移用户手册 +--- + +# NacosSync 迁移用户手册 - ## 手册目标 -* 启动NacosSync服务 -* 通过一个简单的例子,演示如何将注册到Zookeeper的Dubbo客户端迁移到Nacos - -## 系统需要 -启动服务之前,你需要安装下面的服务: +* 启动 NacosSync 服务 +* 通过一个简单的例子,演示如何将注册到 Zookeeper 的 Dubbo 客户端迁移到 Nacos。 + +## 准备工作 +启动服务之前,你需要安装下面的服务: * 64bit OS: Linux/Unix/Mac/Windows supported, Linux/Unix/Mac recommended. * 64bit JDK 1.8+: [downloads](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html), [JAVA_HOME settings](https://docs.oracle.com/cd/E19182-01/820-7851/inst_cli_jdk_javahome_t/). * Maven 3.2.x+: [downloads](https://maven.apache.org/download.cgi), [settings](https://maven.apache.org/settings.html). * MySql 5.6.+ - ## 获取安装包 -有2种方式可以获得NacosSync的安装包: -* 直接下载NacosSync的二进制安装包(下载最新的版本 https://github.com/nacos-group/nacos-sync/releases) - -[nacosSync.${version}.zip](https://github.com/nacos-group/nacos-sync/releases) -* 从GitHub上下载NacosSync的源码进行构建 +有两种方式可以获得 NacosSync 的安装包: +* 直接下载 NacosSync 的二进制安装包:[nacosSync.${version}.zip](https://github.com/nacos-group/nacos-sync/releases) +* 从 GitHub 上下载 NacosSync 的源码进行构建 Package: ```basic @@ -26,12 +28,12 @@ cd nacosSync/ mvn clean package -U ``` -目标文件的路径: +目标文件的路径: ```basic nacos-sync/nacossync-distribution/target/nacosSync.${version}.zip ``` -解压安装包之后,工程的文件目录结构: +解压安装包之后,工程的文件目录结构: ```basic nacosSync ├── LICENSE @@ -46,27 +48,23 @@ nacosSync ├── logs └── nacosSync-server.${version}.jar ``` - -### - -## 初始化DB -系统默认配置的数据库是MySql,也能支持其他的关系型数据库 -1. 建库,缺省的数据库名字为“nacos_Sync” -1. 数据库表不需要单独创建,默认使用了hibernate的自动建表功能 -1. 如果你的环境不支持自动建表,可以使用系统自带的sql脚本建表,脚本放在bin目录下 +## 初始化数据库 + +系统默认配置的数据库是Mysql,也能支持其他的关系型数据库。 +1.建库,缺省的数据库名字为“nacos_Sync”。 +2.数据库表不需要单独创建,默认使用了hibernate的自动建表功能。 +3.如果你的环境不支持自动建表,可以使用系统自带的sql脚本建表,脚本放在bin目录下。 - -## DB配置 +## 数据库配置 -DB的配置文件放在conf/application.properties中: +数据库的配置文件放在`conf/application.properties`中: ```basic spring.datasource.url=jdbc:mysql://127.0.0.1:3306/nacos_sync?characterEncoding=utf8 spring.datasource.username=root spring.datasource.password=root ``` - ## 启动服务器 ```bash @@ -74,78 +72,75 @@ $ nacosSync/bin: sh startup.sh restart ``` - ## 检查系统状态 -1.系统日志检查
      日志的路径在 nacosSync/logs/nacosSync.log,检查是否有异常信息
      2.检查系统端口(缺省的系统端口是8081,你可以自己定义在application.properties中) +1.检查系统日志 + +日志的路径在`nacosSync/logs/nacosSync.log`,检查是否有异常信息。 + +2.检查系统端口 + +缺省的系统端口是`8081`,你可以自己定义在`application.properties`中。 + ```bash $netstat -ano|grep 8081 tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN off (0.00/0/0) ``` - ## 控制台 -访问路径: + +访问路径: ``` http://127.0.0.1:8081/#/serviceSync ``` - - ![image.png](https://img.alicdn.com/tfs/TB1EKbkJ3HqK1RjSZFEXXcGMXXa-2866-606.png) -如果检查没有问题,NacosSync已经正常启动了,NacosSync的部署结构:
      ![image.png](https://img.alicdn.com/tfs/TB107nfJ9zqK1RjSZFjXXblCFXa-1412-342.png) +如果检查没有问题,NacosSync 已经正常启动了,NacosSync 的部署结构:![image.png](https://img.alicdn.com/tfs/TB107nfJ9zqK1RjSZFjXXblCFXa-1412-342.png) - ## 开始迁移 - ### 迁移信息 -Dubbo服务的部署信息:
      ![image.png](https://img.alicdn.com/tfs/TB1Ci_eJ4TpK1RjSZR0XXbEwXXa-938-700.png) +Dubbo服务的部署信息:![image.png](https://img.alicdn.com/tfs/TB1Ci_eJ4TpK1RjSZR0XXbEwXXa-938-700.png) -迁移的服务: +迁移的服务: | Service Name | Version | Group Name | | --- | --- | --- | | com.alibaba.nacos.api.DemoService | 1.0.0 | zk | - - ### 添加注册中心集群信息 -1.点击左侧导航栏中的“集群配置”按钮,新增加一个集群,先增加一个Zookeeper集群,选择集群类型为ZK
      +1.点击左侧导航栏中的“集群配置”按钮,新增加一个集群,先增加一个Zookeeper集群,选择集群类型为ZK。 ![image.png](https://img.alicdn.com/tfs/TB1oJDnJ7voK1RjSZFwXXciCFXa-2870-1130.png) -> 注意:集群名字可以自定义,但是一旦确认,不能被修改,否则基于此集群增加的任务,在NacosSync重启后,将不会恢复成功 +> 注意:集群名字可以自定义,但是一旦确认,不能被修改,否则基于此集群增加的任务,在 NacosSync 重启后,将不会恢复成功。 - -2.同样的步骤,增加NacosSync集群
      +2.同样的步骤,增加NacosSync集群。 ![image.png](https://img.alicdn.com/tfs/TB1HQPhJVzqK1RjSZFCXXbbxVXa-2846-1042.png) -添加完成后,可以在列表中查询到
      +3.添加完成后,可以在列表中查询到: ![image.png](https://img.alicdn.com/tfs/TB1AX6fJVYqK1RjSZLeXXbXppXa-2864-824.png) - - ### 添加同步任务 -1.增加一个同步任务,从Zookeeper集群同步到Nacos集群,同步的粒度是服务,Zookeeper集群则称为源集群,Nacos集群称为目标集群
      +1.增加一个同步任务,从Zookeeper集群同步到Nacos集群,同步的粒度是服务,Zookeeper集群则称为源集群,Nacos集群称为目标集群。 ![imagesd.png](https://img.alicdn.com/tfs/TB1tF_fJVYqK1RjSZLeXXbXppXa-2838-1138.png) -添加完成之后,可以在服务同步列表中,查看已添加的同步任务:
      +添加完成之后,可以在服务同步列表中,查看已添加的同步任务: ![image.png](https://img.alicdn.com/tfs/TB1l6uJJ9zqK1RjSZPcXXbTepXa-2824-570.png) -2.同步完成之后,检查下数据是否同步成功到Nacos集群,可以通过Nacos的控制台进行查询
      +2.同步完成之后,检查下数据是否同步成功到Nacos集群,可以通过Nacos的控制台进行查询。 ![image.png](https://img.alicdn.com/tfs/TB1tPneJ4TpK1RjSZR0XXbEwXXa-2872-828.png) -此刻,数据已经成功从Zookeeper集群同步到了Nacos集群,部署结构如下: - +3.此刻,数据已经成功从Zookeeper集群同步到了Nacos集群,部署结构如下: ![image.png](https://img.alicdn.com/tfs/TB14kriJ6TpK1RjSZKPXXa3UpXa-1724-772.png) - -### 让Dubbo客户端连接到Nacos注册中心 - + +### Dubbo 客户端连接到 Nacos 注册中心 + #### Dubbo Consumer客户端迁移 -Dubbo 已经支持Nacos注册中心,支持的版本为2.5+,需要增加一个Nacos注册中心的Dubbo扩展插件依赖: + +Dubbo 已经支持Nacos注册中心,支持的版本为2.5+,需要增加一个Nacos注册中心的Dubbo扩展插件依赖: ```basic com.alibaba @@ -153,7 +148,8 @@ Dubbo 已经支持Nacos注册中心,支持的版本为2.5+,需要增加一个Nac 0.0.2 ``` -

      增加Nacos客户端的依赖: + +增加Nacos客户端的依赖: ```basic com.alibaba.nacos @@ -162,7 +158,7 @@ Dubbo 已经支持Nacos注册中心,支持的版本为2.5+,需要增加一个Nac ``` -配置Dubbo Consumer的Dubbo配置文件,让客户端能够找到Nacos集群
      consumer.yaml +配置Dubbo Consumer的Dubbo配置文件`consumer.yaml`,让客户端能够找到Nacos集群。 ```basic spring: application: @@ -176,43 +172,35 @@ dubbo: address: nacos://127.0.0.1:8848 ``` -不需要修改代码,配置更新完毕之后 ,你就可以重启你的应用,使之生效了. +不需要修改代码,配置更新完毕之后,你就可以重启你的应用,使之生效了。 -Consumer发布完成之后,目前的部署结构如下:
      +Consumer发布完成之后,目前的部署结构如下: ![image.png](https://img.alicdn.com/tfs/TB181fkJ3HqK1RjSZFEXXcGMXXa-1734-878.png) - + #### Dubbo Provider迁移 -在升级Provider之前,你需要确保该Provider发布的服务,都已经配置在NacosSync中,同步的方式为从Nacos同步到Zookeeper,因为Provider升级连接到Nacos之后,需要确保老的Dubbo Consumer客户端能够在Zookeeper上订阅到该Provider的地址,现在,我们增加一个同步任务:
      +在升级Provider之前,你需要确保该Provider发布的服务,都已经配置在 NacosSync 中,同步的方式为从Nacos同步到Zookeeper,因为Provider升级连接到Nacos之后,需要确保老的Dubbo Consumer客户端能够在Zookeeper上订阅到该Provider的地址,现在,我们增加一个同步任务: ![image.png](https://img.alicdn.com/tfs/TB1pdDnJ7voK1RjSZFwXXciCFXa-2872-1060.png) -
      + ![image.png](https://img.alicdn.com/tfs/TB19Ey_J6DpK1RjSZFrXXa78VXa-2842-660.png) -> 注意:Nacos服务同步到Zookeeper,不需要填写版本号,你在选择源集群的时候,版本号的输入框会自动隐藏掉 +> 注意:Nacos服务同步到Zookeeper,不需要填写版本号,你在选择源集群的时候,版本号的输入框会自动隐藏掉。 +同步任务完成后,你就可以升级Provider了,升级Provider的方法,参考升级Consumer的步骤。 -同步任务完成后,你就可以升级Provider了,升级Provider的方法,参考升级Consumer的步骤. - ### 新的部署结构 -* 在升级的过程中,会有新老版本的客户端同时存在,部署结构如下: +* 在升级的过程中,会有新老版本的客户端同时存在,部署结构如下: ![image.png](https://img.alicdn.com/tfs/TB14Y_iJ3HqK1RjSZFPXXcwapXa-1728-838.png) -* 在所有的客户端迁移完成之后,部署结构如下: + +* 所有的客户端迁移完成之后,部署结构如下: ![image.png](https://img.alicdn.com/tfs/TB1Cg2dJYvpK1RjSZPiXXbmwXXa-1466-864.png) -现在,Zookeeper集群,NacosSync集群就可以下线了. +现在,Zookeeper集群,NacosSync集群就可以下线了。 - ### 注意事项 -* 同步任务添加之后,需要确保下服务是否成功同步到目标集群,可以通过目标集群的控制台进行查询 -* NacosSync支持高可用集群模式部署,你只需要把数据库配置成同一个即可 -* 如果梳理不清楚订阅和发布的服务,建议可以把服务都做双向同步 -* Dubbo客户端目前不支持Nacos的权重功能,如果你用到了权重功能,需要重新考虑一下方案是否合适 - - - - - - - +* 同步任务添加之后,需要确保下服务是否成功同步到目标集群,可以通过目标集群的控制台进行查询。 +* NacosSync 支持高可用集群模式部署,你只需要把数据库配置成同一个即可。 +* 如果梳理不清楚订阅和发布的服务,建议可以把服务都做双向同步。 +* Dubbo 客户端目前不支持 Nacos 的权重功能,如果你用到了权重功能,需要重新考虑一下方案是否合适。 From c81ea507a673108f48acd1a4543350809b8fa28b Mon Sep 17 00:00:00 2001 From: Marcia Xu <48591728+Ross0101@users.noreply.github.com> Date: Sat, 6 Jul 2019 15:37:45 +0800 Subject: [PATCH 17/25] Update namespace-endpoint-best-practices.md --- .../namespace-endpoint-best-practices.md | 70 +++++++------------ 1 file changed, 27 insertions(+), 43 deletions(-) diff --git a/docs/zh-cn/namespace-endpoint-best-practices.md b/docs/zh-cn/namespace-endpoint-best-practices.md index f58feffcf4e..5226c1967e0 100644 --- a/docs/zh-cn/namespace-endpoint-best-practices.md +++ b/docs/zh-cn/namespace-endpoint-best-practices.md @@ -1,9 +1,13 @@ -# namespace, endpoint 最佳实践 +--- +title: Namespace,endpoint 最佳实践 +keywords: namespace,endpoint,最佳实践 +description: 随着使用 Nacos 的企业越来越多,遇到的最频繁的两个问题就是:如何在我的生产环境正确的来使用 namespace 以及 endpoint。 +--- +# Namespace, endpoint 最佳实践 随着使用 Nacos 的企业越来越多,遇到的最频繁的两个问题就是:如何在我的生产环境正确的来使用 namespace 以及 endpoint。这篇文章主要就是针对这两个问题来聊聊使用 nacos 过程中关于这两个参数配置的最佳实践方式。 - ## namespce 关于 namespace ,以下主要从 **namespace 的设计背景** 和 **namespace 的最佳实践** 两个方面来讨论。 @@ -12,39 +16,32 @@ namespace 的设计是 nacos 基于此做多环境以及多租户数据(**配置和服务**)隔离的。即: -* 从一个租户(用户)的角度来看,如果有多套不同的环境,那么这个时候可以根据指定的环境来创建不同的 namespce,以此来实现多环境的隔离。例如,你可能有日常,预发和生产三个不同的环境,那么使用一套 nacos 集群可以分别建以下三个不同的 namespace。如下图所示: - -
      - -
      +* 从一个租户(用户)的角度来看,如果有多套不同的环境,那么这个时候可以根据指定的环境来创建不同的 namespce,以此来实现多环境的隔离。例如,你可能有日常,预发和生产三个不同的环境,那么使用一套 nacos 集群可以分别建以下三个不同的 namespace。如下图所示: +![](http://edas.oss-cn-hangzhou.aliyuncs.com/deshao/pictures/nacos_ingle_tenant_namespace.jpg) -* 从多个租户(用户)的角度来看,每个租户(用户)可能会有自己的 namespace,每个租户(用户)的配置数据以及注册的服务数据都会归属到自己的 namespace 下,以此来实现多租户间的数据隔离。例如超级管理员分配了三个租户,分别为张三、李四和王五。分配好了之后,各租户用自己的账户名和密码登录后,创建自己的命名空间。如下图所示。 +* 从多个租户(用户)的角度来看,每个租户(用户)可能会有自己的 namespace,每个租户(用户)的配置数据以及注册的服务数据都会归属到自己的 namespace 下,以此来实现多租户间的数据隔离。例如超级管理员分配了三个租户,分别为张三、李四和王五。分配好了之后,各租户用自己的账户名和密码登录后,创建自己的命名空间。如下图所示: -
      - -
      +![](http://edas.oss-cn-hangzhou.aliyuncs.com/deshao/pictures/nacos_multi_tenant_namespace.jpg) **注意:** 该功能还在规划中。 -## namespace 的最佳实践 +### namespace 的最佳实践 - -关于 namespace 的最佳实践 ,这部分主要包含有两个 Action: +关于 namespace 的最佳实践,这部分主要包含有两个 Action: * 如何来获取 namespace 的值 * namespace 参数初始化方式 ### 如何来获取 namespace 的值 - 无论您是基于 Spring Cloud 或者 Dubbo 来使用 nacos,都会涉及到 namespace 的参数输入,那么这个时候 namespace 的值从哪里可以获取呢? -1. 如果您在使用过程中没有感知到这个参数的输入,那么 nacos 统一会使用一个默认的 namespace 作为输入,nacos naming 会使用 **public** 作为默认的参数来初始化,nacos config 会使用一个**空字符串**作为默认的参数来初始化。。 +1. 如果您在使用过程中没有感知到这个参数的输入,那么 nacos 统一会使用一个默认的 namespace 作为输入,nacos naming 会使用 **public** 作为默认的参数来初始化,nacos config 会使用一个**空字符串**作为默认的参数来初始化。 -1. 如果您需要自定义自己的 namespace,那么这个值该怎么来产生? +2. 如果您需要自定义自己的 namespace,那么这个值该怎么来产生? - 可以在 nacos 的控制台左边功能侧看到有一个 **命名空间** 的功能,点击就可以看到 **新建命名空间** 的按钮,那么这个时候就可以创建自己的命名空间了。创建成功之后,会生成一个**命名空间ID**,主要是用来避免**命名空间名称**有可能会出现重名的情况。因此当您在应用中需要配置指定的 namespace 时,**填入的是命名空间ID**。重要的事情说三遍, + 可以在 nacos 的控制台左边功能侧看到有一个 **命名空间** 的功能,点击就可以看到 **新建命名空间** 的按钮,那么这个时候就可以创建自己的命名空间了。创建成功之后,会生成一个**命名空间ID**,主要是用来避免**命名空间名称**有可能会出现重名的情况。因此当您在应用中需要配置指定的 namespace 时,**填入的是命名空间ID**。重要的事情说三遍: 1. 当您在应用中需要配置指定的 namespace 时,**填入的是命名空间 ID** 2. 当您在应用中需要配置指定的 namespace 时,**填入的是命名空间 ID** @@ -53,56 +50,45 @@ namespace 的设计是 nacos 基于此做多环境以及多租户数据(**配置 说明: namesace 为 **public** 是 nacos 的一个保留控件,如果您需要创建自己的 namespace,最好不要和 **public** 重名,以一个实际业务场景有具体语义的名字来命名,以免带来字面上不容易区分自己是哪一个 namespace。 - ### namespace 参数初始化方式 - nacos client 对 namespace 的初始化流程如下图所示: +![](http://edas.oss-cn-hangzhou.aliyuncs.com/deshao/pictures/nacos_init_namespace_plus.jpg) -
      - -
      - +nacos client 对 namespace 的初始化,主要包含两部分: -nacos client 对 namespace 的初始化,主要包含两部分, - -* 用户态通过 nacos client 构造实例时通过 properties 参数传入的 namespace +* 用户态通过 nacos client 构造实例时通过 properties 参数传入的 namespace。 * 在云环境下(**阿里云下的 EDAS**)的 namespace 参数解析。 可通过 **-Duse.cloud.namespace.parsing=true/false** 来控制是否需要在云环境自动解析 namespace 参数,默认为 **true**,是会自动解析,其目的就是方便用户上云时可以以零成本的方式平滑上云。如果用户在云上需要用自建的 nacos 下的 namespace,那这个时候只需将 **-Duse.cloud.namespace.parsing=false** 即可。 -# endpoint +## endpoint 关于 endpoint ,也主要从 **endpoint 的设计背景** 和 **endpoint 的参数初始化** 两个方面来讨论。 -## endpoint 的设计背景 +### endpoint 的设计背景 当 nacos server 集群需要扩缩容时,客户端需要有一种能力能够及时感知到集群发生变化。及时感知到集群的变化是通过 endpoint 来实现的。也即客户端会定时的向 endpoint 发送请求来更新客户端内存中的集群列表。 -## endpoint 的参数初始化 - +### endpoint 的参数初始化 Nacos Client 提供一种可以对传入的 endpoint 参数规则解析的能力。即当通过构造函数的 **properties** 来初始化 endpoint 时,指定的 endpoint 值可以是一个具体的值,也可以是一个占位符的形式,如下所示: > **\${endpoint.options:defaultValue}**。 - -说明: +说明: 1. **endpoint.options** 是一个具体的变量。支持从系统属性,系统环境变量中读取。 2. **defaultValue** 是给出的一个默认值。当从具体的变量中没有被正确初始化时,会使用给出的默认值来初始化。 整个 endpoint 的解析规则比较复杂,整体的一个解析流程图如下所示: -
      - -
      +![](http://edas.oss-cn-hangzhou.aliyuncs.com/deshao/pictures/nacos_init_endpoint.jpg) - -**注意:** 蓝色特别区分的是支持云环境下(阿里云上的 EDAS)自动从系统环境变量中来读取 endpoint 值,以此来达到用户本地开发或者将应用往云上迁移的时候以零成本的改造方式实现平滑上云。 +**注意:** 蓝色特别区分的是支持云环境下(阿里云上的 EDAS)自动从系统环境变量中来读取 endpoint 值,以此来达到用户本地开发或者将应用往云上迁移的时候以零成本的改造方式实现平滑上云。 说明: @@ -116,13 +102,13 @@ Nacos Client 提供一种可以对传入的 endpoint 参数规则解析的能力 这时会先从系统环境变量中变量名为 **ALIBABA\_ALIWARE\_ENDPOINT\_URL** 指定的值来初始化,如果系统环境变量没有设置,那么这个时候用用户态传入的具体值来初始化 endpoint。 - 1. 以占位符的形式输入。 + 2. 以占位符的形式输入。 这时会解析出具体占位符的值,然后: 1. 依次从系统属性和环境变量中来取值。 - 例如,您输入的是 **${nacos.endpoint:defaultValue}**,那么解析出来的 占位符是 **nacos.endpoint**。解析出来后,会先读取系统属性中(**即 System.getProperty("nacos.endpoint")**)是否设置了 **nacos.endpoint** 变量值,如果没有,则会从系统环境变量中变量名为 **nacos.endpoint** 指定的值来初始化。 + 例如,您输入的是 **${nacos.endpoint:defaultValue}**,那么解析出来的占位符是 **nacos.endpoint**。解析出来后,会先读取系统属性中(**即 System.getProperty("nacos.endpoint")**)是否设置了 **nacos.endpoint** 变量值,如果没有,则会从系统环境变量中变量名为 **nacos.endpoint** 指定的值来初始化。 2. 如果通过解析出来的占位符还没有正确初始化 endpoint,则会从系统环境变量中变量名为 **ALIBABA\_ALIWARE\_ENDPOINT\_URL** 指定的值来初始化。 @@ -132,6 +118,4 @@ Nacos Client 提供一种可以对传入的 endpoint 参数规则解析的能力 当关闭了 endpoint 参数规则解析的时候,这个时候就以用户态在构造 Nacos Client 时通过 properties 参数输入的 endpoint 值为主。 - - -默认情况下, Nacos Client 是开启 endpoint 参数规则解析的能力。如果你想关闭该能力,可在 Nacos Client 初始化的时候在传入的 properties 实例中指定 key 为 **isUseEndpointParsingRule**,值为 **false** 即可关闭。 \ No newline at end of file +默认情况下, Nacos Client 是开启 endpoint 参数规则解析的能力。如果你想关闭该能力,可在 Nacos Client 初始化的时候在传入的 properties 实例中指定 key 为 **isUseEndpointParsingRule**,值为 **false** 即可关闭。 From 43318fa485ee86a78421084515e59df3d77b6ebd Mon Sep 17 00:00:00 2001 From: Marcia Xu <48591728+Ross0101@users.noreply.github.com> Date: Sat, 6 Jul 2019 15:38:52 +0800 Subject: [PATCH 18/25] Translation nacos sync use.html --- en-us/docs/nacos-sync-use.html | 174 +++++++++++++++------------------ 1 file changed, 80 insertions(+), 94 deletions(-) diff --git a/en-us/docs/nacos-sync-use.html b/en-us/docs/nacos-sync-use.html index 8c6990965bd..3022ff610c4 100644 --- a/en-us/docs/nacos-sync-use.html +++ b/en-us/docs/nacos-sync-use.html @@ -4,48 +4,42 @@ - - + + - nacos-sync-use + NacosSync migration user guide -
      Documentation

      NacosSync迁移用户手册

      -

      -

      手册目标

      +
      Documentation

      NacosSync migration user guide

      +

      Guide purposes

        -
      • 启动NacosSync服务
      • -
      • 通过一个简单的例子,演示如何将注册到Zookeeper的Dubbo客户端迁移到Nacos -
      • +
      • Start NacosSync service
      • +
      • By a simple example, demonstrates how to register to the Zookeeper Dubbo client migrated to Nacos.
      -

      系统需要

      -

      启动服务之前,你需要安装下面的服务:

      +

      Preparatory work

      +

      Before you start the service, you need to install the following services:

      -

      获取安装包

      -

      有2种方式可以获得NacosSync的安装包:

      +

      Get the installation package

      +

      There are two ways to obtain NacosSync installation package:

      -

      nacosSync.${version}.zip

      -
        -
      • 从GitHub上下载NacosSync的源码进行构建
      • +
      • Direct download NacosSync binary installation package:nacosSync.${version}.zip
      • +
      • Download NacosSync source to build from the Github

      Package:

      cd nacosSync/
       mvn clean package -U
       
      -

      目标文件的路径:

      +

      The path of the target file:

      nacos-sync/nacossync-distribution/target/nacosSync.${version}.zip
       
      -

      解压安装包之后,工程的文件目录结构:

      +

      Unpack the installation package, project file directory structure:

      nacosSync
       ├── LICENSE
       ├── NOTICE
      @@ -59,47 +53,39 @@ 

      获取安装包

      ├── logs └── nacosSync-server.${version}.jar
      -

      -

      -

      -

      初始化DB

      -

      系统默认配置的数据库是MySql,也能支持其他的关系型数据库

      -
        -
      1. 建库,缺省的数据库名字为“nacos_Sync”
      2. -
      3. 数据库表不需要单独创建,默认使用了hibernate的自动建表功能
      4. -
      5. 如果你的环境不支持自动建表,可以使用系统自带的sql脚本建表,脚本放在bin目录下
      6. -
      -

      -

      DB配置

      -

      DB的配置文件放在conf/application.properties中:

      +

      Initialize the database

      +

      The system default configuration database is Mysql, can also support other relational database. +1.The database construction, the default database name for "nacos_Sync". +2.The database table don't need to create separately, using the hibernate automatically by default build table function. +3.If you do not support automatic table, you can use the system's own build table SQL script, the script in the bin directory.

      +

      Database configuration

      +

      Database configuration file on conf/application.properties:

      spring.datasource.url=jdbc:mysql://127.0.0.1:3306/nacos_sync?characterEncoding=utf8
       spring.datasource.username=root
       spring.datasource.password=root
       
      -

      -

      启动服务器

      +

      Start server

      $ nacosSync/bin:
       sh startup.sh  restart
       
      -

      -

      检查系统状态

      -

      1.系统日志检查
      日志的路径在 nacosSync/logs/nacosSync.log,检查是否有异常信息
      2.检查系统端口(缺省的系统端口是8081,你可以自己定义在application.properties中)

      +

      Check system status

      +

      1.Check system log

      +

      The path of the log in nacosSync/logs/nacosSync.log, check whether there are abnormal information.

      +

      2.Check system port

      +

      Port is the default system 8081, you can define your own application.properties.

      $netstat -ano|grep 8081
       tcp        0      0 0.0.0.0:8081                0.0.0.0:*                   LISTEN      off (0.00/0/0)
       
      -

      -

      控制台

      -

      访问路径:

      +

      Console

      +

      Access path:

      http://127.0.0.1:8081/#/serviceSync
       

      image.png

      -

      如果检查没有问题,NacosSync已经正常启动了,NacosSync的部署结构:
      image.png

      -

      -

      开始迁移

      -

      -

      迁移信息

      -

      Dubbo服务的部署信息:
      image.png

      -

      迁移的服务:

      +

      If there is no problem, check NacosSync has begun, normal NacosSync deployment structure:image.png

      +

      Starting migration

      +

      Migration information

      +

      Dubbo service deployment information:image.png

      +

      The migration of services:

      @@ -116,46 +102,50 @@

      迁移信息

      -

      -

      添加注册中心集群信息

      -

      1.点击左侧导航栏中的“集群配置”按钮,新增加一个集群,先增加一个Zookeeper集群,选择集群类型为ZK
      +

      Add the registry cluster information

      +

      1.Click on the "cluster configuration" button in the left navigation bar, a new cluster, first add a Zookeeper cluster, select the cluster type for ZK. image.png

      -

      注意:集群名字可以自定义,但是一旦确认,不能被修改,否则基于此集群增加的任务,在NacosSync重启后,将不会恢复成功

      +

      Note: the cluster name can customize, but once confirmed, cannot be modified, otherwise increase task based on the cluster, after NacosSync restart, success will not resume.

      -

      2.同样的步骤,增加NacosSync集群
      +

      2.The same steps, increase NacosSync cluster. image.png

      -

      添加完成后,可以在列表中查询到
      +

      3.After the completion of the add, can inquire on the list: image.png

      -

      -

      添加同步任务

      -

      1.增加一个同步任务,从Zookeeper集群同步到Nacos集群,同步的粒度是服务,Zookeeper集群则称为源集群,Nacos集群称为目标集群
      -imagesd.png

      -

      添加完成之后,可以在服务同步列表中,查看已添加的同步任务:
      +

      Add the synchronization task

      +
        +
      1. Add a sync task, from Zookeeper cluster synchronization to Nacos cluster, synchronous granularity is service, it is called a Zookeeper cluster source cluster, Nacos cluster called target cluster. +imagesd.png
      2. +
      +

      Add finished, can be in service sync list, view has add synchronization task: image.png

      -

      2.同步完成之后,检查下数据是否同步成功到Nacos集群,可以通过Nacos的控制台进行查询
      +

        +
      1. +

        The synchronization is completed, check whether the data synchronization to success Nacos cluster, can query through the Nacos console. image.png

        -

        此刻,数据已经成功从Zookeeper集群同步到了Nacos集群,部署结构如下:

        -

        image.png -

        -

        让Dubbo客户端连接到Nacos注册中心

        -

        -

        Dubbo Consumer客户端迁移

        -

        Dubbo 已经支持Nacos注册中心,支持的版本为2.5+,需要增加一个Nacos注册中心的Dubbo扩展插件依赖:

        +
      2. +
      3. +

        At the moment, the data has been successfully from Zookeeper cluster synchronization to Nacos cluster, the deployment structure is as follows: +image.png

        +
      4. +
      +

      Dubbo clients to connect to Nacos registry

      +

      Dubbo Consumer client migration

      +

      Dubbo has supported Nacos registry, support version 2.5 +, need to add a Nacos registry of Dubbo extensions depends on:

      <dependency>
             <groupId>com.alibaba</groupId>
             <artifactId>dubbo-registry-nacos</artifactId>
       			<version>0.0.2</version>
       </dependency>
       
      -



      增加Nacos客户端的依赖:

      +

      Increase Nacos client depends on:

      <dependency>
               <groupId>com.alibaba.nacos</groupId>
               <artifactId>nacos-client</artifactId>
               <version>0.6.2</version>
       </dependency>
       
      -

      配置Dubbo Consumer的Dubbo配置文件,让客户端能够找到Nacos集群
      consumer.yaml

      +

      Configuration Dubbo Consumer Dubbo profile Consumer. The yaml, let the client can find Nacos cluster.

      spring:
         application:
       name: dubbo-consumer
      @@ -167,37 +157,33 @@ 

      Dubbo Consumer客户端迁移

      registry: address: nacos://127.0.0.1:8848
      -

      不需要修改代码,配置更新完毕之后 ,你就可以重启你的应用,使之生效了.

      -

      Consumer发布完成之后,目前的部署结构如下:
      -image.png -

      -

      Dubbo Provider迁移

      -

      在升级Provider之前,你需要确保该Provider发布的服务,都已经配置在NacosSync中,同步的方式为从Nacos同步到Zookeeper,因为Provider升级连接到Nacos之后,需要确保老的Dubbo Consumer客户端能够在Zookeeper上订阅到该Provider的地址,现在,我们增加一个同步任务:
      -image.png -
      -image.png

      +

      Don't need to modify the code, configuration after the update, you can restart your application into law.

      +

      Consumer release is completed, the deployment of the structure is as follows: +image.png

      +

      Dubbo Provider migration

      +

      Before you upgrade the Provider, you need to ensure that the Provider of services, are already configured in NacosSync, synchronous way from Nacos synchronization to Zookeeper, because the Provider connected to Nacos upgrade, you need to make sure that the old Dubbo Consumer client can subscribe to the Provider's address in the Zookeeper, now, we add a sync task: +image.png

      +

      image.png

      -

      注意:Nacos服务同步到Zookeeper,不需要填写版本号,你在选择源集群的时候,版本号的输入框会自动隐藏掉

      +

      Note: Nacos synchronization to the Zookeeper service, do not need to fill in the version number, you in choosing the source cluster, the version number of the input box automatically hidden.

      -

      同步任务完成后,你就可以升级Provider了,升级Provider的方法,参考升级Consumer的步骤. -

      -

      新的部署结构

      +

      Sync task is completed, you can upgrade the Provider, upgrade the Provider method, reference to upgrade the Consumer steps.

      +

      New deployment structure

        -
      • 在升级的过程中,会有新老版本的客户端同时存在,部署结构如下:
      • +
      • In the process of upgrading, there will be new and old versions of the client at the same time, the deployment structure is as follows:

      image.png

        -
      • 在所有的客户端迁移完成之后,部署结构如下:
      • +
      • All client migration is completed, the deployment structure is as follows:

      image.png

      -

      现在,Zookeeper集群,NacosSync集群就可以下线了.

      -

      -

      注意事项

      +

      Now, the Zookeeper cluster, NacosSync cluster can get offline.

      +

      Attention

        -
      • 同步任务添加之后,需要确保下服务是否成功同步到目标集群,可以通过目标集群的控制台进行查询
      • -
      • NacosSync支持高可用集群模式部署,你只需要把数据库配置成同一个即可
      • -
      • 如果梳理不清楚订阅和发布的服务,建议可以把服务都做双向同步
      • -
      • Dubbo客户端目前不支持Nacos的权重功能,如果你用到了权重功能,需要重新考虑一下方案是否合适
      • +
      • Synchronization task after adding, you need to ensure that the service is successful sync to the target cluster, can through the console the target cluster.
      • +
      • NacosSync support high availability cluster pattern deployment, you only need to put the database can be configured to the same.
      • +
      • Comb if not clear subscription and published service, suggested can do services are two-way synchronous.
      • +
      • Dubbo client currently does not support Nacos weighting function, if you are using the weight function, need to reconsider the plan.
      @@ -207,4 +193,4 @@

      注意事项

      - \ No newline at end of file + From 420cdf142ded6f4f555b11dc262913f92d10da56 Mon Sep 17 00:00:00 2001 From: Marcia Xu <48591728+Ross0101@users.noreply.github.com> Date: Sat, 6 Jul 2019 15:39:35 +0800 Subject: [PATCH 19/25] Translation nacos sync use.json --- en-us/docs/nacos-sync-use.json | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/en-us/docs/nacos-sync-use.json b/en-us/docs/nacos-sync-use.json index e4b8d0937d6..ef2717a6496 100644 --- a/en-us/docs/nacos-sync-use.json +++ b/en-us/docs/nacos-sync-use.json @@ -1,6 +1,10 @@ { "filename": "nacos-sync-use.md", - "__html": "

      NacosSync迁移用户手册

      \n

      \n

      手册目标

      \n
        \n
      • 启动NacosSync服务
      • \n
      • 通过一个简单的例子,演示如何将注册到Zookeeper的Dubbo客户端迁移到Nacos\n
      • \n
      \n

      系统需要

      \n

      启动服务之前,你需要安装下面的服务:

      \n\n

      获取安装包

      \n

      有2种方式可以获得NacosSync的安装包:

      \n\n

      nacosSync.${version}.zip

      \n
        \n
      • 从GitHub上下载NacosSync的源码进行构建
      • \n
      \n

      Package:

      \n
      cd nacosSync/\nmvn clean package -U\n
      \n

      目标文件的路径:

      \n
      nacos-sync/nacossync-distribution/target/nacosSync.${version}.zip\n
      \n

      解压安装包之后,工程的文件目录结构:

      \n
      nacosSync\n├── LICENSE\n├── NOTICE\n├── bin\n│   ├── nacosSync.sql\n│   ├── shutdown.sh\n│   └── startup.sh\n├── conf\n│   ├── application.properties\n│   └── logback-spring.xml\n├── logs\n└── nacosSync-server.${version}.jar\n
      \n

      \n

      \n

      \n

      初始化DB

      \n

      系统默认配置的数据库是MySql,也能支持其他的关系型数据库

      \n
        \n
      1. 建库,缺省的数据库名字为“nacos_Sync”
      2. \n
      3. 数据库表不需要单独创建,默认使用了hibernate的自动建表功能
      4. \n
      5. 如果你的环境不支持自动建表,可以使用系统自带的sql脚本建表,脚本放在bin目录下
      6. \n
      \n

      \n

      DB配置

      \n

      DB的配置文件放在conf/application.properties中:

      \n
      spring.datasource.url=jdbc:mysql://127.0.0.1:3306/nacos_sync?characterEncoding=utf8\nspring.datasource.username=root\nspring.datasource.password=root\n
      \n

      \n

      启动服务器

      \n
      $ nacosSync/bin:\nsh startup.sh  restart\n
      \n

      \n

      检查系统状态

      \n

      1.系统日志检查
      日志的路径在 nacosSync/logs/nacosSync.log,检查是否有异常信息
      2.检查系统端口(缺省的系统端口是8081,你可以自己定义在application.properties中)

      \n
      $netstat -ano|grep 8081\ntcp        0      0 0.0.0.0:8081                0.0.0.0:*                   LISTEN      off (0.00/0/0)\n
      \n

      \n

      控制台

      \n

      访问路径:

      \n
      http://127.0.0.1:8081/#/serviceSync\n
      \n

      \"image.png\"

      \n

      如果检查没有问题,NacosSync已经正常启动了,NacosSync的部署结构:
      \"image.png\"

      \n

      \n

      开始迁移

      \n

      \n

      迁移信息

      \n

      Dubbo服务的部署信息:
      \"image.png\"

      \n

      迁移的服务:

      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
      Service NameVersionGroup Name
      com.alibaba.nacos.api.DemoService1.0.0zk
      \n

      \n

      添加注册中心集群信息

      \n

      1.点击左侧导航栏中的“集群配置”按钮,新增加一个集群,先增加一个Zookeeper集群,选择集群类型为ZK
      \n\"image.png\"

      \n
      \n

      注意:集群名字可以自定义,但是一旦确认,不能被修改,否则基于此集群增加的任务,在NacosSync重启后,将不会恢复成功

      \n
      \n

      2.同样的步骤,增加NacosSync集群
      \n\"image.png\"

      \n

      添加完成后,可以在列表中查询到
      \n\"image.png\"

      \n

      \n

      添加同步任务

      \n

      1.增加一个同步任务,从Zookeeper集群同步到Nacos集群,同步的粒度是服务,Zookeeper集群则称为源集群,Nacos集群称为目标集群
      \n\"imagesd.png\"

      \n

      添加完成之后,可以在服务同步列表中,查看已添加的同步任务:
      \n\"image.png\"

      \n

      2.同步完成之后,检查下数据是否同步成功到Nacos集群,可以通过Nacos的控制台进行查询
      \n\"image.png\"

      \n

      此刻,数据已经成功从Zookeeper集群同步到了Nacos集群,部署结构如下:

      \n

      \"image.png\"\n

      \n

      让Dubbo客户端连接到Nacos注册中心

      \n

      \n

      Dubbo Consumer客户端迁移

      \n

      Dubbo 已经支持Nacos注册中心,支持的版本为2.5+,需要增加一个Nacos注册中心的Dubbo扩展插件依赖:

      \n
      <dependency>\n      <groupId>com.alibaba</groupId>\n      <artifactId>dubbo-registry-nacos</artifactId>\n\t\t\t<version>0.0.2</version>\n</dependency>\n
      \n



      增加Nacos客户端的依赖:

      \n
      <dependency>\n        <groupId>com.alibaba.nacos</groupId>\n        <artifactId>nacos-client</artifactId>\n        <version>0.6.2</version>\n</dependency>\n
      \n

      配置Dubbo Consumer的Dubbo配置文件,让客户端能够找到Nacos集群
      consumer.yaml

      \n
      spring:\n  application:\nname: dubbo-consumer\ndemo:\n  service:\n    version: 1.0.0\n    group: zk\ndubbo:\n  registry:\n    address: nacos://127.0.0.1:8848\n
      \n

      不需要修改代码,配置更新完毕之后 ,你就可以重启你的应用,使之生效了.

      \n

      Consumer发布完成之后,目前的部署结构如下:
      \n\"image.png\"\n

      \n

      Dubbo Provider迁移

      \n

      在升级Provider之前,你需要确保该Provider发布的服务,都已经配置在NacosSync中,同步的方式为从Nacos同步到Zookeeper,因为Provider升级连接到Nacos之后,需要确保老的Dubbo Consumer客户端能够在Zookeeper上订阅到该Provider的地址,现在,我们增加一个同步任务:
      \n\"image.png\"\n
      \n\"image.png\"

      \n
      \n

      注意:Nacos服务同步到Zookeeper,不需要填写版本号,你在选择源集群的时候,版本号的输入框会自动隐藏掉

      \n
      \n

      同步任务完成后,你就可以升级Provider了,升级Provider的方法,参考升级Consumer的步骤.\n

      \n

      新的部署结构

      \n
        \n
      • 在升级的过程中,会有新老版本的客户端同时存在,部署结构如下:
      • \n
      \n

      \"image.png\"

      \n
        \n
      • 在所有的客户端迁移完成之后,部署结构如下:
      • \n
      \n

      \"image.png\"

      \n

      现在,Zookeeper集群,NacosSync集群就可以下线了.

      \n

      \n

      注意事项

      \n
        \n
      • 同步任务添加之后,需要确保下服务是否成功同步到目标集群,可以通过目标集群的控制台进行查询
      • \n
      • NacosSync支持高可用集群模式部署,你只需要把数据库配置成同一个即可
      • \n
      • 如果梳理不清楚订阅和发布的服务,建议可以把服务都做双向同步
      • \n
      • Dubbo客户端目前不支持Nacos的权重功能,如果你用到了权重功能,需要重新考虑一下方案是否合适
      • \n
      \n", + "__html": "

      NacosSync migration user guide

      \n

      Guide purposes

      \n
        \n
      • Start NacosSync service
      • \n
      • By a simple example, demonstrates how to register to the Zookeeper Dubbo client migrated to Nacos.
      • \n
      \n

      Preparatory work

      \n

      Before you start the service, you need to install the following services:

      \n\n

      Get the installation package

      \n

      There are two ways to obtain NacosSync installation package:

      \n
        \n
      • Direct download NacosSync binary installation package:nacosSync.${version}.zip
      • \n
      • Download NacosSync source to build from the Github
      • \n
      \n

      Package:

      \n
      cd nacosSync/\nmvn clean package -U\n
      \n

      The path of the target file:

      \n
      nacos-sync/nacossync-distribution/target/nacosSync.${version}.zip\n
      \n

      Unpack the installation package, project file directory structure:

      \n
      nacosSync\n├── LICENSE\n├── NOTICE\n├── bin\n│   ├── nacosSync.sql\n│   ├── shutdown.sh\n│   └── startup.sh\n├── conf\n│   ├── application.properties\n│   └── logback-spring.xml\n├── logs\n└── nacosSync-server.${version}.jar\n
      \n

      Initialize the database

      \n

      The system default configuration database is Mysql, can also support other relational database.\n1.The database construction, the default database name for "nacos_Sync".\n2.The database table don't need to create separately, using the hibernate automatically by default build table function.\n3.If you do not support automatic table, you can use the system's own build table SQL script, the script in the bin directory.

      \n

      Database configuration

      \n

      Database configuration file on conf/application.properties:

      \n
      spring.datasource.url=jdbc:mysql://127.0.0.1:3306/nacos_sync?characterEncoding=utf8\nspring.datasource.username=root\nspring.datasource.password=root\n
      \n

      Start server

      \n
      $ nacosSync/bin:\nsh startup.sh  restart\n
      \n

      Check system status

      \n

      1.Check system log

      \n

      The path of the log in nacosSync/logs/nacosSync.log, check whether there are abnormal information.

      \n

      2.Check system port

      \n

      Port is the default system 8081, you can define your own application.properties.

      \n
      $netstat -ano|grep 8081\ntcp        0      0 0.0.0.0:8081                0.0.0.0:*                   LISTEN      off (0.00/0/0)\n
      \n

      Console

      \n

      Access path:

      \n
      http://127.0.0.1:8081/#/serviceSync\n
      \n

      \"image.png\"

      \n

      If there is no problem, check NacosSync has begun, normal NacosSync deployment structure:\"image.png\"

      \n

      Starting migration

      \n

      Migration information

      \n

      Dubbo service deployment information:\"image.png\"

      \n

      The migration of services:

      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
      Service NameVersionGroup Name
      com.alibaba.nacos.api.DemoService1.0.0zk
      \n

      Add the registry cluster information

      \n

      1.Click on the "cluster configuration" button in the left navigation bar, a new cluster, first add a Zookeeper cluster, select the cluster type for ZK.\n\"image.png\"

      \n
      \n

      Note: the cluster name can customize, but once confirmed, cannot be modified, otherwise increase task based on the cluster, after NacosSync restart, success will not resume.

      \n
      \n

      2.The same steps, increase NacosSync cluster.\n\"image.png\"

      \n

      3.After the completion of the add, can inquire on the list:\n\"image.png\"

      \n

      Add the synchronization task

      \n
        \n
      1. Add a sync task, from Zookeeper cluster synchronization to Nacos cluster, synchronous granularity is service, it is called a Zookeeper cluster source cluster, Nacos cluster called target cluster.\n\"imagesd.png\"
      2. \n
      \n

      Add finished, can be in service sync list, view has add synchronization task:\n\"image.png\"

      \n
        \n
      1. \n

        The synchronization is completed, check whether the data synchronization to success Nacos cluster, can query through the Nacos console.\n\"image.png\"

        \n
      2. \n
      3. \n

        At the moment, the data has been successfully from Zookeeper cluster synchronization to Nacos cluster, the deployment structure is as follows:\n\"image.png\"

        \n
      4. \n
      \n

      Dubbo clients to connect to Nacos registry

      \n

      Dubbo Consumer client migration

      \n

      Dubbo has supported Nacos registry, support version 2.5 +, need to add a Nacos registry of Dubbo extensions depends on:

      \n
      <dependency>\n      <groupId>com.alibaba</groupId>\n      <artifactId>dubbo-registry-nacos</artifactId>\n\t\t\t<version>0.0.2</version>\n</dependency>\n
      \n

      Increase Nacos client depends on:

      \n
      <dependency>\n        <groupId>com.alibaba.nacos</groupId>\n        <artifactId>nacos-client</artifactId>\n        <version>0.6.2</version>\n</dependency>\n
      \n

      Configuration Dubbo Consumer Dubbo profile Consumer. The yaml, let the client can find Nacos cluster.

      \n
      spring:\n  application:\nname: dubbo-consumer\ndemo:\n  service:\n    version: 1.0.0\n    group: zk\ndubbo:\n  registry:\n    address: nacos://127.0.0.1:8848\n
      \n

      Don't need to modify the code, configuration after the update, you can restart your application into law.

      \n

      Consumer release is completed, the deployment of the structure is as follows:\n\"image.png\"

      \n

      Dubbo Provider migration

      \n

      Before you upgrade the Provider, you need to ensure that the Provider of services, are already configured in NacosSync, synchronous way from Nacos synchronization to Zookeeper, because the Provider connected to Nacos upgrade, you need to make sure that the old Dubbo Consumer client can subscribe to the Provider's address in the Zookeeper, now, we add a sync task:\n\"image.png\"

      \n

      \"image.png\"

      \n
      \n

      Note: Nacos synchronization to the Zookeeper service, do not need to fill in the version number, you in choosing the source cluster, the version number of the input box automatically hidden.

      \n
      \n

      Sync task is completed, you can upgrade the Provider, upgrade the Provider method, reference to upgrade the Consumer steps.

      \n

      New deployment structure

      \n
        \n
      • In the process of upgrading, there will be new and old versions of the client at the same time, the deployment structure is as follows:
      • \n
      \n

      \"image.png\"

      \n
        \n
      • All client migration is completed, the deployment structure is as follows:
      • \n
      \n

      \"image.png\"

      \n

      Now, the Zookeeper cluster, NacosSync cluster can get offline.

      \n

      Attention

      \n
        \n
      • Synchronization task after adding, you need to ensure that the service is successful sync to the target cluster, can through the console the target cluster.
      • \n
      • NacosSync support high availability cluster pattern deployment, you only need to put the database can be configured to the same.
      • \n
      • Comb if not clear subscription and published service, suggested can do services are two-way synchronous.
      • \n
      • Dubbo client currently does not support Nacos weighting function, if you are using the weight function, need to reconsider the plan.
      • \n
      \n", "link": "/en-us/docs/nacos-sync-use.html", - "meta": {} -} \ No newline at end of file + "meta": { + "title": "NacosSync migration user guide", + "keywords": "NacosSync,migration,user guide", + "description": "NacosSync migration user manual" + } +} From fc724e7b469c4411529aff909df7822830991811 Mon Sep 17 00:00:00 2001 From: Marcia Xu <48591728+Ross0101@users.noreply.github.com> Date: Sat, 6 Jul 2019 15:40:12 +0800 Subject: [PATCH 20/25] Translation namespace endpoint best practices.html --- .../namespace-endpoint-best-practices.html | 136 ++++++++---------- 1 file changed, 63 insertions(+), 73 deletions(-) diff --git a/en-us/docs/namespace-endpoint-best-practices.html b/en-us/docs/namespace-endpoint-best-practices.html index 4b6a7cbfbef..dce7808c9da 100644 --- a/en-us/docs/namespace-endpoint-best-practices.html +++ b/en-us/docs/namespace-endpoint-best-practices.html @@ -4,120 +4,110 @@ - - + + - namespace-endpoint-best-practices + Namespace,endpoint best practices -
      Documentation

      namespace, endpoint 最佳实践

      -

      随着使用 Nacos 的企业越来越多,遇到的最频繁的两个问题就是:如何在我的生产环境正确的来使用 namespace 以及 endpoint。这篇文章主要就是针对这两个问题来聊聊使用 nacos 过程中关于这两个参数配置的最佳实践方式。

      +
      Documentation

      Namespace, endpoint best practices

      +

      With using Nacos enterprises more and more, the two most frequently encountered problem is: how to use in my production environment right namespace and the endpoint.

      namespce

      -

      关于 namespace ,以下主要从 namespace 的设计背景namespace 的最佳实践 两个方面来讨论。

      -

      namespace 的设计背景

      -

      namespace 的设计是 nacos 基于此做多环境以及多租户数据(配置和服务)隔离的。即:

      +

      Regarding the namespace, the following main from namespace design background and namespace best practice two aspects to discuss.

      +

      namespace design background

      +

      Namespace design is made more nacos based on this environment and multi-tenant data (configuration and service) of isolation.That is:

        -
      • -

        从一个租户(用户)的角度来看,如果有多套不同的环境,那么这个时候可以根据指定的环境来创建不同的 namespce,以此来实现多环境的隔离。例如,你可能有日常,预发和生产三个不同的环境,那么使用一套 nacos 集群可以分别建以下三个不同的 namespace。如下图所示:

        -
        - -
        -
      • -
      • -

        从多个租户(用户)的角度来看,每个租户(用户)可能会有自己的 namespace,每个租户(用户)的配置数据以及注册的服务数据都会归属到自己的 namespace 下,以此来实现多租户间的数据隔离。例如超级管理员分配了三个租户,分别为张三、李四和王五。分配好了之后,各租户用自己的账户名和密码登录后,创建自己的命名空间。如下图所示。

        -
        - -
        -

        注意: 该功能还在规划中。

        -
      • +
      • From the point of view of a tenant (user), if there are many different environment, so this time can be specified according to the environment to create different namespce, in order to realize the environment isolation.For example, you might be everyday, pretest and the production of three different environment, then use a nacos cluster can build the following three different namespace. As shown in the figure below:
      • +
      +

      +
        +
      • from the point of view of multiple tenants (user), each tenant (user) may have its own namespace, each tenant configuration data (user) and registered service data belonging to its own namespace, so as to achieve the multi-tenant isolation between the data.For example the supervisor assigned three tenants, San Zhang, Si Li and Wu Wang respectively.Distribution of good, after all the tenants on their own account name and password after logging in, create your own namespace. As shown in the figure below:
      -

      namespace 的最佳实践

      -

      关于 namespace 的最佳实践 ,这部分主要包含有两个 Action:

      +

      +

      Note: This feature is still in planning.

      +

      namespace best practices

      +

      Best practices on the namespace, this part mainly consists of two actions:

        -
      • 如何来获取 namespace 的值
      • -
      • namespace 参数初始化方式
      • +
      • How to obtain the value of the namespace
      • +
      • The namespace parameters initialization method
      -

      如何来获取 namespace 的值

      -

      无论您是基于 Spring Cloud 或者 Dubbo 来使用 nacos,都会涉及到 namespace 的参数输入,那么这个时候 namespace 的值从哪里可以获取呢?

      +

      How to obtain the value of the namespace

      +

      Whether you are based on Spring Cloud or Dubbo to use nacos, involve namespace parameter input, so when the value of the namespace from where can I get?

      1. -

        如果您在使用过程中没有感知到这个参数的输入,那么 nacos 统一会使用一个默认的 namespace 作为输入,nacos naming 会使用 public 作为默认的参数来初始化,nacos config 会使用一个空字符串作为默认的参数来初始化。。

        +

        If you are using is not aware to this parameter in the process of input, then nacos unified will use a default namespace as input, nacos naming will use public as the default parameters to initialize, nacos config will use an empty string as the default parameters to initialize.

      2. -

        如果您需要自定义自己的 namespace,那么这个值该怎么来产生?

        -

        可以在 nacos 的控制台左边功能侧看到有一个 命名空间 的功能,点击就可以看到 新建命名空间 的按钮,那么这个时候就可以创建自己的命名空间了。创建成功之后,会生成一个命名空间ID,主要是用来避免命名空间名称有可能会出现重名的情况。因此当您在应用中需要配置指定的 namespace 时,填入的是命名空间ID。重要的事情说三遍,

        +

        If you need to customize your own namespace, then the value how to produce?

        +

        Can see on the console function of the left side of the nacos has the function of a namespace, click on the new namespace can see button, so this time you can create your own namespace.Create success, generates a namespace ID, is mainly used to avoid namespace name namesake, is likely to happen. So when you need to configure the specified namespace in the application, fill in it is the namespace ID.The important things three times:

          -
        1. 当您在应用中需要配置指定的 namespace 时,填入的是命名空间 ID
        2. -
        3. 当您在应用中需要配置指定的 namespace 时,填入的是命名空间 ID
        4. -
        5. 当您在应用中需要配置指定的 namespace 时,填入的是命名空间 ID
        6. +
        7. When you need to configure the specified namespace in the application, fill in it isthe namespace ID.
        8. +
        9. When you need to configure the specified namespace in the application, fill in it isthe namespace ID.
        10. +
        11. When you need to configure the specified namespace in the application, fill in it isthe namespace ID.
      -

      说明: namesace 为 public 是 nacos 的一个保留控件,如果您需要创建自己的 namespace,最好不要和 public 重名,以一个实际业务场景有具体语义的名字来命名,以免带来字面上不容易区分自己是哪一个 namespace。

      -

      namespace 参数初始化方式

      -

      nacos client 对 namespace 的初始化流程如下图所示:

      -
      - -
      -

      nacos client 对 namespace 的初始化,主要包含两部分,

      +

      Namesace for public is nacos a retain control, if you need to create your own namespace, it is best not to public and name repetition, to an actual business scenarios have specific semantic named after, lest bring literally a namespace which is not easy to distinguish himself.

      +

      namespace parameters initialization method

      +

      Nacos client for namespace initialization process as shown in the figure below:

      +

      +

      Nacos client initialization of the namespace contains two main parts:

      • -

        用户态通过 nacos client 构造实例时通过 properties 参数传入的 namespace

        +

        User mode by nacos client through the properties in the instance structure parameters was introduced into the namespace.

      • -

        在云环境下(阿里云下的 EDAS)的 namespace 参数解析。

        -

        可通过 -Duse.cloud.namespace.parsing=true/false 来控制是否需要在云环境自动解析 namespace 参数,默认为 true,是会自动解析,其目的就是方便用户上云时可以以零成本的方式平滑上云。如果用户在云上需要用自建的 nacos 下的 namespace,那这个时候只需将 -Duse.cloud.namespace.parsing=false 即可。

        +

        In a cloud environment (Alibaba cloud of EDAS) of the namespace argument parsing.

        +

        By -Duse.cloud.namespace.parsing=true/false whether you need to control in a cloud environment automatic parsing namespace parameter, the default value is true, is automatically parsed, its purpose is convenient when the user on the cloud can be smooth on the cloud in the form of zero cost.If the user on the cloud under the need to use the self-built nacos namespace, that this time you only need to -Duse.cloud.namespace.parsing=false.

      -

      endpoint

      -

      关于 endpoint ,也主要从 endpoint 的设计背景endpoint 的参数初始化 两个方面来讨论。

      -

      endpoint 的设计背景

      -

      当 nacos server 集群需要扩缩容时,客户端需要有一种能力能够及时感知到集群发生变化。及时感知到集群的变化是通过 endpoint 来实现的。也即客户端会定时的向 endpoint 发送请求来更新客户端内存中的集群列表。

      -

      endpoint 的参数初始化

      -

      Nacos Client 提供一种可以对传入的 endpoint 参数规则解析的能力。即当通过构造函数的 properties 来初始化 endpoint 时,指定的 endpoint 值可以是一个具体的值,也可以是一个占位符的形式,如下所示:

      +

      endpoint

      +

      On the endpoint, and mainly from the the design background of endpoint and the endpoint parameters initialization two aspects to discuss.

      +

      The design background of endpoint

      +

      When nacos server cluster needs to enlarge shrinks, let a client needs to have a kind of ability can timely change perception to the cluster. In a timely manner to perceive the change of the cluster is realized through the endpoint.That the client will be timed to the endpoint sends a request to update the client list in memory clusters.

      +

      The endpoint of the initialization parameter

      +

      Nacos Client provides an endpoint of the incoming parameter rules make sense of it.When through the constructor to initialize the properties the endpoint, the specified endpoint value can be a specific value, also can be in the form of a placeholder, as shown below:

      ${endpoint.options:defaultValue}

      -

      说明:

      +

      Description:

        -
      1. endpoint.options 是一个具体的变量。支持从系统属性,系统环境变量中读取。
      2. -
      3. defaultValue 是给出的一个默认值。当从具体的变量中没有被正确初始化时,会使用给出的默认值来初始化。
      4. +
      5. endpoint.options is a specific variable.Support from the system property, reads the system environment variables.
      6. +
      7. defaultValue is given a default value.When is not properly initialized from the specific variables, the given default value is used to initialize.
      -

      整个 endpoint 的解析规则比较复杂,整体的一个解析流程图如下所示:

      -
      - -
      -

      注意: 蓝色特别区分的是支持云环境下(阿里云上的 EDAS)自动从系统环境变量中来读取 endpoint 值,以此来达到用户本地开发或者将应用往云上迁移的时候以零成本的改造方式实现平滑上云。

      -

      说明:

      +

      The endpoint of the parsing rules is more complex, the overall flow chart of a parse is as follows:

      +

      +

      Description: Blue special distinction is to support a cloud environment (Alibaba cloud EDAS) automatically from the system environment variables to read in the endpoint value, in order to achieve the user local development or moving applications to the cloud with zero cost on the way to achieve a smooth of cloud.

      +

      Description:

      • -

        开启 endpoint 参数规则解析

        +

        Open the endpoint parameters parsing rules

        1. -

          如果在初始化 Nacos Client 的时候,没有通过 properties 来指定 endpoint,这个时候会从系统环境变量中变量名为 ALIBABA_ALIWARE_ENDPOINT_URL 指定的值来初始化,如果系统环境变量也没有设置,那么这个时候将会返回一个空字符串。

          +

          If the initialization Nacos Client, not through the properties to specify the endpoint, this time from the system environment variables in called ALIBABA_ALIWARE_ENDPOINT_URL to initialize the specified value, if the system environment variable is not set, so this time will return an empty string.

        2. -

          如果设置了 endpoint,

          +

          If set the endpoint,

          1. -

            设置的 endpoint 是一个指定具体的值。

            -

            这时会先从系统环境变量中变量名为 ALIBABA_ALIWARE_ENDPOINT_URL 指定的值来初始化,如果系统环境变量没有设置,那么这个时候用用户态传入的具体值来初始化 endpoint。

            +

            Set the endpoint is a specific value specified.

            +

            At this time will be from the system environment variables in the variables called ALIBABA_ALIWARE_ENDPOINT_URL to initialize the specified value, if the system environment variables not set, so this time use user mode was introduced into the specific value to initialize the endpoint.

          2. -

            以占位符的形式输入。

            -

            这时会解析出具体占位符的值,然后:

            +

            Input in the form of a placeholder.

            +

            Then parses the concrete placeholder value, then:

            1. -

              依次从系统属性和环境变量中来取值。

              -

              例如,您输入的是 ${nacos.endpoint:defaultValue},那么解析出来的 占位符是 nacos.endpoint。解析出来后,会先读取系统属性中(即 System.getProperty("nacos.endpoint"))是否设置了 nacos.endpoint 变量值,如果没有,则会从系统环境变量中变量名为 nacos.endpoint 指定的值来初始化。

              +

              In order to value from the system properties and environment variables.

              +

              For example,You input is ${nacos.endpoint:defaultValue}, then parse out a placeholder is nacos.endpoint. Parsing comes out, can read first in the System properties (System.getProperty("nacos.endpoint")) is set up nacos endpoint variable values, if not, will be called from the System environment variables in the variables specified nacos.endpoint value to initialize.

            2. -

              如果通过解析出来的占位符还没有正确初始化 endpoint,则会从系统环境变量中变量名为 ALIBABA_ALIWARE_ENDPOINT_URL 指定的值来初始化。

              +

              If by parsing out a placeholder is not properly initialized the endpoint, is from the system environment variables in called ALIBABA_ALIWARE_ENDPOINT_URL to initialize the specified value.

            3. -

              如果经过以上两步还没有被初始化,这时如果您设置了默认值,这个时候就会使用默认值来初始化 endpoint,否则的话以解析出来的占位符返回。

              +

              If after the above two steps have not been initialized, then if you set the default value, this time will use the default value to initialize the endpoint, otherwise returned to parse out a placeholder.

          3. @@ -126,11 +116,11 @@

            endpoint 的参数初始化

        3. -

          关闭 endpoint 参数规则解析

          -

          当关闭了 endpoint 参数规则解析的时候,这个时候就以用户态在构造 Nacos Client 时通过 properties 参数输入的 endpoint 值为主。

          +

          Close the endpoint parameter parsing rules

          +

          When closed the endpoint parameter parsing rules, this time is in user mode in constructing Nacos Client through the properties parameter input values of the endpoint.

      -

      默认情况下, Nacos Client 是开启 endpoint 参数规则解析的能力。如果你想关闭该能力,可在 Nacos Client 初始化的时候在传入的 properties 实例中指定 key 为 isUseEndpointParsingRule,值为 false 即可关闭。

      +

      By default, Nacos Client is the ability to open the endpoint parameter parsing rules. If you want to close the ability, can be in Nacos Client initialization when the incoming instances of the properties specified in the key to isUseEndpointParsingRule, false value is can be closed.

      @@ -139,4 +129,4 @@

      endpoint 的参数初始化

      - \ No newline at end of file + From 0fbf5ab509a4f00c73e054824d8fd49e0a0d4e7a Mon Sep 17 00:00:00 2001 From: Marcia Xu <48591728+Ross0101@users.noreply.github.com> Date: Sat, 6 Jul 2019 15:40:43 +0800 Subject: [PATCH 21/25] Translation namespace endpoint best practices.json --- en-us/docs/namespace-endpoint-best-practices.json | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/en-us/docs/namespace-endpoint-best-practices.json b/en-us/docs/namespace-endpoint-best-practices.json index d6775ebe7d3..f89ce2b4138 100644 --- a/en-us/docs/namespace-endpoint-best-practices.json +++ b/en-us/docs/namespace-endpoint-best-practices.json @@ -1,6 +1,10 @@ { "filename": "namespace-endpoint-best-practices.md", - "__html": "

      namespace, endpoint 最佳实践

      \n

      随着使用 Nacos 的企业越来越多,遇到的最频繁的两个问题就是:如何在我的生产环境正确的来使用 namespace 以及 endpoint。这篇文章主要就是针对这两个问题来聊聊使用 nacos 过程中关于这两个参数配置的最佳实践方式。

      \n

      namespce

      \n

      关于 namespace ,以下主要从 namespace 的设计背景namespace 的最佳实践 两个方面来讨论。

      \n

      namespace 的设计背景

      \n

      namespace 的设计是 nacos 基于此做多环境以及多租户数据(配置和服务)隔离的。即:

      \n
        \n
      • \n

        从一个租户(用户)的角度来看,如果有多套不同的环境,那么这个时候可以根据指定的环境来创建不同的 namespce,以此来实现多环境的隔离。例如,你可能有日常,预发和生产三个不同的环境,那么使用一套 nacos 集群可以分别建以下三个不同的 namespace。如下图所示:

        \n
        \n \n
        \n
      • \n
      • \n

        从多个租户(用户)的角度来看,每个租户(用户)可能会有自己的 namespace,每个租户(用户)的配置数据以及注册的服务数据都会归属到自己的 namespace 下,以此来实现多租户间的数据隔离。例如超级管理员分配了三个租户,分别为张三、李四和王五。分配好了之后,各租户用自己的账户名和密码登录后,创建自己的命名空间。如下图所示。

        \n
        \n \t\n
        \n

        注意: 该功能还在规划中。

        \n
      • \n
      \n

      namespace 的最佳实践

      \n

      关于 namespace 的最佳实践 ,这部分主要包含有两个 Action:

      \n
        \n
      • 如何来获取 namespace 的值
      • \n
      • namespace 参数初始化方式
      • \n
      \n

      如何来获取 namespace 的值

      \n

      无论您是基于 Spring Cloud 或者 Dubbo 来使用 nacos,都会涉及到 namespace 的参数输入,那么这个时候 namespace 的值从哪里可以获取呢?

      \n
        \n
      1. \n

        如果您在使用过程中没有感知到这个参数的输入,那么 nacos 统一会使用一个默认的 namespace 作为输入,nacos naming 会使用 public 作为默认的参数来初始化,nacos config 会使用一个空字符串作为默认的参数来初始化。。

        \n
      2. \n
      3. \n

        如果您需要自定义自己的 namespace,那么这个值该怎么来产生?

        \n

        可以在 nacos 的控制台左边功能侧看到有一个 命名空间 的功能,点击就可以看到 新建命名空间 的按钮,那么这个时候就可以创建自己的命名空间了。创建成功之后,会生成一个命名空间ID,主要是用来避免命名空间名称有可能会出现重名的情况。因此当您在应用中需要配置指定的 namespace 时,填入的是命名空间ID。重要的事情说三遍,

        \n
          \n
        1. 当您在应用中需要配置指定的 namespace 时,填入的是命名空间 ID
        2. \n
        3. 当您在应用中需要配置指定的 namespace 时,填入的是命名空间 ID
        4. \n
        5. 当您在应用中需要配置指定的 namespace 时,填入的是命名空间 ID
        6. \n
        \n
      4. \n
      \n

      说明: namesace 为 public 是 nacos 的一个保留控件,如果您需要创建自己的 namespace,最好不要和 public 重名,以一个实际业务场景有具体语义的名字来命名,以免带来字面上不容易区分自己是哪一个 namespace。

      \n

      namespace 参数初始化方式

      \n

      nacos client 对 namespace 的初始化流程如下图所示:

      \n
      \n\t\n
      \n

      nacos client 对 namespace 的初始化,主要包含两部分,

      \n
        \n
      • \n

        用户态通过 nacos client 构造实例时通过 properties 参数传入的 namespace

        \n
      • \n
      • \n

        在云环境下(阿里云下的 EDAS)的 namespace 参数解析。

        \n

        可通过 -Duse.cloud.namespace.parsing=true/false 来控制是否需要在云环境自动解析 namespace 参数,默认为 true,是会自动解析,其目的就是方便用户上云时可以以零成本的方式平滑上云。如果用户在云上需要用自建的 nacos 下的 namespace,那这个时候只需将 -Duse.cloud.namespace.parsing=false 即可。

        \n
      • \n
      \n

      endpoint

      \n

      关于 endpoint ,也主要从 endpoint 的设计背景endpoint 的参数初始化 两个方面来讨论。

      \n

      endpoint 的设计背景

      \n

      当 nacos server 集群需要扩缩容时,客户端需要有一种能力能够及时感知到集群发生变化。及时感知到集群的变化是通过 endpoint 来实现的。也即客户端会定时的向 endpoint 发送请求来更新客户端内存中的集群列表。

      \n

      endpoint 的参数初始化

      \n

      Nacos Client 提供一种可以对传入的 endpoint 参数规则解析的能力。即当通过构造函数的 properties 来初始化 endpoint 时,指定的 endpoint 值可以是一个具体的值,也可以是一个占位符的形式,如下所示:

      \n
      \n

      ${endpoint.options:defaultValue}

      \n
      \n

      说明:

      \n
        \n
      1. endpoint.options 是一个具体的变量。支持从系统属性,系统环境变量中读取。
      2. \n
      3. defaultValue 是给出的一个默认值。当从具体的变量中没有被正确初始化时,会使用给出的默认值来初始化。
      4. \n
      \n

      整个 endpoint 的解析规则比较复杂,整体的一个解析流程图如下所示:

      \n
      \n\t\t\n\t
      \t\n

      注意: 蓝色特别区分的是支持云环境下(阿里云上的 EDAS)自动从系统环境变量中来读取 endpoint 值,以此来达到用户本地开发或者将应用往云上迁移的时候以零成本的改造方式实现平滑上云。

      \n

      说明:

      \n
        \n
      • \n

        开启 endpoint 参数规则解析

        \n
          \n
        1. \n

          如果在初始化 Nacos Client 的时候,没有通过 properties 来指定 endpoint,这个时候会从系统环境变量中变量名为 ALIBABA_ALIWARE_ENDPOINT_URL 指定的值来初始化,如果系统环境变量也没有设置,那么这个时候将会返回一个空字符串。

          \n
        2. \n
        3. \n

          如果设置了 endpoint,

          \n
            \n
          1. \n

            设置的 endpoint 是一个指定具体的值。

            \n

            这时会先从系统环境变量中变量名为 ALIBABA_ALIWARE_ENDPOINT_URL 指定的值来初始化,如果系统环境变量没有设置,那么这个时候用用户态传入的具体值来初始化 endpoint。

            \n
          2. \n
          3. \n

            以占位符的形式输入。

            \n

            这时会解析出具体占位符的值,然后:

            \n
              \n
            1. \n

              依次从系统属性和环境变量中来取值。

              \n

              例如,您输入的是 ${nacos.endpoint:defaultValue},那么解析出来的 占位符是 nacos.endpoint。解析出来后,会先读取系统属性中(即 System.getProperty("nacos.endpoint"))是否设置了 nacos.endpoint 变量值,如果没有,则会从系统环境变量中变量名为 nacos.endpoint 指定的值来初始化。

              \n
            2. \n
            3. \n

              如果通过解析出来的占位符还没有正确初始化 endpoint,则会从系统环境变量中变量名为 ALIBABA_ALIWARE_ENDPOINT_URL 指定的值来初始化。

              \n
            4. \n
            5. \n

              如果经过以上两步还没有被初始化,这时如果您设置了默认值,这个时候就会使用默认值来初始化 endpoint,否则的话以解析出来的占位符返回。

              \n
            6. \n
            \n
          4. \n
          \n
        4. \n
        \n
      • \n
      • \n

        关闭 endpoint 参数规则解析

        \n

        当关闭了 endpoint 参数规则解析的时候,这个时候就以用户态在构造 Nacos Client 时通过 properties 参数输入的 endpoint 值为主。

        \n
      • \n
      \n

      默认情况下, Nacos Client 是开启 endpoint 参数规则解析的能力。如果你想关闭该能力,可在 Nacos Client 初始化的时候在传入的 properties 实例中指定 key 为 isUseEndpointParsingRule,值为 false 即可关闭。

      \n", + "__html": "

      Namespace, endpoint best practices

      \n

      With using Nacos enterprises more and more, the two most frequently encountered problem is: how to use in my production environment right namespace and the endpoint.

      \n

      namespce

      \n

      Regarding the namespace, the following main from namespace design background and namespace best practice two aspects to discuss.

      \n

      namespace design background

      \n

      Namespace design is made more nacos based on this environment and multi-tenant data (configuration and service) of isolation.That is:

      \n
        \n
      • From the point of view of a tenant (user), if there are many different environment, so this time can be specified according to the environment to create different namespce, in order to realize the environment isolation.For example, you might be everyday, pretest and the production of three different environment, then use a nacos cluster can build the following three different namespace. As shown in the figure below:
      • \n
      \n

      \"\"

      \n
        \n
      • from the point of view of multiple tenants (user), each tenant (user) may have its own namespace, each tenant configuration data (user) and registered service data belonging to its own namespace, so as to achieve the multi-tenant isolation between the data.For example the supervisor assigned three tenants, San Zhang, Si Li and Wu Wang respectively.Distribution of good, after all the tenants on their own account name and password after logging in, create your own namespace. As shown in the figure below:
      • \n
      \n

      \"\"

      \n

      Note: This feature is still in planning.

      \n

      namespace best practices

      \n

      Best practices on the namespace, this part mainly consists of two actions:

      \n
        \n
      • How to obtain the value of the namespace
      • \n
      • The namespace parameters initialization method
      • \n
      \n

      How to obtain the value of the namespace

      \n

      Whether you are based on Spring Cloud or Dubbo to use nacos, involve namespace parameter input, so when the value of the namespace from where can I get?

      \n
        \n
      1. \n

        If you are using is not aware to this parameter in the process of input, then nacos unified will use a default namespace as input, nacos naming will use public as the default parameters to initialize, nacos config will use an empty string as the default parameters to initialize.

        \n
      2. \n
      3. \n

        If you need to customize your own namespace, then the value how to produce?

        \n

        Can see on the console function of the left side of the nacos has the function of a namespace, click on the new namespace can see button, so this time you can create your own namespace.Create success, generates a namespace ID, is mainly used to avoid namespace name namesake, is likely to happen. So when you need to configure the specified namespace in the application, fill in it is the namespace ID.The important things three times:

        \n
          \n
        1. When you need to configure the specified namespace in the application, fill in it isthe namespace ID.
        2. \n
        3. When you need to configure the specified namespace in the application, fill in it isthe namespace ID.
        4. \n
        5. When you need to configure the specified namespace in the application, fill in it isthe namespace ID.
        6. \n
        \n
      4. \n
      \n

      Namesace for public is nacos a retain control, if you need to create your own namespace, it is best not to public and name repetition, to an actual business scenarios have specific semantic named after, lest bring literally a namespace which is not easy to distinguish himself.

      \n

      namespace parameters initialization method

      \n

      Nacos client for namespace initialization process as shown in the figure below:

      \n

      \"\"

      \n

      Nacos client initialization of the namespace contains two main parts:

      \n
        \n
      • \n

        User mode by nacos client through the properties in the instance structure parameters was introduced into the namespace.

        \n
      • \n
      • \n

        In a cloud environment (Alibaba cloud of EDAS) of the namespace argument parsing.

        \n

        By -Duse.cloud.namespace.parsing=true/false whether you need to control in a cloud environment automatic parsing namespace parameter, the default value is true, is automatically parsed, its purpose is convenient when the user on the cloud can be smooth on the cloud in the form of zero cost.If the user on the cloud under the need to use the self-built nacos namespace, that this time you only need to -Duse.cloud.namespace.parsing=false.

        \n
      • \n
      \n

      endpoint

      \n

      On the endpoint, and mainly from the the design background of endpoint and the endpoint parameters initialization two aspects to discuss.

      \n

      The design background of endpoint

      \n

      When nacos server cluster needs to enlarge shrinks, let a client needs to have a kind of ability can timely change perception to the cluster. In a timely manner to perceive the change of the cluster is realized through the endpoint.That the client will be timed to the endpoint sends a request to update the client list in memory clusters.

      \n

      The endpoint of the initialization parameter

      \n

      Nacos Client provides an endpoint of the incoming parameter rules make sense of it.When through the constructor to initialize the properties the endpoint, the specified endpoint value can be a specific value, also can be in the form of a placeholder, as shown below:

      \n
      \n

      ${endpoint.options:defaultValue}

      \n
      \n

      Description:

      \n
        \n
      1. endpoint.options is a specific variable.Support from the system property, reads the system environment variables.
      2. \n
      3. defaultValue is given a default value.When is not properly initialized from the specific variables, the given default value is used to initialize.
      4. \n
      \n

      The endpoint of the parsing rules is more complex, the overall flow chart of a parse is as follows:

      \n

      \"\"

      \n

      Description: Blue special distinction is to support a cloud environment (Alibaba cloud EDAS) automatically from the system environment variables to read in the endpoint value, in order to achieve the user local development or moving applications to the cloud with zero cost on the way to achieve a smooth of cloud.

      \n

      Description:

      \n
        \n
      • \n

        Open the endpoint parameters parsing rules

        \n
          \n
        1. \n

          If the initialization Nacos Client, not through the properties to specify the endpoint, this time from the system environment variables in called ALIBABA_ALIWARE_ENDPOINT_URL to initialize the specified value, if the system environment variable is not set, so this time will return an empty string.

          \n
        2. \n
        3. \n

          If set the endpoint,

          \n
            \n
          1. \n

            Set the endpoint is a specific value specified.

            \n

            At this time will be from the system environment variables in the variables called ALIBABA_ALIWARE_ENDPOINT_URL to initialize the specified value, if the system environment variables not set, so this time use user mode was introduced into the specific value to initialize the endpoint.

            \n
          2. \n
          3. \n

            Input in the form of a placeholder.

            \n

            Then parses the concrete placeholder value, then:

            \n
              \n
            1. \n

              In order to value from the system properties and environment variables.

              \n

              For example,You input is ${nacos.endpoint:defaultValue}, then parse out a placeholder is nacos.endpoint. Parsing comes out, can read first in the System properties (System.getProperty("nacos.endpoint")) is set up nacos endpoint variable values, if not, will be called from the System environment variables in the variables specified nacos.endpoint value to initialize.

              \n
            2. \n
            3. \n

              If by parsing out a placeholder is not properly initialized the endpoint, is from the system environment variables in called ALIBABA_ALIWARE_ENDPOINT_URL to initialize the specified value.

              \n
            4. \n
            5. \n

              If after the above two steps have not been initialized, then if you set the default value, this time will use the default value to initialize the endpoint, otherwise returned to parse out a placeholder.

              \n
            6. \n
            \n
          4. \n
          \n
        4. \n
        \n
      • \n
      • \n

        Close the endpoint parameter parsing rules

        \n

        When closed the endpoint parameter parsing rules, this time is in user mode in constructing Nacos Client through the properties parameter input values of the endpoint.

        \n
      • \n
      \n

      By default, Nacos Client is the ability to open the endpoint parameter parsing rules. If you want to close the ability, can be in Nacos Client initialization when the incoming instances of the properties specified in the key to isUseEndpointParsingRule, false value is can be closed.

      \n", "link": "/en-us/docs/namespace-endpoint-best-practices.html", - "meta": {} -} \ No newline at end of file + "meta": { + "title": "Namespace,endpoint best practices", + "keywords": "namespace,endpoint,best practices", + "description": "With using Nacos enterprises more and more,the two most frequently encountered problem is:how to use in my production environment right namespace and the endpoint." + } +} From c0c1891be2520d18a89ca4886d7c0da5e93bddf2 Mon Sep 17 00:00:00 2001 From: Marcia Xu <48591728+Ross0101@users.noreply.github.com> Date: Sat, 6 Jul 2019 15:42:10 +0800 Subject: [PATCH 22/25] Update nacos-sync-use.html --- zh-cn/docs/nacos-sync-use.html | 138 ++++++++++++++------------------- 1 file changed, 58 insertions(+), 80 deletions(-) diff --git a/zh-cn/docs/nacos-sync-use.html b/zh-cn/docs/nacos-sync-use.html index 0e1f06659ff..ffd66fedbc3 100644 --- a/zh-cn/docs/nacos-sync-use.html +++ b/zh-cn/docs/nacos-sync-use.html @@ -4,48 +4,42 @@ - - + + - nacos-sync-use + NacosSync 迁移用户手册 -
      Nacos 文档

      NacosSync迁移用户手册

      -

      +
      Nacos 文档

      NacosSync 迁移用户手册

      手册目标

        -
      • 启动NacosSync服务
      • -
      • 通过一个简单的例子,演示如何将注册到Zookeeper的Dubbo客户端迁移到Nacos -
      • +
      • 启动 NacosSync 服务
      • +
      • 通过一个简单的例子,演示如何将注册到 Zookeeper 的 Dubbo 客户端迁移到 Nacos。
      -

      系统需要

      -

      启动服务之前,你需要安装下面的服务:

      +

      准备工作

      +

      启动服务之前,你需要安装下面的服务:

      获取安装包

      -

      有2种方式可以获得NacosSync的安装包:

      +

      有两种方式可以获得 NacosSync 的安装包:

      -

      nacosSync.${version}.zip

      -
        -
      • 从GitHub上下载NacosSync的源码进行构建
      • +
      • 直接下载 NacosSync 的二进制安装包:nacosSync.${version}.zip
      • +
      • 从 GitHub 上下载 NacosSync 的源码进行构建

      Package:

      cd nacosSync/
       mvn clean package -U
       
      -

      目标文件的路径:

      +

      目标文件的路径:

      nacos-sync/nacossync-distribution/target/nacosSync.${version}.zip
       
      -

      解压安装包之后,工程的文件目录结构:

      +

      解压安装包之后,工程的文件目录结构:

      nacosSync
       ├── LICENSE
       ├── NOTICE
      @@ -59,47 +53,39 @@ 

      获取安装包

      ├── logs └── nacosSync-server.${version}.jar
      -

      -

      -

      -

      初始化DB

      -

      系统默认配置的数据库是MySql,也能支持其他的关系型数据库

      -
        -
      1. 建库,缺省的数据库名字为“nacos_Sync”
      2. -
      3. 数据库表不需要单独创建,默认使用了hibernate的自动建表功能
      4. -
      5. 如果你的环境不支持自动建表,可以使用系统自带的sql脚本建表,脚本放在bin目录下
      6. -
      -

      -

      DB配置

      -

      DB的配置文件放在conf/application.properties中:

      +

      初始化数据库

      +

      系统默认配置的数据库是Mysql,也能支持其他的关系型数据库。 +1.建库,缺省的数据库名字为“nacos_Sync”。 +2.数据库表不需要单独创建,默认使用了hibernate的自动建表功能。 +3.如果你的环境不支持自动建表,可以使用系统自带的sql脚本建表,脚本放在bin目录下。

      +

      数据库配置

      +

      数据库的配置文件放在conf/application.properties中:

      spring.datasource.url=jdbc:mysql://127.0.0.1:3306/nacos_sync?characterEncoding=utf8
       spring.datasource.username=root
       spring.datasource.password=root
       
      -

      启动服务器

      $ nacosSync/bin:
       sh startup.sh  restart
       
      -

      检查系统状态

      -

      1.系统日志检查
      日志的路径在 nacosSync/logs/nacosSync.log,检查是否有异常信息
      2.检查系统端口(缺省的系统端口是8081,你可以自己定义在application.properties中)

      +

      1.检查系统日志

      +

      日志的路径在nacosSync/logs/nacosSync.log,检查是否有异常信息。

      +

      2.检查系统端口

      +

      缺省的系统端口是8081,你可以自己定义在application.properties中。

      $netstat -ano|grep 8081
       tcp        0      0 0.0.0.0:8081                0.0.0.0:*                   LISTEN      off (0.00/0/0)
       
      -

      控制台

      -

      访问路径:

      +

      访问路径:

      http://127.0.0.1:8081/#/serviceSync
       

      image.png

      -

      如果检查没有问题,NacosSync已经正常启动了,NacosSync的部署结构:
      image.png

      -

      +

      如果检查没有问题,NacosSync 已经正常启动了,NacosSync 的部署结构:image.png

      开始迁移

      -

      迁移信息

      -

      Dubbo服务的部署信息:
      image.png

      -

      迁移的服务:

      +

      Dubbo服务的部署信息:image.png

      +

      迁移的服务:

      @@ -116,46 +102,42 @@

      迁移信息

      -

      添加注册中心集群信息

      -

      1.点击左侧导航栏中的“集群配置”按钮,新增加一个集群,先增加一个Zookeeper集群,选择集群类型为ZK
      +

      1.点击左侧导航栏中的“集群配置”按钮,新增加一个集群,先增加一个Zookeeper集群,选择集群类型为ZK。 image.png

      -

      注意:集群名字可以自定义,但是一旦确认,不能被修改,否则基于此集群增加的任务,在NacosSync重启后,将不会恢复成功

      +

      注意:集群名字可以自定义,但是一旦确认,不能被修改,否则基于此集群增加的任务,在 NacosSync 重启后,将不会恢复成功。

      -

      2.同样的步骤,增加NacosSync集群
      +

      2.同样的步骤,增加NacosSync集群。 image.png

      -

      添加完成后,可以在列表中查询到
      +

      3.添加完成后,可以在列表中查询到: image.png

      -

      添加同步任务

      -

      1.增加一个同步任务,从Zookeeper集群同步到Nacos集群,同步的粒度是服务,Zookeeper集群则称为源集群,Nacos集群称为目标集群
      +

      1.增加一个同步任务,从Zookeeper集群同步到Nacos集群,同步的粒度是服务,Zookeeper集群则称为源集群,Nacos集群称为目标集群。 imagesd.png

      -

      添加完成之后,可以在服务同步列表中,查看已添加的同步任务:
      +

      添加完成之后,可以在服务同步列表中,查看已添加的同步任务: image.png

      -

      2.同步完成之后,检查下数据是否同步成功到Nacos集群,可以通过Nacos的控制台进行查询
      +

      2.同步完成之后,检查下数据是否同步成功到Nacos集群,可以通过Nacos的控制台进行查询。 image.png

      -

      此刻,数据已经成功从Zookeeper集群同步到了Nacos集群,部署结构如下:

      -

      image.png -

      -

      让Dubbo客户端连接到Nacos注册中心

      -

      +

      3.此刻,数据已经成功从Zookeeper集群同步到了Nacos集群,部署结构如下: +image.png

      +

      Dubbo 客户端连接到 Nacos 注册中心

      Dubbo Consumer客户端迁移

      -

      Dubbo 已经支持Nacos注册中心,支持的版本为2.5+,需要增加一个Nacos注册中心的Dubbo扩展插件依赖:

      +

      Dubbo 已经支持Nacos注册中心,支持的版本为2.5+,需要增加一个Nacos注册中心的Dubbo扩展插件依赖:

      <dependency>
             <groupId>com.alibaba</groupId>
             <artifactId>dubbo-registry-nacos</artifactId>
       			<version>0.0.2</version>
       </dependency>
       
      -



      增加Nacos客户端的依赖:

      +

      增加Nacos客户端的依赖:

      <dependency>
               <groupId>com.alibaba.nacos</groupId>
               <artifactId>nacos-client</artifactId>
               <version>0.6.2</version>
       </dependency>
       
      -

      配置Dubbo Consumer的Dubbo配置文件,让客户端能够找到Nacos集群
      consumer.yaml

      +

      配置Dubbo Consumer的Dubbo配置文件consumer.yaml,让客户端能够找到Nacos集群。

      spring:
         application:
       name: dubbo-consumer
      @@ -167,37 +149,33 @@ 

      Dubbo Consumer客户端迁移

      registry: address: nacos://127.0.0.1:8848
      -

      不需要修改代码,配置更新完毕之后 ,你就可以重启你的应用,使之生效了.

      -

      Consumer发布完成之后,目前的部署结构如下:
      -image.png -

      +

      不需要修改代码,配置更新完毕之后,你就可以重启你的应用,使之生效了。

      +

      Consumer发布完成之后,目前的部署结构如下: +image.png

      Dubbo Provider迁移

      -

      在升级Provider之前,你需要确保该Provider发布的服务,都已经配置在NacosSync中,同步的方式为从Nacos同步到Zookeeper,因为Provider升级连接到Nacos之后,需要确保老的Dubbo Consumer客户端能够在Zookeeper上订阅到该Provider的地址,现在,我们增加一个同步任务:
      -image.png -
      -image.png

      +

      在升级Provider之前,你需要确保该Provider发布的服务,都已经配置在 NacosSync 中,同步的方式为从Nacos同步到Zookeeper,因为Provider升级连接到Nacos之后,需要确保老的Dubbo Consumer客户端能够在Zookeeper上订阅到该Provider的地址,现在,我们增加一个同步任务: +image.png

      +

      image.png

      -

      注意:Nacos服务同步到Zookeeper,不需要填写版本号,你在选择源集群的时候,版本号的输入框会自动隐藏掉

      +

      注意:Nacos服务同步到Zookeeper,不需要填写版本号,你在选择源集群的时候,版本号的输入框会自动隐藏掉。

      -

      同步任务完成后,你就可以升级Provider了,升级Provider的方法,参考升级Consumer的步骤. -

      +

      同步任务完成后,你就可以升级Provider了,升级Provider的方法,参考升级Consumer的步骤。

      新的部署结构

        -
      • 在升级的过程中,会有新老版本的客户端同时存在,部署结构如下:
      • +
      • 在升级的过程中,会有新老版本的客户端同时存在,部署结构如下:

      image.png

        -
      • 在所有的客户端迁移完成之后,部署结构如下:
      • +
      • 所有的客户端迁移完成之后,部署结构如下:

      image.png

      -

      现在,Zookeeper集群,NacosSync集群就可以下线了.

      -

      +

      现在,Zookeeper集群,NacosSync集群就可以下线了。

      注意事项

        -
      • 同步任务添加之后,需要确保下服务是否成功同步到目标集群,可以通过目标集群的控制台进行查询
      • -
      • NacosSync支持高可用集群模式部署,你只需要把数据库配置成同一个即可
      • -
      • 如果梳理不清楚订阅和发布的服务,建议可以把服务都做双向同步
      • -
      • Dubbo客户端目前不支持Nacos的权重功能,如果你用到了权重功能,需要重新考虑一下方案是否合适
      • +
      • 同步任务添加之后,需要确保下服务是否成功同步到目标集群,可以通过目标集群的控制台进行查询。
      • +
      • NacosSync 支持高可用集群模式部署,你只需要把数据库配置成同一个即可。
      • +
      • 如果梳理不清楚订阅和发布的服务,建议可以把服务都做双向同步。
      • +
      • Dubbo 客户端目前不支持 Nacos 的权重功能,如果你用到了权重功能,需要重新考虑一下方案是否合适。
      @@ -207,4 +185,4 @@

      注意事项

      - \ No newline at end of file + From 321e0f7751f3a80c150daf128f3f8e0412ebf392 Mon Sep 17 00:00:00 2001 From: Marcia Xu <48591728+Ross0101@users.noreply.github.com> Date: Sat, 6 Jul 2019 15:42:52 +0800 Subject: [PATCH 23/25] Update nacos-sync-use.json --- zh-cn/docs/nacos-sync-use.json | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/zh-cn/docs/nacos-sync-use.json b/zh-cn/docs/nacos-sync-use.json index 10b4f898332..0b5f5d6046e 100644 --- a/zh-cn/docs/nacos-sync-use.json +++ b/zh-cn/docs/nacos-sync-use.json @@ -1,6 +1,10 @@ { "filename": "nacos-sync-use.md", - "__html": "

      NacosSync迁移用户手册

      \n

      \n

      手册目标

      \n
        \n
      • 启动NacosSync服务
      • \n
      • 通过一个简单的例子,演示如何将注册到Zookeeper的Dubbo客户端迁移到Nacos\n
      • \n
      \n

      系统需要

      \n

      启动服务之前,你需要安装下面的服务:

      \n\n

      获取安装包

      \n

      有2种方式可以获得NacosSync的安装包:

      \n\n

      nacosSync.${version}.zip

      \n
        \n
      • 从GitHub上下载NacosSync的源码进行构建
      • \n
      \n

      Package:

      \n
      cd nacosSync/\nmvn clean package -U\n
      \n

      目标文件的路径:

      \n
      nacos-sync/nacossync-distribution/target/nacosSync.${version}.zip\n
      \n

      解压安装包之后,工程的文件目录结构:

      \n
      nacosSync\n├── LICENSE\n├── NOTICE\n├── bin\n│   ├── nacosSync.sql\n│   ├── shutdown.sh\n│   └── startup.sh\n├── conf\n│   ├── application.properties\n│   └── logback-spring.xml\n├── logs\n└── nacosSync-server.${version}.jar\n
      \n

      \n

      \n

      \n

      初始化DB

      \n

      系统默认配置的数据库是MySql,也能支持其他的关系型数据库

      \n
        \n
      1. 建库,缺省的数据库名字为“nacos_Sync”
      2. \n
      3. 数据库表不需要单独创建,默认使用了hibernate的自动建表功能
      4. \n
      5. 如果你的环境不支持自动建表,可以使用系统自带的sql脚本建表,脚本放在bin目录下
      6. \n
      \n

      \n

      DB配置

      \n

      DB的配置文件放在conf/application.properties中:

      \n
      spring.datasource.url=jdbc:mysql://127.0.0.1:3306/nacos_sync?characterEncoding=utf8\nspring.datasource.username=root\nspring.datasource.password=root\n
      \n

      \n

      启动服务器

      \n
      $ nacosSync/bin:\nsh startup.sh  restart\n
      \n

      \n

      检查系统状态

      \n

      1.系统日志检查
      日志的路径在 nacosSync/logs/nacosSync.log,检查是否有异常信息
      2.检查系统端口(缺省的系统端口是8081,你可以自己定义在application.properties中)

      \n
      $netstat -ano|grep 8081\ntcp        0      0 0.0.0.0:8081                0.0.0.0:*                   LISTEN      off (0.00/0/0)\n
      \n

      \n

      控制台

      \n

      访问路径:

      \n
      http://127.0.0.1:8081/#/serviceSync\n
      \n

      \"image.png\"

      \n

      如果检查没有问题,NacosSync已经正常启动了,NacosSync的部署结构:
      \"image.png\"

      \n

      \n

      开始迁移

      \n

      \n

      迁移信息

      \n

      Dubbo服务的部署信息:
      \"image.png\"

      \n

      迁移的服务:

      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
      Service NameVersionGroup Name
      com.alibaba.nacos.api.DemoService1.0.0zk
      \n

      \n

      添加注册中心集群信息

      \n

      1.点击左侧导航栏中的“集群配置”按钮,新增加一个集群,先增加一个Zookeeper集群,选择集群类型为ZK
      \n\"image.png\"

      \n
      \n

      注意:集群名字可以自定义,但是一旦确认,不能被修改,否则基于此集群增加的任务,在NacosSync重启后,将不会恢复成功

      \n
      \n

      2.同样的步骤,增加NacosSync集群
      \n\"image.png\"

      \n

      添加完成后,可以在列表中查询到
      \n\"image.png\"

      \n

      \n

      添加同步任务

      \n

      1.增加一个同步任务,从Zookeeper集群同步到Nacos集群,同步的粒度是服务,Zookeeper集群则称为源集群,Nacos集群称为目标集群
      \n\"imagesd.png\"

      \n

      添加完成之后,可以在服务同步列表中,查看已添加的同步任务:
      \n\"image.png\"

      \n

      2.同步完成之后,检查下数据是否同步成功到Nacos集群,可以通过Nacos的控制台进行查询
      \n\"image.png\"

      \n

      此刻,数据已经成功从Zookeeper集群同步到了Nacos集群,部署结构如下:

      \n

      \"image.png\"\n

      \n

      让Dubbo客户端连接到Nacos注册中心

      \n

      \n

      Dubbo Consumer客户端迁移

      \n

      Dubbo 已经支持Nacos注册中心,支持的版本为2.5+,需要增加一个Nacos注册中心的Dubbo扩展插件依赖:

      \n
      <dependency>\n      <groupId>com.alibaba</groupId>\n      <artifactId>dubbo-registry-nacos</artifactId>\n\t\t\t<version>0.0.2</version>\n</dependency>\n
      \n



      增加Nacos客户端的依赖:

      \n
      <dependency>\n        <groupId>com.alibaba.nacos</groupId>\n        <artifactId>nacos-client</artifactId>\n        <version>0.6.2</version>\n</dependency>\n
      \n

      配置Dubbo Consumer的Dubbo配置文件,让客户端能够找到Nacos集群
      consumer.yaml

      \n
      spring:\n  application:\nname: dubbo-consumer\ndemo:\n  service:\n    version: 1.0.0\n    group: zk\ndubbo:\n  registry:\n    address: nacos://127.0.0.1:8848\n
      \n

      不需要修改代码,配置更新完毕之后 ,你就可以重启你的应用,使之生效了.

      \n

      Consumer发布完成之后,目前的部署结构如下:
      \n\"image.png\"\n

      \n

      Dubbo Provider迁移

      \n

      在升级Provider之前,你需要确保该Provider发布的服务,都已经配置在NacosSync中,同步的方式为从Nacos同步到Zookeeper,因为Provider升级连接到Nacos之后,需要确保老的Dubbo Consumer客户端能够在Zookeeper上订阅到该Provider的地址,现在,我们增加一个同步任务:
      \n\"image.png\"\n
      \n\"image.png\"

      \n
      \n

      注意:Nacos服务同步到Zookeeper,不需要填写版本号,你在选择源集群的时候,版本号的输入框会自动隐藏掉

      \n
      \n

      同步任务完成后,你就可以升级Provider了,升级Provider的方法,参考升级Consumer的步骤.\n

      \n

      新的部署结构

      \n
        \n
      • 在升级的过程中,会有新老版本的客户端同时存在,部署结构如下:
      • \n
      \n

      \"image.png\"

      \n
        \n
      • 在所有的客户端迁移完成之后,部署结构如下:
      • \n
      \n

      \"image.png\"

      \n

      现在,Zookeeper集群,NacosSync集群就可以下线了.

      \n

      \n

      注意事项

      \n
        \n
      • 同步任务添加之后,需要确保下服务是否成功同步到目标集群,可以通过目标集群的控制台进行查询
      • \n
      • NacosSync支持高可用集群模式部署,你只需要把数据库配置成同一个即可
      • \n
      • 如果梳理不清楚订阅和发布的服务,建议可以把服务都做双向同步
      • \n
      • Dubbo客户端目前不支持Nacos的权重功能,如果你用到了权重功能,需要重新考虑一下方案是否合适
      • \n
      \n", + "__html": "

      NacosSync 迁移用户手册

      \n

      手册目标

      \n
        \n
      • 启动 NacosSync 服务
      • \n
      • 通过一个简单的例子,演示如何将注册到 Zookeeper 的 Dubbo 客户端迁移到 Nacos。
      • \n
      \n

      准备工作

      \n

      启动服务之前,你需要安装下面的服务:

      \n\n

      获取安装包

      \n

      有两种方式可以获得 NacosSync 的安装包:

      \n
        \n
      • 直接下载 NacosSync 的二进制安装包:nacosSync.${version}.zip
      • \n
      • 从 GitHub 上下载 NacosSync 的源码进行构建
      • \n
      \n

      Package:

      \n
      cd nacosSync/\nmvn clean package -U\n
      \n

      目标文件的路径:

      \n
      nacos-sync/nacossync-distribution/target/nacosSync.${version}.zip\n
      \n

      解压安装包之后,工程的文件目录结构:

      \n
      nacosSync\n├── LICENSE\n├── NOTICE\n├── bin\n│   ├── nacosSync.sql\n│   ├── shutdown.sh\n│   └── startup.sh\n├── conf\n│   ├── application.properties\n│   └── logback-spring.xml\n├── logs\n└── nacosSync-server.${version}.jar\n
      \n

      初始化数据库

      \n

      系统默认配置的数据库是Mysql,也能支持其他的关系型数据库。\n1.建库,缺省的数据库名字为“nacos_Sync”。\n2.数据库表不需要单独创建,默认使用了hibernate的自动建表功能。\n3.如果你的环境不支持自动建表,可以使用系统自带的sql脚本建表,脚本放在bin目录下。

      \n

      数据库配置

      \n

      数据库的配置文件放在conf/application.properties中:

      \n
      spring.datasource.url=jdbc:mysql://127.0.0.1:3306/nacos_sync?characterEncoding=utf8\nspring.datasource.username=root\nspring.datasource.password=root\n
      \n

      启动服务器

      \n
      $ nacosSync/bin:\nsh startup.sh  restart\n
      \n

      检查系统状态

      \n

      1.检查系统日志

      \n

      日志的路径在nacosSync/logs/nacosSync.log,检查是否有异常信息。

      \n

      2.检查系统端口

      \n

      缺省的系统端口是8081,你可以自己定义在application.properties中。

      \n
      $netstat -ano|grep 8081\ntcp        0      0 0.0.0.0:8081                0.0.0.0:*                   LISTEN      off (0.00/0/0)\n
      \n

      控制台

      \n

      访问路径:

      \n
      http://127.0.0.1:8081/#/serviceSync\n
      \n

      \"image.png\"

      \n

      如果检查没有问题,NacosSync 已经正常启动了,NacosSync 的部署结构:\"image.png\"

      \n

      开始迁移

      \n

      迁移信息

      \n

      Dubbo服务的部署信息:\"image.png\"

      \n

      迁移的服务:

      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
      Service NameVersionGroup Name
      com.alibaba.nacos.api.DemoService1.0.0zk
      \n

      添加注册中心集群信息

      \n

      1.点击左侧导航栏中的“集群配置”按钮,新增加一个集群,先增加一个Zookeeper集群,选择集群类型为ZK。\n\"image.png\"

      \n
      \n

      注意:集群名字可以自定义,但是一旦确认,不能被修改,否则基于此集群增加的任务,在 NacosSync 重启后,将不会恢复成功。

      \n
      \n

      2.同样的步骤,增加NacosSync集群。\n\"image.png\"

      \n

      3.添加完成后,可以在列表中查询到:\n\"image.png\"

      \n

      添加同步任务

      \n

      1.增加一个同步任务,从Zookeeper集群同步到Nacos集群,同步的粒度是服务,Zookeeper集群则称为源集群,Nacos集群称为目标集群。\n\"imagesd.png\"

      \n

      添加完成之后,可以在服务同步列表中,查看已添加的同步任务:\n\"image.png\"

      \n

      2.同步完成之后,检查下数据是否同步成功到Nacos集群,可以通过Nacos的控制台进行查询。\n\"image.png\"

      \n

      3.此刻,数据已经成功从Zookeeper集群同步到了Nacos集群,部署结构如下:\n\"image.png\"

      \n

      Dubbo 客户端连接到 Nacos 注册中心

      \n

      Dubbo Consumer客户端迁移

      \n

      Dubbo 已经支持Nacos注册中心,支持的版本为2.5+,需要增加一个Nacos注册中心的Dubbo扩展插件依赖:

      \n
      <dependency>\n      <groupId>com.alibaba</groupId>\n      <artifactId>dubbo-registry-nacos</artifactId>\n\t\t\t<version>0.0.2</version>\n</dependency>\n
      \n

      增加Nacos客户端的依赖:

      \n
      <dependency>\n        <groupId>com.alibaba.nacos</groupId>\n        <artifactId>nacos-client</artifactId>\n        <version>0.6.2</version>\n</dependency>\n
      \n

      配置Dubbo Consumer的Dubbo配置文件consumer.yaml,让客户端能够找到Nacos集群。

      \n
      spring:\n  application:\nname: dubbo-consumer\ndemo:\n  service:\n    version: 1.0.0\n    group: zk\ndubbo:\n  registry:\n    address: nacos://127.0.0.1:8848\n
      \n

      不需要修改代码,配置更新完毕之后,你就可以重启你的应用,使之生效了。

      \n

      Consumer发布完成之后,目前的部署结构如下:\n\"image.png\"

      \n

      Dubbo Provider迁移

      \n

      在升级Provider之前,你需要确保该Provider发布的服务,都已经配置在 NacosSync 中,同步的方式为从Nacos同步到Zookeeper,因为Provider升级连接到Nacos之后,需要确保老的Dubbo Consumer客户端能够在Zookeeper上订阅到该Provider的地址,现在,我们增加一个同步任务:\n\"image.png\"

      \n

      \"image.png\"

      \n
      \n

      注意:Nacos服务同步到Zookeeper,不需要填写版本号,你在选择源集群的时候,版本号的输入框会自动隐藏掉。

      \n
      \n

      同步任务完成后,你就可以升级Provider了,升级Provider的方法,参考升级Consumer的步骤。

      \n

      新的部署结构

      \n
        \n
      • 在升级的过程中,会有新老版本的客户端同时存在,部署结构如下:
      • \n
      \n

      \"image.png\"

      \n
        \n
      • 所有的客户端迁移完成之后,部署结构如下:
      • \n
      \n

      \"image.png\"

      \n

      现在,Zookeeper集群,NacosSync集群就可以下线了。

      \n

      注意事项

      \n
        \n
      • 同步任务添加之后,需要确保下服务是否成功同步到目标集群,可以通过目标集群的控制台进行查询。
      • \n
      • NacosSync 支持高可用集群模式部署,你只需要把数据库配置成同一个即可。
      • \n
      • 如果梳理不清楚订阅和发布的服务,建议可以把服务都做双向同步。
      • \n
      • Dubbo 客户端目前不支持 Nacos 的权重功能,如果你用到了权重功能,需要重新考虑一下方案是否合适。
      • \n
      \n", "link": "/zh-cn/docs/nacos-sync-use.html", - "meta": {} -} \ No newline at end of file + "meta": { + "title": "NacosSync 迁移用户手册", + "keywords": "NacosSync,迁移,用户手册", + "description": "NacosSync 迁移用户手册" + } +} From e131a88fc91c8b2a594cd4feb58ea8adbb7f42f3 Mon Sep 17 00:00:00 2001 From: Marcia Xu <48591728+Ross0101@users.noreply.github.com> Date: Sat, 6 Jul 2019 15:43:24 +0800 Subject: [PATCH 24/25] Update namespace-endpoint-best-practices.html --- .../namespace-endpoint-best-practices.html | 62 ++++++++----------- 1 file changed, 26 insertions(+), 36 deletions(-) diff --git a/zh-cn/docs/namespace-endpoint-best-practices.html b/zh-cn/docs/namespace-endpoint-best-practices.html index fe32aa912b8..faf334c82f6 100644 --- a/zh-cn/docs/namespace-endpoint-best-practices.html +++ b/zh-cn/docs/namespace-endpoint-best-practices.html @@ -4,37 +4,31 @@ - - + + - namespace-endpoint-best-practices + Namespace,endpoint 最佳实践 -
      Nacos 文档

      namespace, endpoint 最佳实践

      +
      Nacos 文档

      Namespace, endpoint 最佳实践

      随着使用 Nacos 的企业越来越多,遇到的最频繁的两个问题就是:如何在我的生产环境正确的来使用 namespace 以及 endpoint。这篇文章主要就是针对这两个问题来聊聊使用 nacos 过程中关于这两个参数配置的最佳实践方式。

      namespce

      关于 namespace ,以下主要从 namespace 的设计背景namespace 的最佳实践 两个方面来讨论。

      namespace 的设计背景

      namespace 的设计是 nacos 基于此做多环境以及多租户数据(配置和服务)隔离的。即:

        -
      • -

        从一个租户(用户)的角度来看,如果有多套不同的环境,那么这个时候可以根据指定的环境来创建不同的 namespce,以此来实现多环境的隔离。例如,你可能有日常,预发和生产三个不同的环境,那么使用一套 nacos 集群可以分别建以下三个不同的 namespace。如下图所示:

        -
        - -
        -
      • -
      • -

        从多个租户(用户)的角度来看,每个租户(用户)可能会有自己的 namespace,每个租户(用户)的配置数据以及注册的服务数据都会归属到自己的 namespace 下,以此来实现多租户间的数据隔离。例如超级管理员分配了三个租户,分别为张三、李四和王五。分配好了之后,各租户用自己的账户名和密码登录后,创建自己的命名空间。如下图所示。

        -
        - -
        -

        注意: 该功能还在规划中。

        -
      • +
      • 从一个租户(用户)的角度来看,如果有多套不同的环境,那么这个时候可以根据指定的环境来创建不同的 namespce,以此来实现多环境的隔离。例如,你可能有日常,预发和生产三个不同的环境,那么使用一套 nacos 集群可以分别建以下三个不同的 namespace。如下图所示:
      -

      namespace 的最佳实践

      -

      关于 namespace 的最佳实践 ,这部分主要包含有两个 Action:

      +

      +
        +
      • 从多个租户(用户)的角度来看,每个租户(用户)可能会有自己的 namespace,每个租户(用户)的配置数据以及注册的服务数据都会归属到自己的 namespace 下,以此来实现多租户间的数据隔离。例如超级管理员分配了三个租户,分别为张三、李四和王五。分配好了之后,各租户用自己的账户名和密码登录后,创建自己的命名空间。如下图所示:
      • +
      +

      +

      注意: 该功能还在规划中。

      +

      namespace 的最佳实践

      +

      关于 namespace 的最佳实践,这部分主要包含有两个 Action:

      • 如何来获取 namespace 的值
      • namespace 参数初始化方式
      • @@ -43,11 +37,11 @@

        如何来获取 namespace 的值

        无论您是基于 Spring Cloud 或者 Dubbo 来使用 nacos,都会涉及到 namespace 的参数输入,那么这个时候 namespace 的值从哪里可以获取呢?

        1. -

          如果您在使用过程中没有感知到这个参数的输入,那么 nacos 统一会使用一个默认的 namespace 作为输入,nacos naming 会使用 public 作为默认的参数来初始化,nacos config 会使用一个空字符串作为默认的参数来初始化。。

          +

          如果您在使用过程中没有感知到这个参数的输入,那么 nacos 统一会使用一个默认的 namespace 作为输入,nacos naming 会使用 public 作为默认的参数来初始化,nacos config 会使用一个空字符串作为默认的参数来初始化。

        2. 如果您需要自定义自己的 namespace,那么这个值该怎么来产生?

          -

          可以在 nacos 的控制台左边功能侧看到有一个 命名空间 的功能,点击就可以看到 新建命名空间 的按钮,那么这个时候就可以创建自己的命名空间了。创建成功之后,会生成一个命名空间ID,主要是用来避免命名空间名称有可能会出现重名的情况。因此当您在应用中需要配置指定的 namespace 时,填入的是命名空间ID。重要的事情说三遍,

          +

          可以在 nacos 的控制台左边功能侧看到有一个 命名空间 的功能,点击就可以看到 新建命名空间 的按钮,那么这个时候就可以创建自己的命名空间了。创建成功之后,会生成一个命名空间ID,主要是用来避免命名空间名称有可能会出现重名的情况。因此当您在应用中需要配置指定的 namespace 时,填入的是命名空间ID。重要的事情说三遍:

          1. 当您在应用中需要配置指定的 namespace 时,填入的是命名空间 ID
          2. 当您在应用中需要配置指定的 namespace 时,填入的是命名空间 ID
          3. @@ -58,38 +52,34 @@

            如何来获取 namespace 的值

            说明: namesace 为 public 是 nacos 的一个保留控件,如果您需要创建自己的 namespace,最好不要和 public 重名,以一个实际业务场景有具体语义的名字来命名,以免带来字面上不容易区分自己是哪一个 namespace。

            namespace 参数初始化方式

            nacos client 对 namespace 的初始化流程如下图所示:

            -
            - -
            -

            nacos client 对 namespace 的初始化,主要包含两部分,

            +

            +

            nacos client 对 namespace 的初始化,主要包含两部分:

            • -

              用户态通过 nacos client 构造实例时通过 properties 参数传入的 namespace

              +

              用户态通过 nacos client 构造实例时通过 properties 参数传入的 namespace。

            • 在云环境下(阿里云下的 EDAS)的 namespace 参数解析。

              可通过 -Duse.cloud.namespace.parsing=true/false 来控制是否需要在云环境自动解析 namespace 参数,默认为 true,是会自动解析,其目的就是方便用户上云时可以以零成本的方式平滑上云。如果用户在云上需要用自建的 nacos 下的 namespace,那这个时候只需将 -Duse.cloud.namespace.parsing=false 即可。

            -

            endpoint

            +

            endpoint

            关于 endpoint ,也主要从 endpoint 的设计背景endpoint 的参数初始化 两个方面来讨论。

            -

            endpoint 的设计背景

            +

            endpoint 的设计背景

            当 nacos server 集群需要扩缩容时,客户端需要有一种能力能够及时感知到集群发生变化。及时感知到集群的变化是通过 endpoint 来实现的。也即客户端会定时的向 endpoint 发送请求来更新客户端内存中的集群列表。

            -

            endpoint 的参数初始化

            +

            endpoint 的参数初始化

            Nacos Client 提供一种可以对传入的 endpoint 参数规则解析的能力。即当通过构造函数的 properties 来初始化 endpoint 时,指定的 endpoint 值可以是一个具体的值,也可以是一个占位符的形式,如下所示:

            ${endpoint.options:defaultValue}

            -

            说明:

            +

            说明:

            1. endpoint.options 是一个具体的变量。支持从系统属性,系统环境变量中读取。
            2. defaultValue 是给出的一个默认值。当从具体的变量中没有被正确初始化时,会使用给出的默认值来初始化。

            整个 endpoint 的解析规则比较复杂,整体的一个解析流程图如下所示:

            -
            - -
            -

            注意: 蓝色特别区分的是支持云环境下(阿里云上的 EDAS)自动从系统环境变量中来读取 endpoint 值,以此来达到用户本地开发或者将应用往云上迁移的时候以零成本的改造方式实现平滑上云。

            +

            +

            注意: 蓝色特别区分的是支持云环境下(阿里云上的 EDAS)自动从系统环境变量中来读取 endpoint 值,以此来达到用户本地开发或者将应用往云上迁移的时候以零成本的改造方式实现平滑上云。

            说明:

            • @@ -111,7 +101,7 @@

              endpoint 的参数初始化

              1. 依次从系统属性和环境变量中来取值。

                -

                例如,您输入的是 ${nacos.endpoint:defaultValue},那么解析出来的 占位符是 nacos.endpoint。解析出来后,会先读取系统属性中(即 System.getProperty("nacos.endpoint"))是否设置了 nacos.endpoint 变量值,如果没有,则会从系统环境变量中变量名为 nacos.endpoint 指定的值来初始化。

                +

                例如,您输入的是 ${nacos.endpoint:defaultValue},那么解析出来的占位符是 nacos.endpoint。解析出来后,会先读取系统属性中(即 System.getProperty("nacos.endpoint"))是否设置了 nacos.endpoint 变量值,如果没有,则会从系统环境变量中变量名为 nacos.endpoint 指定的值来初始化。

              2. 如果通过解析出来的占位符还没有正确初始化 endpoint,则会从系统环境变量中变量名为 ALIBABA_ALIWARE_ENDPOINT_URL 指定的值来初始化。

                @@ -139,4 +129,4 @@

                endpoint 的参数初始化

                - \ No newline at end of file + From ff1738e31be4e53e9fe0620f44cc4c180ce28012 Mon Sep 17 00:00:00 2001 From: Marcia Xu <48591728+Ross0101@users.noreply.github.com> Date: Sat, 6 Jul 2019 15:43:52 +0800 Subject: [PATCH 25/25] Update namespace-endpoint-best-practices.json --- zh-cn/docs/namespace-endpoint-best-practices.json | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/zh-cn/docs/namespace-endpoint-best-practices.json b/zh-cn/docs/namespace-endpoint-best-practices.json index 5a90bd858a6..e755e9aad65 100644 --- a/zh-cn/docs/namespace-endpoint-best-practices.json +++ b/zh-cn/docs/namespace-endpoint-best-practices.json @@ -1,6 +1,10 @@ { "filename": "namespace-endpoint-best-practices.md", - "__html": "

                namespace, endpoint 最佳实践

                \n

                随着使用 Nacos 的企业越来越多,遇到的最频繁的两个问题就是:如何在我的生产环境正确的来使用 namespace 以及 endpoint。这篇文章主要就是针对这两个问题来聊聊使用 nacos 过程中关于这两个参数配置的最佳实践方式。

                \n

                namespce

                \n

                关于 namespace ,以下主要从 namespace 的设计背景namespace 的最佳实践 两个方面来讨论。

                \n

                namespace 的设计背景

                \n

                namespace 的设计是 nacos 基于此做多环境以及多租户数据(配置和服务)隔离的。即:

                \n
                  \n
                • \n

                  从一个租户(用户)的角度来看,如果有多套不同的环境,那么这个时候可以根据指定的环境来创建不同的 namespce,以此来实现多环境的隔离。例如,你可能有日常,预发和生产三个不同的环境,那么使用一套 nacos 集群可以分别建以下三个不同的 namespace。如下图所示:

                  \n
                  \n \n
                  \n
                • \n
                • \n

                  从多个租户(用户)的角度来看,每个租户(用户)可能会有自己的 namespace,每个租户(用户)的配置数据以及注册的服务数据都会归属到自己的 namespace 下,以此来实现多租户间的数据隔离。例如超级管理员分配了三个租户,分别为张三、李四和王五。分配好了之后,各租户用自己的账户名和密码登录后,创建自己的命名空间。如下图所示。

                  \n
                  \n \t\n
                  \n

                  注意: 该功能还在规划中。

                  \n
                • \n
                \n

                namespace 的最佳实践

                \n

                关于 namespace 的最佳实践 ,这部分主要包含有两个 Action:

                \n
                  \n
                • 如何来获取 namespace 的值
                • \n
                • namespace 参数初始化方式
                • \n
                \n

                如何来获取 namespace 的值

                \n

                无论您是基于 Spring Cloud 或者 Dubbo 来使用 nacos,都会涉及到 namespace 的参数输入,那么这个时候 namespace 的值从哪里可以获取呢?

                \n
                  \n
                1. \n

                  如果您在使用过程中没有感知到这个参数的输入,那么 nacos 统一会使用一个默认的 namespace 作为输入,nacos naming 会使用 public 作为默认的参数来初始化,nacos config 会使用一个空字符串作为默认的参数来初始化。。

                  \n
                2. \n
                3. \n

                  如果您需要自定义自己的 namespace,那么这个值该怎么来产生?

                  \n

                  可以在 nacos 的控制台左边功能侧看到有一个 命名空间 的功能,点击就可以看到 新建命名空间 的按钮,那么这个时候就可以创建自己的命名空间了。创建成功之后,会生成一个命名空间ID,主要是用来避免命名空间名称有可能会出现重名的情况。因此当您在应用中需要配置指定的 namespace 时,填入的是命名空间ID。重要的事情说三遍,

                  \n
                    \n
                  1. 当您在应用中需要配置指定的 namespace 时,填入的是命名空间 ID
                  2. \n
                  3. 当您在应用中需要配置指定的 namespace 时,填入的是命名空间 ID
                  4. \n
                  5. 当您在应用中需要配置指定的 namespace 时,填入的是命名空间 ID
                  6. \n
                  \n
                4. \n
                \n

                说明: namesace 为 public 是 nacos 的一个保留控件,如果您需要创建自己的 namespace,最好不要和 public 重名,以一个实际业务场景有具体语义的名字来命名,以免带来字面上不容易区分自己是哪一个 namespace。

                \n

                namespace 参数初始化方式

                \n

                nacos client 对 namespace 的初始化流程如下图所示:

                \n
                \n\t\n
                \n

                nacos client 对 namespace 的初始化,主要包含两部分,

                \n
                  \n
                • \n

                  用户态通过 nacos client 构造实例时通过 properties 参数传入的 namespace

                  \n
                • \n
                • \n

                  在云环境下(阿里云下的 EDAS)的 namespace 参数解析。

                  \n

                  可通过 -Duse.cloud.namespace.parsing=true/false 来控制是否需要在云环境自动解析 namespace 参数,默认为 true,是会自动解析,其目的就是方便用户上云时可以以零成本的方式平滑上云。如果用户在云上需要用自建的 nacos 下的 namespace,那这个时候只需将 -Duse.cloud.namespace.parsing=false 即可。

                  \n
                • \n
                \n

                endpoint

                \n

                关于 endpoint ,也主要从 endpoint 的设计背景endpoint 的参数初始化 两个方面来讨论。

                \n

                endpoint 的设计背景

                \n

                当 nacos server 集群需要扩缩容时,客户端需要有一种能力能够及时感知到集群发生变化。及时感知到集群的变化是通过 endpoint 来实现的。也即客户端会定时的向 endpoint 发送请求来更新客户端内存中的集群列表。

                \n

                endpoint 的参数初始化

                \n

                Nacos Client 提供一种可以对传入的 endpoint 参数规则解析的能力。即当通过构造函数的 properties 来初始化 endpoint 时,指定的 endpoint 值可以是一个具体的值,也可以是一个占位符的形式,如下所示:

                \n
                \n

                ${endpoint.options:defaultValue}

                \n
                \n

                说明:

                \n
                  \n
                1. endpoint.options 是一个具体的变量。支持从系统属性,系统环境变量中读取。
                2. \n
                3. defaultValue 是给出的一个默认值。当从具体的变量中没有被正确初始化时,会使用给出的默认值来初始化。
                4. \n
                \n

                整个 endpoint 的解析规则比较复杂,整体的一个解析流程图如下所示:

                \n
                \n\t\t\n\t
                \t\n

                注意: 蓝色特别区分的是支持云环境下(阿里云上的 EDAS)自动从系统环境变量中来读取 endpoint 值,以此来达到用户本地开发或者将应用往云上迁移的时候以零成本的改造方式实现平滑上云。

                \n

                说明:

                \n
                  \n
                • \n

                  开启 endpoint 参数规则解析

                  \n
                    \n
                  1. \n

                    如果在初始化 Nacos Client 的时候,没有通过 properties 来指定 endpoint,这个时候会从系统环境变量中变量名为 ALIBABA_ALIWARE_ENDPOINT_URL 指定的值来初始化,如果系统环境变量也没有设置,那么这个时候将会返回一个空字符串。

                    \n
                  2. \n
                  3. \n

                    如果设置了 endpoint,

                    \n
                      \n
                    1. \n

                      设置的 endpoint 是一个指定具体的值。

                      \n

                      这时会先从系统环境变量中变量名为 ALIBABA_ALIWARE_ENDPOINT_URL 指定的值来初始化,如果系统环境变量没有设置,那么这个时候用用户态传入的具体值来初始化 endpoint。

                      \n
                    2. \n
                    3. \n

                      以占位符的形式输入。

                      \n

                      这时会解析出具体占位符的值,然后:

                      \n
                        \n
                      1. \n

                        依次从系统属性和环境变量中来取值。

                        \n

                        例如,您输入的是 ${nacos.endpoint:defaultValue},那么解析出来的 占位符是 nacos.endpoint。解析出来后,会先读取系统属性中(即 System.getProperty("nacos.endpoint"))是否设置了 nacos.endpoint 变量值,如果没有,则会从系统环境变量中变量名为 nacos.endpoint 指定的值来初始化。

                        \n
                      2. \n
                      3. \n

                        如果通过解析出来的占位符还没有正确初始化 endpoint,则会从系统环境变量中变量名为 ALIBABA_ALIWARE_ENDPOINT_URL 指定的值来初始化。

                        \n
                      4. \n
                      5. \n

                        如果经过以上两步还没有被初始化,这时如果您设置了默认值,这个时候就会使用默认值来初始化 endpoint,否则的话以解析出来的占位符返回。

                        \n
                      6. \n
                      \n
                    4. \n
                    \n
                  4. \n
                  \n
                • \n
                • \n

                  关闭 endpoint 参数规则解析

                  \n

                  当关闭了 endpoint 参数规则解析的时候,这个时候就以用户态在构造 Nacos Client 时通过 properties 参数输入的 endpoint 值为主。

                  \n
                • \n
                \n

                默认情况下, Nacos Client 是开启 endpoint 参数规则解析的能力。如果你想关闭该能力,可在 Nacos Client 初始化的时候在传入的 properties 实例中指定 key 为 isUseEndpointParsingRule,值为 false 即可关闭。

                \n", + "__html": "

                Namespace, endpoint 最佳实践

                \n

                随着使用 Nacos 的企业越来越多,遇到的最频繁的两个问题就是:如何在我的生产环境正确的来使用 namespace 以及 endpoint。这篇文章主要就是针对这两个问题来聊聊使用 nacos 过程中关于这两个参数配置的最佳实践方式。

                \n

                namespce

                \n

                关于 namespace ,以下主要从 namespace 的设计背景namespace 的最佳实践 两个方面来讨论。

                \n

                namespace 的设计背景

                \n

                namespace 的设计是 nacos 基于此做多环境以及多租户数据(配置和服务)隔离的。即:

                \n
                  \n
                • 从一个租户(用户)的角度来看,如果有多套不同的环境,那么这个时候可以根据指定的环境来创建不同的 namespce,以此来实现多环境的隔离。例如,你可能有日常,预发和生产三个不同的环境,那么使用一套 nacos 集群可以分别建以下三个不同的 namespace。如下图所示:
                • \n
                \n

                \"\"

                \n
                  \n
                • 从多个租户(用户)的角度来看,每个租户(用户)可能会有自己的 namespace,每个租户(用户)的配置数据以及注册的服务数据都会归属到自己的 namespace 下,以此来实现多租户间的数据隔离。例如超级管理员分配了三个租户,分别为张三、李四和王五。分配好了之后,各租户用自己的账户名和密码登录后,创建自己的命名空间。如下图所示:
                • \n
                \n

                \"\"

                \n

                注意: 该功能还在规划中。

                \n

                namespace 的最佳实践

                \n

                关于 namespace 的最佳实践,这部分主要包含有两个 Action:

                \n
                  \n
                • 如何来获取 namespace 的值
                • \n
                • namespace 参数初始化方式
                • \n
                \n

                如何来获取 namespace 的值

                \n

                无论您是基于 Spring Cloud 或者 Dubbo 来使用 nacos,都会涉及到 namespace 的参数输入,那么这个时候 namespace 的值从哪里可以获取呢?

                \n
                  \n
                1. \n

                  如果您在使用过程中没有感知到这个参数的输入,那么 nacos 统一会使用一个默认的 namespace 作为输入,nacos naming 会使用 public 作为默认的参数来初始化,nacos config 会使用一个空字符串作为默认的参数来初始化。

                  \n
                2. \n
                3. \n

                  如果您需要自定义自己的 namespace,那么这个值该怎么来产生?

                  \n

                  可以在 nacos 的控制台左边功能侧看到有一个 命名空间 的功能,点击就可以看到 新建命名空间 的按钮,那么这个时候就可以创建自己的命名空间了。创建成功之后,会生成一个命名空间ID,主要是用来避免命名空间名称有可能会出现重名的情况。因此当您在应用中需要配置指定的 namespace 时,填入的是命名空间ID。重要的事情说三遍:

                  \n
                    \n
                  1. 当您在应用中需要配置指定的 namespace 时,填入的是命名空间 ID
                  2. \n
                  3. 当您在应用中需要配置指定的 namespace 时,填入的是命名空间 ID
                  4. \n
                  5. 当您在应用中需要配置指定的 namespace 时,填入的是命名空间 ID
                  6. \n
                  \n
                4. \n
                \n

                说明: namesace 为 public 是 nacos 的一个保留控件,如果您需要创建自己的 namespace,最好不要和 public 重名,以一个实际业务场景有具体语义的名字来命名,以免带来字面上不容易区分自己是哪一个 namespace。

                \n

                namespace 参数初始化方式

                \n

                nacos client 对 namespace 的初始化流程如下图所示:

                \n

                \"\"

                \n

                nacos client 对 namespace 的初始化,主要包含两部分:

                \n
                  \n
                • \n

                  用户态通过 nacos client 构造实例时通过 properties 参数传入的 namespace。

                  \n
                • \n
                • \n

                  在云环境下(阿里云下的 EDAS)的 namespace 参数解析。

                  \n

                  可通过 -Duse.cloud.namespace.parsing=true/false 来控制是否需要在云环境自动解析 namespace 参数,默认为 true,是会自动解析,其目的就是方便用户上云时可以以零成本的方式平滑上云。如果用户在云上需要用自建的 nacos 下的 namespace,那这个时候只需将 -Duse.cloud.namespace.parsing=false 即可。

                  \n
                • \n
                \n

                endpoint

                \n

                关于 endpoint ,也主要从 endpoint 的设计背景endpoint 的参数初始化 两个方面来讨论。

                \n

                endpoint 的设计背景

                \n

                当 nacos server 集群需要扩缩容时,客户端需要有一种能力能够及时感知到集群发生变化。及时感知到集群的变化是通过 endpoint 来实现的。也即客户端会定时的向 endpoint 发送请求来更新客户端内存中的集群列表。

                \n

                endpoint 的参数初始化

                \n

                Nacos Client 提供一种可以对传入的 endpoint 参数规则解析的能力。即当通过构造函数的 properties 来初始化 endpoint 时,指定的 endpoint 值可以是一个具体的值,也可以是一个占位符的形式,如下所示:

                \n
                \n

                ${endpoint.options:defaultValue}

                \n
                \n

                说明:

                \n
                  \n
                1. endpoint.options 是一个具体的变量。支持从系统属性,系统环境变量中读取。
                2. \n
                3. defaultValue 是给出的一个默认值。当从具体的变量中没有被正确初始化时,会使用给出的默认值来初始化。
                4. \n
                \n

                整个 endpoint 的解析规则比较复杂,整体的一个解析流程图如下所示:

                \n

                \"\"

                \n

                注意: 蓝色特别区分的是支持云环境下(阿里云上的 EDAS)自动从系统环境变量中来读取 endpoint 值,以此来达到用户本地开发或者将应用往云上迁移的时候以零成本的改造方式实现平滑上云。

                \n

                说明:

                \n
                  \n
                • \n

                  开启 endpoint 参数规则解析

                  \n
                    \n
                  1. \n

                    如果在初始化 Nacos Client 的时候,没有通过 properties 来指定 endpoint,这个时候会从系统环境变量中变量名为 ALIBABA_ALIWARE_ENDPOINT_URL 指定的值来初始化,如果系统环境变量也没有设置,那么这个时候将会返回一个空字符串。

                    \n
                  2. \n
                  3. \n

                    如果设置了 endpoint,

                    \n
                      \n
                    1. \n

                      设置的 endpoint 是一个指定具体的值。

                      \n

                      这时会先从系统环境变量中变量名为 ALIBABA_ALIWARE_ENDPOINT_URL 指定的值来初始化,如果系统环境变量没有设置,那么这个时候用用户态传入的具体值来初始化 endpoint。

                      \n
                    2. \n
                    3. \n

                      以占位符的形式输入。

                      \n

                      这时会解析出具体占位符的值,然后:

                      \n
                        \n
                      1. \n

                        依次从系统属性和环境变量中来取值。

                        \n

                        例如,您输入的是 ${nacos.endpoint:defaultValue},那么解析出来的占位符是 nacos.endpoint。解析出来后,会先读取系统属性中(即 System.getProperty("nacos.endpoint"))是否设置了 nacos.endpoint 变量值,如果没有,则会从系统环境变量中变量名为 nacos.endpoint 指定的值来初始化。

                        \n
                      2. \n
                      3. \n

                        如果通过解析出来的占位符还没有正确初始化 endpoint,则会从系统环境变量中变量名为 ALIBABA_ALIWARE_ENDPOINT_URL 指定的值来初始化。

                        \n
                      4. \n
                      5. \n

                        如果经过以上两步还没有被初始化,这时如果您设置了默认值,这个时候就会使用默认值来初始化 endpoint,否则的话以解析出来的占位符返回。

                        \n
                      6. \n
                      \n
                    4. \n
                    \n
                  4. \n
                  \n
                • \n
                • \n

                  关闭 endpoint 参数规则解析

                  \n

                  当关闭了 endpoint 参数规则解析的时候,这个时候就以用户态在构造 Nacos Client 时通过 properties 参数输入的 endpoint 值为主。

                  \n
                • \n
                \n

                默认情况下, Nacos Client 是开启 endpoint 参数规则解析的能力。如果你想关闭该能力,可在 Nacos Client 初始化的时候在传入的 properties 实例中指定 key 为 isUseEndpointParsingRule,值为 false 即可关闭。

                \n", "link": "/zh-cn/docs/namespace-endpoint-best-practices.html", - "meta": {} -} \ No newline at end of file + "meta": { + "title": "Namespace,endpoint 最佳实践", + "keywords": "namespace,endpoint,最佳实践", + "description": "随着使用 Nacos 的企业越来越多,遇到的最频繁的两个问题就是:如何在我的生产环境正确的来使用 namespace 以及 endpoint。" + } +}