# 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
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Apache Dubbo的java实现 RPC和微服务框架 (2000个子文件)
GooglePB.java 169KB
ReferenceConfigTest.java 62KB
DefaultApplicationDeployer.java 56KB
RegistryProtocol.java 52KB
ConfigTest.java 49KB
ServiceConfig.java 47KB
ServiceInstancesChangedListenerWithoutEmptyProtectTest.java 42KB
ServiceInstancesChangedListenerTest.java 42KB
MultiInstanceTest.java 41KB
AbstractConfigTest.java 39KB
ConfigValidationUtils.java 38KB
NacosNamingServiceWrapperTest.java 37KB
ServiceDiscoveryRegistryDirectory.java 37KB
ReferenceConfig.java 35KB
RegistryDirectory.java 34KB
NacosRegistry.java 33KB
JaxrsRestProtocolTest.java 32KB
MetadataInfo.java 32KB
DubboBeanDefinitionParser.java 32KB
TriHttp2RemoteFlowController.java 32KB
DubboMergingDigest.java 31KB
ServiceAnnotationPostProcessor.java 30KB
DubboBootstrap.java 30KB
ReferenceAnnotationBeanPostProcessor.java 29KB
Hessian2SerializationTest.java 29KB
AbstractRegistry.java 28KB
FastJson2SerializationTest.java 28KB
DubboProtocol.java 27KB
ServiceConfigTest.java 27KB
RpcUtilsTest.java 27KB
RegistryProtocolTest.java 26KB
RpcInvocation.java 26KB
ServiceInstancesChangedListener.java 26KB
RpcContext.java 25KB
AbstractMetadataReport.java 25KB
AnnotationUtils.java 24KB
DefaultModuleDeployer.java 23KB
AbstractMetadataReportTest.java 23KB
DubboBootstrapTest.java 23KB
TypeUtilsTest.java 22KB
MethodConfigTest.java 22KB
JavaConfigReferenceBeanTest.java 22KB
AbstractRegistryTest.java 22KB
InstanceAddressURL.java 22KB
NacosMetadataReport.java 22KB
MigrationInvoker.java 22KB
NacosNamingServiceWrapper.java 21KB
TripleServerStream.java 21KB
ServiceDiscoveryRegistry.java 21KB
TripleClientStream.java 21KB
CallbackServiceCodec.java 20KB
ReferenceKeyTest.java 20KB
DubboTelnetDecodeTest.java 20KB
AbstractServiceRestMetadataResolver.java 20KB
ReflectionPackableMethod.java 20KB
FailbackRegistry.java 19KB
SingleRegistryCenterDubboProtocolIntegrationTest.java 19KB
GenericFilter.java 19KB
AbstractAnnotationBeanPostProcessor.java 19KB
ZookeeperRegistry.java 19KB
CacheableFailbackRegistry.java 19KB
AbstractServiceDiscovery.java 19KB
AggregateMetricsCollector.java 17KB
AggregateMetricsCollectorTest.java 17KB
ZookeeperMetadataReportTest.java 17KB
SpringMvcRestProtocolTest.java 17KB
MulticastRegistry.java 17KB
MetricsFilterTest.java 17KB
ReferenceAnnotationBeanPostProcessorTest.java 17KB
RpcServiceContext.java 17KB
TripleInvoker.java 17KB
ReferenceBean.java 17KB
AbstractServerCall.java 16KB
JValidatorNew.java 16KB
DubboCodec.java 16KB
JValidator.java 16KB
InjvmInvoker.java 16KB
MultipleRegistry.java 16KB
ArgumentCallbackTest.java 15KB
NettyConnectionClient.java 15KB
MigrationInvokerTest.java 15KB
MetadataMetricsCollectorTest.java 15KB
OpenTelemetryAutoConfiguration.java 15KB
TypeUtils.java 15KB
DubboProtocolTest.java 15KB
ProtocolConfigTest.java 15KB
RpcContextTest.java 14KB
ReflectionPackableMethodTest.java 14KB
RegistryMetricsCollectorTest.java 14KB
ZKTools.java 14KB
MessageFormatter.java 14KB
TripleCustomerProtocolWapper.java 14KB
AsyncRpcResult.java 14KB
DefaultCollectorTest.java 14KB
NacosRegistryTest.java 14KB
DynamicDirectory.java 14KB
RpcUtils.java 14KB
ReferenceBeanSupport.java 14KB
ServiceDiscoveryRegistryTest.java 14KB
ApplicationConfigTest.java 14KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
UnknownToKnown
- 粉丝: 1w+
- 资源: 616
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功