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:
parent
4a06fe59bf
commit
8586c0b2e7
@ -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
|
||||
----
|
||||
|
@ -10,17 +10,15 @@ Easily navigate and move apps up at a cost close to “zero” costs. Dubbo Spri
|
||||
Since Dubbo Spring Cloud is built on top of the native Spring Cloud, its service governance capabilities are considered Spring Cloud Plus.
|
||||
Not only does it fully cover the Spring Cloud native features [5], but it also provides a more stable and mature implementation, as shown in the following table:
|
||||
|
||||
:frame: topbot
|
||||
[width="60%",options="header"]
|
||||
|====
|
||||
^|Feature ^|Spring Cloud ^|Dubbo Spring Cloud
|
||||
|===
|
||||
|Feature |Spring Cloud |Dubbo Spring Cloud
|
||||
| Distributed configuration | Git、Zookeeper、Consul、JDBC | Spring Cloud Distributed Configuration + Dubbo Configuration Center[6]
|
||||
| Service registration and discovery | Eureka、Zookeeper、Consul | Spring Cloud Native Registration Center[7] + Dubbo Native Registration Center[8]
|
||||
| Load balancing | Ribbon(Random, RoundRobin) | Dubbo built-in implementation (random, polling, etc. + weights, etc.)
|
||||
| Circuit Breakers | Spring Cloud Hystrix | Spring Cloud Hystrix + Alibaba Sentinel[9] etc.
|
||||
| Service-to-service calls | Open Feign、`RestTemplate` | Spring Cloud service call + Dubbo `@Reference`.
|
||||
| Tracing | Spring Cloud Sleuth[10] + Zipkin[11] | Zipkin、opentracing, etc.
|
||||
|====
|
||||
|===
|
||||
|
||||
=== Reference
|
||||
|
||||
|
@ -100,7 +100,7 @@ user name :nacos-config-properties; age: 90
|
||||
|
||||
Nacos Config supports yaml format as well. You only need to complete the following 2 steps.
|
||||
|
||||
1. In the bootstrap.properties file, add the following line to claim that the format of DataId is yaml. As follows:
|
||||
1、In the bootstrap.properties file, add the following line to claim that the format of DataId is yaml. As follows:
|
||||
|
||||
.bootstrap.properties
|
||||
[source,yaml]
|
||||
@ -108,7 +108,7 @@ Nacos Config supports yaml format as well. You only need to complete the followi
|
||||
spring.cloud.nacos.config.file-extension=yaml
|
||||
----
|
||||
|
||||
2. Add a configuration with the DataId in yaml format on the Nacos console, as shown below:
|
||||
2、Add a configuration with the DataId in yaml format on the Nacos console, as shown below:
|
||||
|
||||
[source,subs="normal"]
|
||||
----
|
||||
@ -401,10 +401,8 @@ set spring.cloud.nacos.config.enabled = false to disable Spring Cloud Nacos Conf
|
||||
|
||||
The following shows the other configurations of the starter of Nacos Config:
|
||||
|
||||
:frame: topbot
|
||||
[width="60%",options="header"]
|
||||
|====
|
||||
^|Configuration ^|Key ^|Default Value ^|Description
|
||||
|===
|
||||
|Configuration |Key |Default Value |Description
|
||||
|Server address|`spring.cloud.nacos.config.server-addr`|| IP and port of the Nacos Server listener
|
||||
|Dataid from nacos config|`spring.cloud.nacos.config.name`|| First take the prefix, then go to the name, and finally take spring.application.name
|
||||
|Dataid from nacos config|`spring.cloud.nacos.config.prefix`|| First take the prefix, then go to the name, and finally take spring.application.name
|
||||
@ -421,4 +419,4 @@ The following shows the other configurations of the starter of Nacos Config:
|
||||
|Dataid for Shared Configuration|`spring.cloud.nacos.config.sharedDataids`||Dataid for Shared Configuration, split by ","
|
||||
|Dynamic refresh dataid for Shared Configuration|`spring.cloud.nacos.config.refreshableDataids`||Dynamic refresh dataid for Shared Configuration, split by ","
|
||||
|custom dataid|`spring.cloud.nacos.config.extConfig`||It's a List,build up by `Config` POJO. `Config` has 3 attributes, `dataId`, `group` and `refresh`
|
||||
|====
|
||||
|===
|
||||
|
@ -119,7 +119,7 @@ application.properties
|
||||
[source,properties]
|
||||
----
|
||||
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=*
|
||||
----
|
||||
@ -135,7 +135,7 @@ NOTE: If you do not want to use Nacos for service registration and discovery, yo
|
||||
public class NacosProviderDemoApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(NacosProducerDemoApplication.class, args);
|
||||
SpringApplication.run(NacosProviderDemoApplication.class, args);
|
||||
}
|
||||
|
||||
@RestController
|
||||
@ -179,7 +179,7 @@ public class NacosConsumerApp {
|
||||
|
||||
@GetMapping("/echo/app-name")
|
||||
public String echoAppName(){
|
||||
//Access through the combination of LoadBalanceClient and RestTemolate
|
||||
//Access through the combination of LoadBalanceClient and RestTemplate
|
||||
ServiceInstance serviceInstance = loadBalancerClient.choose("nacos-provider");
|
||||
String path = String.format("http://%s:%s/echo/%s",serviceInstance.getHost(),serviceInstance.getPort(),appName);
|
||||
System.out.println("request path:" +path);
|
||||
@ -264,7 +264,7 @@ The followings shows how a service instance accesses the Endpoint:
|
||||
"lastRefTime": 1541755293119,
|
||||
"checksum": "e5a699c9201f5328241c178e804657e11541755293119",
|
||||
"allIPs": false,
|
||||
"key": "nacos-producer",
|
||||
"key": "nacos-provider",
|
||||
"valid": true
|
||||
}
|
||||
],
|
||||
@ -294,10 +294,8 @@ The followings shows how a service instance accesses the Endpoint:
|
||||
|
||||
The following shows the other configurations of the starter of Nacos Discovery:
|
||||
|
||||
:frame: topbot
|
||||
[width="60%",options="header"]
|
||||
|====
|
||||
^|Configuration ^|Key ^|Default Value ^|Description
|
||||
|===
|
||||
|Configuration |Key |Default Value |Description
|
||||
|Server address|`spring.cloud.nacos.discovery.server-addr`||IP and port of the Nacos Server listener
|
||||
|Service name|`spring.cloud.nacos.discovery.service`|`${spring.application.name}`|Name the current service
|
||||
|Weight|`spring.cloud.nacos.discovery.weight`|`1`|Value range: 1 to 100. The bigger the value, the greater the weight
|
||||
@ -309,7 +307,9 @@ The following shows the other configurations of the starter of Nacos Discovery:
|
||||
|SecretKey|`spring.cloud.nacos.discovery.secret-key`||Alibaba Cloud account secretkey
|
||||
|Metadata|`spring.cloud.nacos.discovery.metadata`||You can define some of the metadata for your services in the Map format
|
||||
|Log file name|`spring.cloud.nacos.discovery.log-name`||
|
||||
|Cluster Name|`spring.cloud.nacos.discovery.cluster-name`|`DEFAULT`|Cluster name of Nacos
|
||||
|Endpoint|`spring.cloud.nacos.discovery.endpoint`||The domain name of a certain service in a specific region. You can retrieve the server address dynamically with this domain name
|
||||
|Integrate Ribbon or not|`ribbon.nacos.enabled`|`true`|Set to true in most cases
|
||||
|Enable Nacos Watch|`spring.cloud.nacos.discovery.watch.enabled`|`true`|set to false to close watch
|
||||
|====
|
||||
|===
|
||||
|
||||
|
@ -110,6 +110,7 @@ If there is conflict with the 8080 port, you can use `-Dserver.port=new port` to
|
||||
#### Configure the Dashboard
|
||||
|
||||
.application.yml
|
||||
[source,yaml]
|
||||
----
|
||||
spring:
|
||||
cloud:
|
||||
@ -214,7 +215,8 @@ NOTE: Take Http GET `https://www.taobao.com/test` as an example. The correspondi
|
||||
|
||||
For example, 4 data sources are configures:
|
||||
|
||||
```
|
||||
[source,properties]
|
||||
----
|
||||
spring.cloud.sentinel.datasource.ds1.file.file=classpath: degraderule.json
|
||||
spring.cloud.sentinel.datasource.ds1.file.rule-type=flow
|
||||
|
||||
@ -237,7 +239,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
|
||||
```
|
||||
----
|
||||
|
||||
This method follows the configuration of Spring Cloud Stream Binder. `TreeMap` is used for storage internally, and comparator is `String.CASE_INSENSITIVE_ORDER`.
|
||||
|
||||
@ -406,21 +408,17 @@ The followings shows how a service instance accesses the Endpoint:
|
||||
|
||||
The following table shows that when there are corresponding bean types in `ApplicationContext`, some actions will be taken:
|
||||
|
||||
:frame: topbot
|
||||
[width="60%",options="header"]
|
||||
|====
|
||||
^|Existing Bean Type ^|Action ^|Function
|
||||
|===
|
||||
|Existing Bean Type |Action |Function
|
||||
|`UrlCleaner`|`WebCallbackManager.setUrlCleaner(urlCleaner)`|Resource cleaning(resource(for example, classify all URLs of /foo/:id to the /foo/* resource))
|
||||
|`UrlBlockHandler`|`WebCallbackManager.setUrlBlockHandler(urlBlockHandler)`|Customize rate limiting logic
|
||||
|`RequestOriginParser`|`WebCallbackManager.setRequestOriginParser(requestOriginParser)`|Setting the origin
|
||||
|====
|
||||
|===
|
||||
|
||||
The following table shows all the configurations of Spring Cloud Alibaba Sentinel:
|
||||
|
||||
:frame: topbot
|
||||
[width="60%",options="header"]
|
||||
|====
|
||||
^|Configuration ^|Description ^|Default Value
|
||||
|===
|
||||
|Configuration |Description |Default Value
|
||||
|`spring.application.name` or `project.name`|Project Name Of Sentinel|
|
||||
|`spring.cloud.sentinel.enabled`|Whether Sentinel automatic configuration takes effect|true
|
||||
|`spring.cloud.sentinel.eager`|Whether to trigger Sentinel initialization in advance|false
|
||||
@ -446,7 +444,7 @@ The following table shows all the configurations of Spring Cloud Alibaba Sentine
|
||||
|`spring.cloud.sentinel.scg.fallback.response-body`| Spring Cloud Gateway response mode is response content corresponding to 'response' mode |
|
||||
|`spring.cloud.sentinel.scg.fallback.response-status`| Spring Cloud Gateway response mode is the response code corresponding to 'response' mode | 429
|
||||
|`spring.cloud.sentinel.scg.fallback.content-type`| The Spring Cloud Gateway response mode is the content-type corresponding to the 'response' mode. | application/json
|
||||
|====
|
||||
|===
|
||||
|
||||
|
||||
NOTE: These configurations will only take effect in servlet environment. RestTemplate and Feign will not take effect for these configurations.
|
@ -185,6 +185,7 @@ By subscribing to the SmsUp upstream SMS message, you can know the content of th
|
||||
1、Configure the queue name for SmsReport in the `application.properties` configuration file (which can also be application.yaml).
|
||||
|
||||
.application.properties
|
||||
[source,properties]
|
||||
----
|
||||
spring.cloud.alicloud.sms.up-queue-name=Alicom-Queue-********-SmsUp
|
||||
----
|
||||
|
Loading…
x
Reference in New Issue
Block a user