From e2f4e98b2f698728702f5473e9fedd2e466fcfcb Mon Sep 17 00:00:00 2001 From: mercyblitz Date: Fri, 1 Feb 2019 09:34:30 +0800 Subject: [PATCH] Polish : apache/incubator-dubbo-spring-boot-project#427 : Update Documents --- README.md | 59 +-- README_CN.md | 196 +++------ dubbo-spring-boot-actuator/README.md | 37 +- dubbo-spring-boot-actuator/README_CN.md | 513 ---------------------- dubbo-spring-boot-autoconfigure/README.md | 12 +- 5 files changed, 113 insertions(+), 704 deletions(-) delete mode 100644 dubbo-spring-boot-actuator/README_CN.md diff --git a/README.md b/README.md index 529dd9c2b..f39343868 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ You can introduce the latest `dubbo-spring-boot-starter` to your project by addi ```xml 2.1.1.RELEASE - 2.7.0-SNAPSHT + 2.7.0 @@ -72,11 +72,11 @@ You can introduce the latest `dubbo-spring-boot-starter` to your project by addi org.apache.dubbo dubbo-spring-boot-starter - 1.0.0-SNAPSHOT + 2.7.0 - com.alibaba + org.apache.dubbo dubbo @@ -137,13 +137,13 @@ public interface DemoService { ```java @Service(version = "1.0.0") public class DefaultDemoService implements DemoService { - + /** - * The default value of ${dubbo.application.name} is ${spring.application.name} - */ + * The default value of ${dubbo.application.name} is ${spring.application.name} + */ @Value("${dubbo.application.name}") private String serviceName; - + public String sayHello(String name) { return String.format("[%s] : Hello, %s", serviceName, name); } @@ -167,7 +167,6 @@ public interface DemoService { ```properties # Spring boot application spring.application.name=dubbo-auto-configuration-provider-demo - # Base packages to scan Dubbo Component: @com.alibaba.dubbo.config.annotation.Service dubbo.scan.base-packages=org.apache.dubbo.spring.boot.demo.provider.service @@ -191,44 +190,32 @@ public interface DemoService { ```java @EnableAutoConfiguration - public class DubboConsumerBootstrap { - + public class DubboAutoConfigurationConsumerBootstrap { + private final Logger logger = LoggerFactory.getLogger(getClass()); - - @Reference(version = "1.0.0", url = "dubbo://localhost:12345") + + @Reference(version = "1.0.0", url = "dubbo://127.0.0.1:12345") private DemoService demoService; - + + public static void main(String[] args) { + SpringApplication.run(DubboAutoConfigurationConsumerBootstrap.class).close(); + } + @Bean public ApplicationRunner runner() { return args -> { logger.info(demoService.sayHello("mercyblitz")); }; } - - public static void main(String[] args) { - SpringApplication.run(DubboConsumerBootstrap.class).close(); - } } ``` -2. configures `application.properties` - - ```properties - # Spring boot application - spring.application.name = dubbo-consumer-demo - server.port = 8080 - management.port = 8081 - - - # Dubbo Config properties - ## ApplicationConfig Bean - dubbo.application.id = dubbo-consumer-demo - dubbo.application.name = dubbo-consumer-demo +2. configures `application.yml` - ## ProtocolConfig Bean - dubbo.protocol.id = dubbo - dubbo.protocol.name = dubbo - dubbo.protocol.port = 12345 + ```yaml + spring: + application: + name: dubbo-auto-configure-consumer-sample ``` If `DubboProviderDemo` works well, please mark sure `DubboProviderDemo` is started. @@ -242,7 +229,7 @@ More details, please refer to [Samples](dubbo-spring-boot-samples). Having trouble with Dubbo Spring Boot? We’d like to help! - If you are upgrading, read the [release notes](https://github.com/dubbo/dubbo-spring-boot-project/releases) for upgrade instructions and "new and noteworthy" features. -- Ask a question - You can join [ours google groups](https://groups.google.com/group/dubbo), or subscribe [Dubbo User Mailling List](mailto:dubbo+subscribe@googlegroups.com). +- Ask a question - You can subscribe [Dubbo User Mailling List](mailto:dubbo+subscribe@googlegroups.com). - Report bugs at [github.com/dubbo/dubbo-spring-boot-project/issues](https://github.com/dubbo/dubbo-spring-boot-project/issues). @@ -295,5 +282,3 @@ The samples project of Dubbo Spring Boot that includes: - [Auto-Configuaration Samples](dubbo-spring-boot-samples/auto-configure-samples) - [Externalized Configuration Samples](dubbo-spring-boot-samples/externalized-configuration-samples) - [Registry Zookeeper Samples](dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples) -- [Registry Nacos Samples](dubbo-spring-boot-samples/dubbo-registry-nacos-samples) -- [Sample API](dubbo-spring-boot-samples/sample-api) \ No newline at end of file diff --git a/README_CN.md b/README_CN.md index 467037b35..3912038ef 100644 --- a/README_CN.md +++ b/README_CN.md @@ -25,7 +25,7 @@ ```xml 2.1.1.RELEASE - 2.7.0-SNAPSHT + 2.7.0 @@ -75,11 +75,11 @@ org.apache.dubbo dubbo-spring-boot-starter - 1.0.0-SNAPSHOT + 2.7.0 - com.alibaba + org.apache.dubbo dubbo @@ -137,72 +137,57 @@ public interface DemoService { 1. 实现 `DemoService` 接口 -```java -@Service( - version = "${demo.service.version}", - application = "${dubbo.application.id}", - protocol = "${dubbo.protocol.id}", - registry = "${dubbo.registry.id}" -) -public class DefaultDemoService implements DemoService { - - public String sayHello(String name) { - return "Hello, " + name + " (from Spring Boot)"; + ```java + @Service(version = "1.0.0") + public class DefaultDemoService implements DemoService { + + /** + * The default value of ${dubbo.application.name} is ${spring.application.name} + */ + @Value("${dubbo.application.name}") + private String serviceName; + + public String sayHello(String name) { + return String.format("[%s] : Hello, %s", serviceName, name); + } } - -} -``` + ``` 2. 编写 Spring Boot 引导程序 -```java -@SpringBootApplication -public class DubboProviderDemo { - - public static void main(String[] args) { - - new SpringApplicationBuilder(DubboProviderDemo.class) - .web(false) // 非 Web 应用 - .run(args); + ```java + @EnableAutoConfiguration + public class DubboProviderDemo { + public static void main(String[] args) { + SpringApplication.run(DubboProviderDemo.class,args); + } } - -} -``` + ``` 3. 配置 `application.properties` : -```properties -# Spring boot application -spring.application.name = dubbo-provider-demo -server.port = 9090 -management.port = 9091 + ```properties + # Spring boot application + spring.application.name=dubbo-auto-configuration-provider-demo + # Base packages to scan Dubbo Component: @com.alibaba.dubbo.config.annotation.Service + dubbo.scan.base-packages=org.apache.dubbo.spring.boot.demo.provider.service -# Service version -demo.service.version = 1.0.0 + # Dubbo Application + ## The default value of dubbo.application.name is ${spring.application.name} + ## dubbo.application.name=${spring.application.name} -# Base packages to scan Dubbo Components (e.g @Service , @Reference) -dubbo.scan.basePackages = org.apache.dubbo.spring.boot.demo.provider.service + # Dubbo Protocol + dubbo.protocol.name=dubbo + dubbo.protocol.port=12345 -# Dubbo Config properties -## ApplicationConfig Bean -dubbo.application.id = dubbo-provider-demo -dubbo.application.name = dubbo-provider-demo + ## Dubbo Registry + dubbo.registry.address=N/A + ``` -## ProtocolConfig Bean -dubbo.protocol.id = dubbo -dubbo.protocol.name = dubbo -dubbo.protocol.port = 12345 - -## RegistryConfig Bean -dubbo.registry.id = my-registry -dubbo.registry.address = N/A -``` - -更多的实现细节 , 请参考 [Dubbo 服务提供方示例](dubbo-spring-boot-samples/dubbo-spring-boot-sample-provider). @@ -211,69 +196,44 @@ dubbo.registry.address = N/A 1. 通过 `@Reference` 注入 `DemoService` : -```java -@RestController -public class DemoConsumerController { - - @Reference(version = "${demo.service.version}", - application = "${dubbo.application.id}", - url = "dubbo://localhost:12345") - private DemoService demoService; - - @RequestMapping("/sayHello") - public String sayHello(@RequestParam String name) { - return demoService.sayHello(name); - } - -} -``` - - - -2. 编写 Spring Boot 引导程序(Web 应用) : - -```java -@SpringBootApplication(scanBasePackages = "org.apache.dubbo.spring.boot.demo.consumer.controller") -public class DubboConsumerDemo { - - public static void main(String[] args) { - - SpringApplication.run(DubboConsumerDemo.class,args); - + ```java + @EnableAutoConfiguration + public class DubboAutoConfigurationConsumerBootstrap { + + private final Logger logger = LoggerFactory.getLogger(getClass()); + + @Reference(version = "1.0.0", url = "dubbo://127.0.0.1:12345") + private DemoService demoService; + + public static void main(String[] args) { + SpringApplication.run(DubboAutoConfigurationConsumerBootstrap.class).close(); + } + + @Bean + public ApplicationRunner runner() { + return args -> { + logger.info(demoService.sayHello("mercyblitz")); + }; + } } - -} -``` + ``` -3. 配置 `application.properties` : +2. 配置 `application.yml` : -```properties -# Spring boot application -spring.application.name = dubbo-consumer-demo -server.port = 8080 -management.port = 8081 - -# Service Version -demo.service.version = 1.0.0 - -# Dubbo Config properties -## ApplicationConfig Bean -dubbo.application.id = dubbo-consumer-demo -dubbo.application.name = dubbo-consumer-demo - -## ProtocolConfig Bean -dubbo.protocol.id = dubbo -dubbo.protocol.name = dubbo -dubbo.protocol.port = 12345 -``` + ```yaml + spring: + application: + name: dubbo-auto-configure-consumer-sample + ``` 请确保 Dubbo 服务提供方服务可用, `DubboProviderDemo` 运行方可正常。 -更多的实现细节,请参考 [Dubbo 服务消费方示例](dubbo-spring-boot-samples/dubbo-spring-boot-sample-consumer) +更多的实现细节,请参考 [Dubbo 示例](dubbo-spring-boot-samples) + @@ -282,11 +242,12 @@ dubbo.protocol.port = 12345 如果您在使用 Dubbo Spring Boot 中遇到任何问题或者有什么建议? 我们非常需要您的支持! - 如果您需要升级版本,请提前阅读[发布公告](https://github.com/dubbo/dubbo-spring-boot-project/releases),了解最新的特性和问题修复。 -- 如果您遇到任何问题 ,您可以加入官方 [Google 讨论组](https://groups.google.com/group/dubbo) , 或者订阅 [Dubbo 用户邮件列表](mailto:dubbo+subscribe@googlegroups.com)。 +- 如果您遇到任何问题 ,您可以订阅 [Dubbo 用户邮件列表](mailto:dubbo+subscribe@googlegroups.com)。 - 问题反馈,您可以在 [issues](https://github.com/dubbo/dubbo-spring-boot-project/issues) 提出您遇到的使用问题。 + ## 模块工程 Dubbo Spring Boot 采用多 Maven 模块工程 , 模块如下: @@ -309,7 +270,7 @@ Dubbo Spring Boot 采用多 Maven 模块工程 , 模块如下: * [健康检查](dubbo-spring-boot-actuator#health-checks) * [控制断点](dubbo-spring-boot-actuator#endpoints) -* [外部化配置](dubbo-spring-boot-actuator#externalized-configuration)) +* [外部化配置](dubbo-spring-boot-actuator#externalized-configuration) ### [dubbo-spring-boot-starter](dubbo-spring-boot-starter) @@ -320,19 +281,8 @@ Dubbo Spring Boot 采用多 Maven 模块工程 , 模块如下: ### [dubbo-spring-boot-samples](dubbo-spring-boot-samples) -The samples project of Dubbo Spring Boot that includes two parts: -[dubbo-spring-boot-samples](dubbo-spring-boot-samples) 为 Dubbo Spring Boot 示例工程,包括: - - -#### [Dubbo 服务提供方示例](dubbo-spring-boot-samples/dubbo-spring-boot-sample-provider) - -Dubbo 服务将会通过 localhost 的 `12345` 端口暴露服务,并且提供 JMX Endpoints。 - - -#### [Dubbo 服务消费方示例](dubbo-spring-boot-samples/dubbo-spring-boot-sample-consumer) - -Dubbo 服务将被 Spring WebMVC `Controller` 消费,并且提供 JMX 以及 Web Endpoints 端口: +Dubbo Spring Boot 示例工程包括: -* 示例 `Controller` : http://localhost:8080/sayHello?name=HelloWorld -* [健康检查](dubbo-spring-boot-actuator#health-checks) : http://localhost:8081/actuator/health -* [Dubbo Endpoints](dubbo-spring-boot-actuator#endpoints) : http://localhost:8081/actuator/dubbo +- [自动装配](dubbo-spring-boot-samples/auto-configure-samples) +- [外部化配置](dubbo-spring-boot-samples/externalized-configuration-samples) +- [Zookeeper 注册中心](dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples) diff --git a/dubbo-spring-boot-actuator/README.md b/dubbo-spring-boot-actuator/README.md index 1ff5754ed..8f52e1bd4 100644 --- a/dubbo-spring-boot-actuator/README.md +++ b/dubbo-spring-boot-actuator/README.md @@ -15,17 +15,6 @@ -## Versions - -For now, `dubbo-spring-boot-actuator` will separate two versions for Spring Boot 2.x and 1.x once release : - -* `0.2.x` is a main stream release version for Spring Boot 2.x - -* `0.1.x` is a legacy version for maintaining Spring Boot 1.x - - - - ## Integrate with Maven You can introduce the latest `dubbo-spring-boot-actuator` to your project by adding the following dependency to your pom.xml @@ -33,15 +22,17 @@ You can introduce the latest `dubbo-spring-boot-actuator` to your project by ad org.apache.dubbo dubbo-spring-boot-actuator - 0.2.1 + 2.7.0 ``` + If your project failed to resolve the dependency, try to add the following repository: ```xml - sonatype-nexus-snapshots - https://oss.sonatype.org/content/repositories/snapshots + apache.snapshots.https + Apache Development Snapshot Repository + https://repository.apache.org/content/repositories/snapshots false @@ -108,10 +99,6 @@ Suppose a Spring Boot Web application did not specify `management.server.port`, } ``` -In [samples](../dubbo-spring-boot-samples/) , `/health` Web Endpoints are exposed on http://localhost:8081/health -([consumer](../dubbo-spring-boot-samples/dubbo-spring-boot-sample-consumer)) - - `memory`, `load`, `threadpool` and `server` are Dubbo's build-in `StatusChecker`s in above example. Dubbo allows the application to extend `StatusChecker`'s SPI. @@ -162,11 +149,11 @@ Actuator endpoint `dubbo` supports Actuator Endpoints : | ID | Enabled | HTTP URI | HTTP Method | Description | Content Type | | ------------------- | ----------- | ----------------------------------- | ------------------ | ------------------ | ------------------ | | `dubbo` | `true` | `/actuator/dubbo` | `GET` | Exposes Dubbo's meta data | `application/json` | -| `dubboProperties` | `true` | `/actuator/dubbo/properties` | `GET` | Exposes all Dubbo's Properties | `application/json` | -| `dubboServices` | `false` | `/dubbo/services` | `GET` | Exposes all Dubbo's `ServiceBean` | `application/json` | -| `dubboReferences` | `false` | `/actuator/dubbo/references` | `GET` | Exposes all Dubbo's `ReferenceBean` | `application/json` | -| `dubboConfigs` | `true` | `/actuator/dubbo/configs` | `GET` | Exposes all Dubbo's `*Config` | `application/json` | -| `dubboShutdown` | `false` | `/actuator/dubbo/shutdown` | `POST` | Shutdown Dubbo services | `application/json` | +| `dubboproperties` | `true` | `/actuator/dubbo/properties` | `GET` | Exposes all Dubbo's Properties | `application/json` | +| `dubboservices` | `false` | `/dubbo/services` | `GET` | Exposes all Dubbo's `ServiceBean` | `application/json` | +| `dubboreferences` | `false` | `/actuator/dubbo/references` | `GET` | Exposes all Dubbo's `ReferenceBean` | `application/json` | +| `dubboconfigs` | `true` | `/actuator/dubbo/configs` | `GET` | Exposes all Dubbo's `*Config` | `application/json` | +| `dubboshutdown` | `false` | `/actuator/dubbo/shutdown` | `POST` | Shutdown Dubbo services | `application/json` | @@ -184,8 +171,8 @@ Actuator endpoint `dubbo` supports Actuator Endpoints : { "timestamp": 1516623290166, "versions": { - "dubbo-spring-boot": "0.2.0", - "dubbo": "2.6.2" + "dubbo-spring-boot": "2.7.0", + "dubbo": "2.7.0" }, "urls": { "dubbo": "https://github.com/alibaba/dubbo", diff --git a/dubbo-spring-boot-actuator/README_CN.md b/dubbo-spring-boot-actuator/README_CN.md deleted file mode 100644 index c3dbf4f1e..000000000 --- a/dubbo-spring-boot-actuator/README_CN.md +++ /dev/null @@ -1,513 +0,0 @@ -# Dubbo Spring Boot Production-Ready - -`dubbo-spring-boot-actuator` 提供 Production-Ready 特性 (比如 [健康检查](#health-checks), [OPS 端点](#endpoints), and [外部化配置](#externalized-configuration)). - - - -## 目录 - -1. [主目录](https://github.com/dubbo/dubbo-spring-boot-project) -2. [Maven 整合](#integrate-with-maven) -3. [健康检查](#health-checks) -4. [OPS 端点](#endpoints) -5. [外部化配置](#externalized-configuration) - - - -## Maven 整合 - -### 稳定版本 - -`dubbo-spring-boot-actuator` 是可选模块,它不应该独立存在,需要与 `dubbo-spring-boot-starter` 并存方可工作正常。您可以直接增加到 -应用工程的 pom.xml 文件: - - -```xml - - - ... - - - - org.apache.dubbo - dubbo-spring-boot-starter - 0.2.1 - - - - - org.apache.dubbo - dubbo-spring-boot-actuator - 0.2.1 - - - ... - - -``` - -### 开发版本 - -如果你需要尝试最新 `dubbo-spring-boot-actuator` 的特性,您可以自将[开发分支](../tree/0.1.x) 手动 Maven install 到本地 Maven 仓库。 - - -## 健康检查 - -`dubbo-spring-boot-actuator` 实现了标准的 Spring Boot `HealthIndicator` , 它将聚合 Dubbo 相关的健康指标数据到 Spring Boot's `Health` - ,并且 暴露在 `HealthEndpoint` ,它能够在 works MVC (Spring Web MVC) and JMX (Java Management Extensions) both if they are available. - - -### Web Endpoint : `/health` - - -假设 Spring Boot Web 应用没有指定 `management.port` 属性, 运行后,通过 Web 客户端访问 http://localhost:8080/health,HTTP 相应将会返回一个 JSON 格式的内容,如下所示: - -```json -{ - "status": "UP", - "dubbo": { - "status": "UP", - "memory": { - "source": "management.health.dubbo.status.defaults", - "status": { - "level": "OK", - "message": "max:3641M,total:383M,used:92M,free:291M", - "description": null - } - }, - "load": { - "source": "management.health.dubbo.status.extras", - "status": { - "level": "OK", - "message": "load:1.73583984375,cpu:8", - "description": null - } - }, - "threadpool": { - "source": "management.health.dubbo.status.extras", - "status": { - "level": "OK", - "message": "Pool status:OK, max:200, core:200, largest:0, active:0, task:0, service port: 12345", - "description": null - } - }, - "server": { - "source": "dubbo@ProtocolConfig.getStatus()", - "status": { - "level": "OK", - "message": "/192.168.1.103:12345(clients:0)", - "description": null - } - } - } - // ignore others -} -``` - - - -其中 `memory`, `load`, `threadpool` and `server` 是 Dubbo 内建的 `StatusChecker`s,并且 Dubbo 允许应用程序扩展 `StatusChecker`'s SPI. - -默认情况, `memory` and `load` 将被添加到 Dubbo 的 `HealthIndicator` , 可以通过外部化配置覆盖默认值,请参考 [`StatusChecker`'s 默认值](#statuschecker-defaults). - - - -### JMX Endpoint : `healthEndpoint` - - -`dubbo-spring-boot-actuator` 也将暴露健康检查的 JMX Endpoint,它的 `ObjectName` 为 `org.springframework.boot:type=Endpoint,name=healthEndpoint` , - 开发人员可以通过 JMX 代理工具 ,比如 `jconsole` 等: - -![](JMX_HealthEndpoint.png) - - - -### 内建 `StatusChecker`s - - -Dubbo 内建 `StatusChecker` 实现定义在 `META-INF/dubbo/internal/com.alibaba.dubbo.common.status.StatusChecker` 文件中,内容如下 : - -```properties -registry=com.alibaba.dubbo.registry.status.RegistryStatusChecker -spring=com.alibaba.dubbo.config.spring.status.SpringStatusChecker -datasource=com.alibaba.dubbo.config.spring.status.DataSourceStatusChecker -memory=com.alibaba.dubbo.common.status.support.MemoryStatusChecker -load=com.alibaba.dubbo.common.status.support.LoadStatusChecker -server=com.alibaba.dubbo.rpc.protocol.dubbo.status.ServerStatusChecker -threadpool=com.alibaba.dubbo.rpc.protocol.dubbo.status.ThreadPoolStatusChecker -``` - - - -The property key that is name of `StatusChecker` can be a valid value of `management.health.dubbo.status.*` in externalized configuration. - - - -## Endpoints - - - -Actuator endpoint `dubbo` supports Spring Web MVC Endpoints : - -| URI | HTTP Method | Description | Content Type | -| ------------------- | ----------- | ----------------------------------- | ------------------ | -| `/dubbo` | `GET` | Exposes Dubbo's meta data | `application/json` | -| `/dubbo/properties` | `GET` | Exposes all Dubbo's Properties | `application/json` | -| `/dubbo/services` | `GET` | Exposes all Dubbo's `ServiceBean` | `application/json` | -| `/dubbo/references` | `GET` | Exposes all Dubbo's `ReferenceBean` | `application/json` | -| `/dubbo/configs` | `GET` | Exposes all Dubbo's `*Config` | `application/json` | -| `/dubbo/shutdown` | `POST` | Shutdown Dubbo services | `application/json` | - - - -### Endpoint : `/dubbo` - -`/dubbo` exposes Dubbo's meta data : - -```json -{ - "timestamp": 1516623290166, - "versions": { - "dubbo-spring-boot": "1.0.0" - "dubbo": "2.5.9" - }, - "urls": { - "dubbo": "https://github.com/alibaba/dubbo", - "google-group": "http://groups.google.com/group/dubbo", - "github": "https://github.com/dubbo/dubbo-spring-boot-project", - "issues": "https://github.com/dubbo/dubbo-spring-boot-project/issues", - "git": "https://github.com/dubbo/dubbo-spring-boot-project.git" - } -} -``` - - - - - -### Endpoint : `/dubbo/properties` - -`/dubbo/properties` exposes all Dubbo's Properties from Spring Boot Externalized Configuration (a.k.a `PropertySources`) : - -```json -{ - "dubbo.application.id": "dubbo-provider-demo", - "dubbo.application.name": "dubbo-provider-demo", - "dubbo.application.qos-enable": "false", - "dubbo.application.qos-port": "33333", - "dubbo.protocol.id": "dubbo", - "dubbo.protocol.name": "dubbo", - "dubbo.protocol.port": "12345", - "dubbo.registry.address": "N/A", - "dubbo.registry.id": "my-registry", - "dubbo.scan.basePackages": "org.apache.dubbo.spring.boot.demo.provider.service" -} -``` - -The structure of JSON is simple Key-Value format , the key is property name as and the value is property value. - - - - - -### Endpoint : `/dubbo/services` - -`/dubbo/services` exposes all Dubbo's `ServiceBean` that are declared via `` or `@Service` present in Spring `ApplicationContext` : - -```json -{ - "ServiceBean@org.apache.dubbo.spring.boot.demo.api.DemoService#defaultDemoService": { - "accesslog": null, - "actives": null, - "cache": null, - "callbacks": null, - "class": "com.alibaba.dubbo.config.spring.ServiceBean", - "cluster": null, - "connections": null, - "delay": null, - "document": null, - "executes": null, - "export": null, - "exported": true, - "filter": "", - "generic": "false", - "group": null, - "id": "org.apache.dubbo.spring.boot.demo.api.DemoService", - "interface": "org.apache.dubbo.spring.boot.demo.api.DemoService", - "interfaceClass": "org.apache.dubbo.spring.boot.demo.api.DemoService", - "layer": null, - "listener": "", - "loadbalance": null, - "local": null, - "merger": null, - "mock": null, - "onconnect": null, - "ondisconnect": null, - "owner": null, - "path": "org.apache.dubbo.spring.boot.demo.api.DemoService", - "proxy": null, - "retries": null, - "scope": null, - "sent": null, - "stub": null, - "timeout": null, - "token": null, - "unexported": false, - "uniqueServiceName": "org.apache.dubbo.spring.boot.demo.api.DemoService:1.0.0", - "validation": null, - "version": "1.0.0", - "warmup": null, - "weight": null, - "serviceClass": "DefaultDemoService" - } -} -``` - -The key is the Bean name of `ServiceBean` , `ServiceBean`'s properties compose value. - - - -### Endpoint : `/dubbo/references` - -`/dubbo/references` exposes all Dubbo's `ReferenceBean` that are declared via `@Reference` annotating on `Field` or `Method ` : - -```json -{ - "private org.apache.dubbo.spring.boot.demo.api.DemoService org.apache.dubbo.spring.boot.demo.consumer.controller.DemoConsumerController.demoService": { - "actives": null, - "cache": null, - "callbacks": null, - "class": "com.alibaba.dubbo.config.spring.ReferenceBean", - "client": null, - "cluster": null, - "connections": null, - "filter": "", - "generic": null, - "group": null, - "id": "org.apache.dubbo.spring.boot.demo.api.DemoService", - "interface": "org.apache.dubbo.spring.boot.demo.api.DemoService", - "interfaceClass": "org.apache.dubbo.spring.boot.demo.api.DemoService", - "layer": null, - "lazy": null, - "listener": "", - "loadbalance": null, - "local": null, - "merger": null, - "mock": null, - "objectType": "org.apache.dubbo.spring.boot.demo.api.DemoService", - "onconnect": null, - "ondisconnect": null, - "owner": null, - "protocol": null, - "proxy": null, - "reconnect": null, - "retries": null, - "scope": null, - "sent": null, - "singleton": true, - "sticky": null, - "stub": null, - "stubevent": null, - "timeout": null, - "uniqueServiceName": "org.apache.dubbo.spring.boot.demo.api.DemoService:1.0.0", - "url": "dubbo://localhost:12345", - "validation": null, - "version": "1.0.0", - "invoker": { - "class": "com.alibaba.dubbo.common.bytecode.proxy0" - } - } -} -``` - -The key is the string presentation of `@Reference` `Field` or `Method ` , `ReferenceBean`'s properties compose value. - - - -### Endpoint : `/dubbo/configs` - - `/dubbo/configs` exposes all Dubbo's `*Config` : - -```json -{ - "ApplicationConfig": { - "dubbo-consumer-demo": { - "architecture": null, - "class": "com.alibaba.dubbo.config.ApplicationConfig", - "compiler": null, - "dumpDirectory": null, - "environment": null, - "id": "dubbo-consumer-demo", - "logger": null, - "name": "dubbo-consumer-demo", - "organization": null, - "owner": null, - "version": null - } - }, - "ConsumerConfig": { - - }, - "MethodConfig": { - - }, - "ModuleConfig": { - - }, - "MonitorConfig": { - - }, - "ProtocolConfig": { - "dubbo": { - "accepts": null, - "accesslog": null, - "buffer": null, - "charset": null, - "class": "com.alibaba.dubbo.config.ProtocolConfig", - "client": null, - "codec": null, - "contextpath": null, - "dispatcher": null, - "dispather": null, - "exchanger": null, - "heartbeat": null, - "host": null, - "id": "dubbo", - "iothreads": null, - "name": "dubbo", - "networker": null, - "path": null, - "payload": null, - "port": 12345, - "prompt": null, - "queues": null, - "serialization": null, - "server": null, - "status": null, - "telnet": null, - "threadpool": null, - "threads": null, - "transporter": null - } - }, - "ProviderConfig": { - - }, - "ReferenceConfig": { - - }, - "RegistryConfig": { - - }, - "ServiceConfig": { - - } -} -``` - -The key is the simple name of Dubbo `*Config` Class , the value is`*Config` Beans' Name-Properties Map. - - - -### Endpoint : `/dubbo/shutdown` - -`/dubbo/shutdown` shutdowns Dubbo's components including registries, protocols, services and references : - -```json -{ - "shutdown.count": { - "registries": 0, - "protocols": 1, - "services": 0, - "references": 1 - } -} -``` - -"shutdown.count" means the count of shutdown of Dubbo's components , and the value indicates how many components have been shutdown. - - - -## Externalized Configuration - - - -### `StatusChecker` Defaults - - - -`management.health.dubbo.status.defaults` is a property name for setting names of `StatusChecker`s , its value is allowed to multiple-values , for example : - -```properties -management.health.dubbo.status.defaults = registry,memory,load -``` - - - -#### Default Value - -The default value is : - -```properties -management.health.dubbo.status.defaults = memory,load -``` - - - -### `StatusChecker` Extras - - - -`management.health.dubbo.status.extras` is used to override the [ [`StatusChecker`'s defaults]](#statuschecker-defaults) , the multiple-values is delimited by comma : - -```properties -management.health.dubbo.status.extras = load,threadpool -``` - - - -### Health Checks Enabled - - - -`management.health.dubbo.enabled` is a enabled configuration to turn on or off health checks feature, its' default is `true`. - - If you'd like to disable health checks , you chould apply `management.health.dubbo.enabled` to be `false`: - -```properties -management.health.dubbo.enabled = false -``` - - - -### Endpoints Enabled - - - -Dubbo Spring Boot providers actuator endpoint `dubbo` , however it is disable. If you'd like to enable it , please add following property into externalized configuration : - -```properties -# Dubbo Endpoint enabled (default value is false) -endpoints.dubbo.enabled = true -``` - - - -### Endpoints Sensitive - -Dubbo endpoints contain some sensitive information and significant opeations , thus it's sensitive , that means endpoints maybe protected and authorized if security resolved. - - - -If you consider it's fine to be public , you can add following property into externalized configuration : - -```properties -# Dubbo Endpoint (default value is true) -endpoints.dubbo.sensitive = false -``` - -> If Spring Security were resolved , configure more : -> -> ```properties -> management.security.enabled = false -> ``` diff --git a/dubbo-spring-boot-autoconfigure/README.md b/dubbo-spring-boot-autoconfigure/README.md index d27c8f677..0e32d7ab3 100644 --- a/dubbo-spring-boot-autoconfigure/README.md +++ b/dubbo-spring-boot-autoconfigure/README.md @@ -23,17 +23,17 @@ You can introduce the latest `dubbo-spring-boot-autoconfigure` to your project org.apache.dubbo dubbo-spring-boot-autoconfigure - 0.2.1 + 2.7.0 ``` If your project failed to resolve the dependency, try to add the following repository: - ```xml - sonatype-nexus-snapshots - https://oss.sonatype.org/content/repositories/snapshots + apache.snapshots.https + Apache Development Snapshot Repository + https://repository.apache.org/content/repositories/snapshots false @@ -50,7 +50,7 @@ If your project failed to resolve the dependency, try to add the following repos Since `2.5.7` , Dubbo totally supports Annotation-Driven , core Dubbo's components that are registered and initialized in Spring application context , including exterialized configuration features. However , those features need to trigger in manual configuration , e.g `@DubboComponentScan` , `@EnableDubboConfig` or `@EnableDubbo`. -> If you'd like to learn more , please read [Dubbo Annotation-Driven (Chinese)](https://github.com/mercyblitz/blogs/blob/master/java/dubbo/Dubbo-Annotation-Driven.md) +> If you'd like to learn more , please read [Dubbo Annotation-Driven (Chinese)](http://dubbo.apache.org/zh-cn/blog/dubbo-annotation-driven.html) @@ -62,7 +62,7 @@ Since `2.5.7` , Dubbo totally supports Annotation-Driven , core Dubbo's compon Externalized Configuration is a core feature of Spring Boot , Dubbo Spring Boot not only supports it definitely , but also inherits Dubbo's Externalized Configuration, thus it provides single and multiple Dubbo's `*Config` Bindings from `PropertySources` , and `"dubbo."` is a common prefix of property name. -> If you'd like to learn more , please read [Dubbo Externalized Configuration](https://github.com/mercyblitz/blogs/blob/master/java/dubbo/Dubbo-Externalized-Configuration.md)(Chinese). +> If you'd like to learn more , please read [Dubbo Externalized Configuration](http://dubbo.apache.org/zh-cn/blog/dubbo-externalized-configuration.html)(Chinese).