mirror of
https://gitee.com/mirrors/Spring-Cloud-Alibaba.git
synced 2021-06-26 13:25:11 +08:00
update docs
This commit is contained in:
@@ -10,17 +10,15 @@ Dubbo Spring Cloud 基于 Dubbo Spring Boot 2.7.3[1] 和 Spring Cloud 2.x 开发
|
||||
由于 Dubbo Spring Cloud 构建在原生的 Spring Cloud 之上,其服务治理方面的能力可认为是 Spring Cloud Plus,
|
||||
不仅完全覆盖 Spring Cloud 原生特性[5],而且提供更为稳定和成熟的实现,特性比对如下表所示:
|
||||
|
||||
:frame: topbot
|
||||
[width="60%",options="header"]
|
||||
|====
|
||||
^|功能组件 ^|Spring Cloud ^|Dubbo Spring Cloud
|
||||
|===
|
||||
|功能组件 |Spring Cloud |Dubbo Spring Cloud
|
||||
| 分布式配置(Distributed configuration) | Git、Zookeeper、Consul、JDBC | Spring Cloud 分布式配置 + Dubbo 配置中心[6]
|
||||
| 服务注册与发现(Service registration and discovery) | Eureka、Zookeeper、Consul | Spring Cloud 原生注册中心[7] + Dubbo 原生注册中心[8]
|
||||
| 负载均衡(Load balancing) | Ribbon(随机、轮询等算法) | Dubbo 内建实现(随机、轮询等算法 + 权重等特性)
|
||||
| 服务熔断(Circuit Breakers) | Spring Cloud Hystrix | Spring Cloud Hystrix + Alibaba Sentinel[9] 等
|
||||
| 服务调用(Service-to-service calls) | Open Feign、`RestTemplate` | Spring Cloud 服务调用 + Dubbo `@Reference`
|
||||
| 链路跟踪(Tracing) | Spring Cloud Sleuth[10] + Zipkin[11] | Zipkin、opentracing 等
|
||||
|====
|
||||
|===
|
||||
|
||||
=== Reference 说明
|
||||
|
||||
|
@@ -412,10 +412,8 @@ Endpoint 暴露的 json 中包含了三种属性:
|
||||
|
||||
更多关于 Nacos Config Starter 的配置项如下所示:
|
||||
|
||||
:frame: topbot
|
||||
[width="60%",options="header"]
|
||||
|====
|
||||
^|配置项 ^|Key ^|默认值 ^|说明
|
||||
|===
|
||||
|配置项 |Key |默认值 |说明
|
||||
|服务端地址|`spring.cloud.nacos.config.server-addr`|| Nacos Server 启动监听的ip地址和端口
|
||||
|配置对应的 DataId|`spring.cloud.nacos.config.name`|| 先取 prefix,再去 name,最后取 spring.application.name
|
||||
|配置对应的 DataId|`spring.cloud.nacos.config.prefix`|| 先取 prefix,再去 name,最后取 spring.application.name
|
||||
@@ -432,4 +430,4 @@ Endpoint 暴露的 json 中包含了三种属性:
|
||||
|共享配置|`spring.cloud.nacos.config.sharedDataids`||共享配置的 DataId, "," 分割
|
||||
|共享配置动态刷新|`spring.cloud.nacos.config.refreshableDataids`||共享配置中需要动态刷新的 DataId, "," 分割
|
||||
|自定义 Data Id 配置|`spring.cloud.nacos.config.extConfig`||属性是个集合,内部由 `Config` POJO 组成。`Config` 有 3 个属性,分别是 `dataId`, `group` 以及 `refresh`
|
||||
|====
|
||||
|===
|
||||
|
@@ -42,6 +42,8 @@ image::https://img.alicdn.com/tfs/TB1dyWJbQL0gK0jSZFtXXXQCXXa-2788-1086.png[]
|
||||
以下步骤向您展示了如何将一个服务注册到 Nacos。
|
||||
|
||||
* pom.xml的配置。一个完整的 pom.xml 配置如下所示:
|
||||
|
||||
.pom.xml
|
||||
[source,xml,indent=0]
|
||||
----
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
@@ -115,11 +117,12 @@ image::https://img.alicdn.com/tfs/TB1dyWJbQL0gK0jSZFtXXXQCXXa-2788-1086.png[]
|
||||
----
|
||||
|
||||
* application.properties 配置。一些关于 Nacos 基本的配置也必须在 application.properties(也可以是application.yaml)配置,如下所示:
|
||||
application.properties
|
||||
|
||||
.application.properties
|
||||
[source,properties,indent=0]
|
||||
----
|
||||
server.port=8081
|
||||
spring.application.name=nacos-producer
|
||||
spring.application.name=nacos-provider
|
||||
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
|
||||
management.endpoints.web.exposure.include=*
|
||||
----
|
||||
@@ -128,6 +131,7 @@ management.endpoints.web.exposure.include=*
|
||||
NOTE: 如果不想使用 Nacos 作为您的服务注册与发现,可以将 `spring.cloud.nacos.discovery` 设置为 `false`。
|
||||
|
||||
* 启动 Provider 示例。如下所示:
|
||||
|
||||
[source,java,indent=0]
|
||||
----
|
||||
@SpringBootApplication
|
||||
@@ -135,7 +139,7 @@ NOTE: 如果不想使用 Nacos 作为您的服务注册与发现,可以将 `sp
|
||||
public class NacosProviderDemoApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(NacosProducerDemoApplication.class, args);
|
||||
SpringApplication.run(NacosProviderDemoApplication.class, args);
|
||||
}
|
||||
|
||||
@RestController
|
||||
@@ -177,7 +181,7 @@ public class NacosConsumerApp {
|
||||
|
||||
@GetMapping("/echo/app-name")
|
||||
public String echoAppName(){
|
||||
//使用 LoadBalanceClient 和 RestTemolate 结合的方式来访问
|
||||
//使用 LoadBalanceClient 和 RestTemplate 结合的方式来访问
|
||||
ServiceInstance serviceInstance = loadBalancerClient.choose("nacos-provider");
|
||||
String url = String.format("http://%s:%s/echo/%s",serviceInstance.getHost(),serviceInstance.getPort(),appName);
|
||||
System.out.println("request url:"+url);
|
||||
@@ -261,7 +265,7 @@ Endpoint 暴露的 json 中包含了两种属性:
|
||||
"lastRefTime": 1541755293119,
|
||||
"checksum": "e5a699c9201f5328241c178e804657e11541755293119",
|
||||
"allIPs": false,
|
||||
"key": "nacos-producer",
|
||||
"key": "nacos-provider",
|
||||
"valid": true
|
||||
}
|
||||
],
|
||||
@@ -291,10 +295,8 @@ Endpoint 暴露的 json 中包含了两种属性:
|
||||
|
||||
更多关于 Nacos Discovery Starter 的配置项如下所示:
|
||||
|
||||
:frame: topbot
|
||||
[width="60%",options="header"]
|
||||
|====
|
||||
^|配置项 ^|Key ^|默认值 ^|说明
|
||||
|===
|
||||
|配置项 |Key |默认值 |说明
|
||||
|服务端地址|`spring.cloud.nacos.discovery.server-addr`|| Nacos Server 启动监听的ip地址和端口
|
||||
|服务名|`spring.cloud.nacos.discovery.service`|`${spring.application.name}`|注册的服务名
|
||||
|权重|`spring.cloud.nacos.discovery.weight`|`1`|取值范围 1 到 100,数值越大,权重越大
|
||||
@@ -306,8 +308,9 @@ Endpoint 暴露的 json 中包含了两种属性:
|
||||
|SecretKey|`spring.cloud.nacos.discovery.secret-key`||当要上阿里云时,阿里云上面的一个云账号密码
|
||||
|Metadata|`spring.cloud.nacos.discovery.metadata`||使用Map格式配置,用户可以根据自己的需要自定义一些和服务相关的元数据信息
|
||||
|日志文件名|`spring.cloud.nacos.discovery.log-name`||
|
||||
|集群|`spring.cloud.nacos.discovery.cluster-name`|`DEFAULT`|配置成Nacos集群名称
|
||||
|集群|`spring.cloud.nacos.discovery.cluster-name`|`DEFAULT`|Nacos集群名称
|
||||
|接入点|`spring.cloud.nacos.discovery.endpoint`||地域的某个服务的入口域名,通过此域名可以动态地拿到服务端地址
|
||||
|是否集成Ribbon|`ribbon.nacos.enabled`|`true`|一般都设置成true即可
|
||||
|是否开启Nacos Watch|`spring.cloud.nacos.discovery.watch.enabled`|`true`|可以设置成false来关闭 watch
|
||||
|====
|
||||
|===
|
||||
|
||||
|
@@ -109,6 +109,7 @@ java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject
|
||||
#### 配置控制台信息
|
||||
|
||||
.application.yml
|
||||
[source,yaml]
|
||||
----
|
||||
spring:
|
||||
cloud:
|
||||
@@ -211,7 +212,8 @@ NOTE: 以 `https://www.taobao.com/test` 这个 url 并使用 GET 方法为例。
|
||||
|
||||
比如配置 4 个数据源:
|
||||
|
||||
```
|
||||
[source,properties]
|
||||
----
|
||||
spring.cloud.sentinel.datasource.ds1.file.file=classpath: degraderule.json
|
||||
spring.cloud.sentinel.datasource.ds1.file.rule-type=flow
|
||||
|
||||
@@ -234,8 +236,7 @@ spring.cloud.sentinel.datasource.ds4.apollo.namespace-name = application
|
||||
spring.cloud.sentinel.datasource.ds4.apollo.flow-rules-key = sentinel
|
||||
spring.cloud.sentinel.datasource.ds4.apollo.default-flow-rule-value = test
|
||||
spring.cloud.sentinel.datasource.ds4.apollo.rule-type=param-flow
|
||||
|
||||
```
|
||||
----
|
||||
|
||||
这种配置方式参考了 Spring Cloud Stream Binder 的配置,内部使用了 `TreeMap` 进行存储,comparator 为 `String.CASE_INSENSITIVE_ORDER` 。
|
||||
|
||||
@@ -407,22 +408,18 @@ Endpoint 暴露的 json 中包含了多种属性:
|
||||
|
||||
下表显示当应用的 `ApplicationContext` 中存在对应的Bean的类型时,会进行自动化设置:
|
||||
|
||||
:frame: topbot
|
||||
[width="60%",options="header"]
|
||||
|====
|
||||
^|存在Bean的类型 ^|操作 ^|作用
|
||||
|===
|
||||
|存在Bean的类型 |操作 |作用
|
||||
|`UrlCleaner`|`WebCallbackManager.setUrlCleaner(urlCleaner)`|资源清理(资源(比如将满足 /foo/:id 的 URL 都归到 /foo/* 资源下))
|
||||
|`UrlBlockHandler`|`WebCallbackManager.setUrlBlockHandler(urlBlockHandler)`|自定义限流处理逻辑
|
||||
|`RequestOriginParser`|`WebCallbackManager.setRequestOriginParser(requestOriginParser)`|设置来源信息
|
||||
|====
|
||||
|===
|
||||
|
||||
|
||||
Spring Cloud Alibaba Sentinel 提供了这些配置选项
|
||||
|
||||
:frame: topbot
|
||||
[width="60%",options="header"]
|
||||
|====
|
||||
^|配置项 ^|含义 ^|默认值
|
||||
|===
|
||||
|配置项 |含义 |默认值
|
||||
|`spring.application.name` or `project.name`|Sentinel项目名|
|
||||
|`spring.cloud.sentinel.enabled`|Sentinel自动化配置是否生效|true
|
||||
|`spring.cloud.sentinel.eager`|是否提前触发 Sentinel 初始化|false
|
||||
@@ -449,6 +446,6 @@ Spring Cloud Alibaba Sentinel 提供了这些配置选项
|
||||
|`spring.cloud.sentinel.scg.fallback.response-body`| Spring Cloud Gateway 响应模式为 'response' 模式对应的响应内容 |
|
||||
|`spring.cloud.sentinel.scg.fallback.response-status`| Spring Cloud Gateway 响应模式为 'response' 模式对应的响应码 | 429
|
||||
|`spring.cloud.sentinel.scg.fallback.content-type`| Spring Cloud Gateway 响应模式为 'response' 模式对应的 content-type | application/json
|
||||
|====
|
||||
|===
|
||||
|
||||
NOTE: 请注意。这些配置只有在 Servlet 环境下才会生效,RestTemplate 和 Feign 针对这些配置都无法生效
|
@@ -186,6 +186,7 @@ public QuerySendDetailsResponse querySendDetailsResponse(
|
||||
1、在 `application.properties` 配置文件中(也可以是 application.yaml)配置 SmsReport 的队列名称。
|
||||
|
||||
.application.properties
|
||||
[source,properties]
|
||||
----
|
||||
spring.cloud.alicloud.sms.report-queue-name=Alicom-Queue-********-SmsReport
|
||||
----
|
||||
|
Reference in New Issue
Block a user