# Dubbo Spring Boot Production-Ready
`dubbo-spring-boot-actuator` provides production-ready features (e.g. [health checks](#health-checks), [endpoints](#endpoints), and [externalized configuration](#externalized-configuration)).
## Content
1. [Main Content](https://github.com/apache/dubbo-spring-boot-project)
2. [Integrate with Maven](#integrate-with-maven)
3. [Health Checks](#health-checks)
4. [Endpoints](#endpoints)
5. [Externalized Configuration](#externalized-configuration)
## Integrate with Maven
You can introduce the latest `dubbo-spring-boot-actuator` to your project by adding the following dependency to your pom.xml
```xml
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-actuator</artifactId>
<version>2.7.4.1</version>
</dependency>
```
If your project failed to resolve the dependency, try to add the following repository:
```xml
<repositories>
<repository>
<id>apache.snapshots.https</id>
<name>Apache Development Snapshot Repository</name>
<url>https://repository.apache.org/content/repositories/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
```
## Health Checks
`dubbo-spring-boot-actuator` supports the standard Spring Boot `HealthIndicator` as a production-ready feature , which will be aggregated into Spring Boot's `Health` and exported on `HealthEndpoint` that works MVC (Spring Web MVC) and JMX (Java Management Extensions) both if they are available.
### Web Endpoint : `/health`
Suppose a Spring Boot Web application did not specify `management.server.port`, you can access http://localhost:8080/actuator/health via Web Client and will get a response with JSON format is like below :
```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` are Dubbo's build-in `StatusChecker`s in above example.
Dubbo allows the application to extend `StatusChecker`'s SPI.
Default , `memory` and `load` will be added into Dubbo's `HealthIndicator` , it could be overridden by
externalized configuration [`StatusChecker`'s defaults](#statuschecker-defaults).
### JMX Endpoint : `Health`
`Health` is a JMX (Java Management Extensions) Endpoint with ObjectName `org.springframework.boot:type=Endpoint,name=Health` , it can be managed by JMX agent ,e.g. JDK tools : `jconsole` and so on.
![](JMX_HealthEndpoint.png)
### Build-in `StatusChecker`s
`META-INF/dubbo/internal/org.apache.dubbo.common.status.StatusChecker` declares Build-in `StatusChecker`s as follow :
```properties
registry=org.apache.dubbo.registry.status.RegistryStatusChecker
spring=org.apache.dubbo.config.spring.status.SpringStatusChecker
datasource=org.apache.dubbo.config.spring.status.DataSourceStatusChecker
memory=org.apache.dubbo.common.status.support.MemoryStatusChecker
load=org.apache.dubbo.common.status.support.LoadStatusChecker
server=org.apache.dubbo.rpc.protocol.dubbo.status.ServerStatusChecker
threadpool=org.apache.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 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` | `/actuator/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` |
### Web Endpoints
#### `/actuator/dubbo`
`/dubbo` exposes Dubbo's meta data :
```json
{
"timestamp": 1516623290166,
"versions": {
"dubbo-spring-boot": "2.7.5",
"dubbo": "2.7.5"
},
"urls": {
"dubbo": "https://github.com/apache/dubbo/",
"google-group": "dev@dubbo.apache.org",
"github": "https://github.com/apache/dubbo-spring-boot-project",
"issues": "https://github.com/apache/dubbo-spring-boot-project/issues",
"git": "https://github.com/apache/dubbo-spring-boot-project.git"
}
}
```
###
#### `/actuator/dubbo/properties`
`/actuator/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.sample.provider.service"
}
```
The structure of JSON is simple Key-Value format , the key is property name as and the value is property value.
#### `/actuator/dubbo/services`
`/actuator/dubbo/services` exposes all Dubbo's `ServiceBean` that are declared via `<dubbo:service/>` or `@Service` present in Spring `ApplicationContext` :
```json
{
"ServiceBean@org.apache.dubbo.spring.boot.sample.api.DemoService#defaultDemoService": {
"accesslog": null,
"actives": null,
"cache": null,
"callbacks": null,
"class": "org.apache.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.sample.api.DemoService",
"interface": "org.apache.dubbo.spring.boot.sample.api.DemoService",
"interfaceClass": "org.apache.dubbo.spring.boot.sample.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.sample.api.DemoService",
"proxy": null,
"retries": null,
"scope": null,
"sent": null,
"stub": null,
"timeout": null,
"token": null,
"unexported": false,
"uniqueS
没有合适的资源?快使用搜索试试~ 我知道了~
dubbo-3.1.4源码包
共3739个文件
java:3005个
xml:201个
sh:116个
需积分: 10 2 下载量 198 浏览量
2022-12-23
16:06:44
上传
评论
收藏 6.17MB ZIP 举报
温馨提示
dubbo-3.1.4源码包
资源推荐
资源详情
资源评论
收起资源包目录
dubbo-3.1.4源码包 (3739个子文件)
org.apache.dubbo.auth.spi.AccessKeyStorage 56B
org.apache.dubbo.common.extension.activate.ActivateExt1 451B
org.apache.dubbo.common.extension.activate.ActivateExt1 65B
org.apache.dubbo.common.extension.activate.ActivateWrapperExt1 245B
org.apache.dubbo.common.extension.ext8_add.AddExt1 66B
org.apache.dubbo.metadata.annotation.processing.rest.AnnotatedMethodParameterProcessor 869B
org.apache.dubbo.metadata.rest.AnnotatedMethodParameterProcessor 715B
org.apache.dubbo.common.deploy.ApplicationDeployListener 65B
org.apache.dubbo.common.context.ApplicationExt 108B
org.apache.dubbo.auth.spi.Authenticator 54B
org.apache.dubbo.qos.command.BaseCommand 2KB
org.apache.dubbo.qos.command.BaseCommand 840B
start.bat 2KB
serialize.blockedlist 4KB
org.apache.dubbo.rpc.model.BuiltinServiceDetector 127B
org.apache.dubbo.rpc.model.BuiltinServiceDetector 113B
org.apache.dubbo.rpc.model.BuiltinServiceDetector 59B
test-metadata.dubbo.cache 392B
test-cache.dubbo.cache 36B
org.apache.dubbo.cache.CacheFactory 318B
java.lang.CharSequence 90B
org.apache.dubbo.rpc.protocol.grpc.interceptors.ClientInterceptor 77B
org.apache.dubbo.rpc.cluster.Cluster 642B
org.apache.dubbo.rpc.cluster.Cluster 52B
org.apache.dubbo.rpc.cluster.filter.ClusterFilter 155B
org.apache.dubbo.rpc.cluster.filter.ClusterFilter 68B
org.apache.dubbo.rpc.cluster.filter.ClusterFilter 62B
org.apache.dubbo.rpc.cluster.filter.ClusterFilter 61B
org.apache.dubbo.remoting.Codec 835B
org.apache.dubbo.remoting.Codec2 243B
org.apache.dubbo.remoting.Codec2 62B
org.apache.dubbo.remoting.Codec2 57B
org.apache.dubbo.common.extension.compatible.CompatibleExt 143B
org.apache.dubbo.common.compiler.Compiler 192B
org.apache.dubbo.rpc.protocol.tri.compressor.Compressor 171B
org.apache.dubbo.rpc.cluster.ConfiguratorFactory 169B
org.apache.dubbo.remoting.api.ConnectionManager 143B
org.apache.dubbo.container.Container 56B
org.apache.dubbo.common.convert.Converter 855B
org.apache.dubbo.common.convert.Converter 209B
org.apache.dubbo.common.convert.Converter 127B
org.apache.dubbo.common.store.DataStore 60B
org.apache.dubbo.rpc.protocol.tri.compressor.DeCompressor 171B
org.apache.dubbo.common.extension.wrapper.Demo 258B
org.apache.dubbo.remoting.Dispatcher 850B
org.apache.dubbo.remoting.Dispatcher 415B
org.apache.dubbo.remoting.Dispatcher 59B
Dockerfile 1KB
org.apache.dubbo.config.bootstrap.DubboBootstrapStartStopListener 91B
org.apache.dubbo.config.spring.context.DubboSpringInitCustomizer 67B
org.apache.dubbo.common.extension.duplicated.DuplicatedOverriddenExt 85B
org.apache.dubbo.common.extension.duplicated.DuplicatedOverriddenExt 85B
org.apache.dubbo.common.extension.duplicated.DuplicatedWithoutOverriddenExt 92B
org.apache.dubbo.common.extension.duplicated.DuplicatedWithoutOverriddenExt 92B
org.apache.dubbo.common.config.configcenter.DynamicConfigurationFactory 174B
org.apache.dubbo.common.config.configcenter.DynamicConfigurationFactory 94B
org.apache.dubbo.common.config.configcenter.DynamicConfigurationFactory 85B
org.apache.dubbo.common.config.configcenter.DynamicConfigurationFactory 82B
org.apache.dubbo.common.url.component.param.DynamicParamSource 77B
.editorconfig 1KB
org.apache.dubbo.event.EventListener 48B
org.apache.dubbo.remoting.exchange.Exchanger 72B
org.apache.dubbo.remoting.exchange.Exchanger 64B
org.apache.dubbo.remoting.exchange.Exchanger 57B
org.apache.dubbo.common.threadpool.manager.ExecutorRepository 76B
exit_code-0 2B
exit_code-1 2B
exit_code-2 2B
exit_code-3 2B
org.apache.dubbo.rpc.ExporterListener 887B
org.apache.dubbo.common.extension.ext10_multi_names.Ext10MultiNames 95B
org.apache.dubbo.common.extension.ext2.Ext2 179B
org.apache.dubbo.common.extension.ext6_inject.Ext6 133B
org.apache.dubbo.common.extension.ext9_empty.Ext9Empty 0B
com.alibaba.dubbo.common.extension.ExtensionFactory 62B
org.apache.dubbo.common.extension.ExtensionInjector 209B
org.apache.dubbo.common.extension.ExtensionInjector 72B
spring.factories 680B
spring.factories 507B
spring.factories 156B
spring.factories 145B
SimpleDO.fc 19B
org.apache.dubbo.rpc.Filter 823B
org.apache.dubbo.rpc.Filter 537B
org.apache.dubbo.rpc.Filter 121B
org.apache.dubbo.rpc.Filter 62B
org.apache.dubbo.rpc.Filter 60B
org.apache.dubbo.rpc.Filter 55B
org.apache.dubbo.rpc.Filter 55B
org.apache.dubbo.rpc.Filter 53B
org.apache.dubbo.rpc.Filter 50B
org.apache.dubbo.rpc.Filter 47B
org.apache.dubbo.common.extension.support.Filter0 267B
org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder 69B
json.flex 2KB
org.apache.dubbo.common.extension.director.FooAppProvider 80B
org.apache.dubbo.common.extension.director.FooAppService 74B
org.apache.dubbo.common.extension.director.FooFrameworkProvider 92B
org.apache.dubbo.common.extension.director.FooFrameworkService 79B
org.apache.dubbo.common.extension.director.FooModuleProvider 86B
共 3739 条
- 1
- 2
- 3
- 4
- 5
- 6
- 38
资源评论
冯丙见
- 粉丝: 6997
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功