Stork Reference Guide
本指南是 Stork Getting Started Guide 的配套指南。它解释了 Quarkus 中 SmallRye Stork 集成的配置和用法。 :iokays-category: quarkus :iokays-path: modules/ROOT/pages/_includes/extension-status.adoc :keywords: Quarkus, 中文文档, 编程技术
该技术被认为是 {extension-status}。 有关可能状态的完整列表,请查看我们的 FAQ entry. |
Supported clients
Stork 的当前集成支持:
-
the REST Client
-
gRPC 客户端(建议使用 Vert.x gRPC 客户端)
警告:gRPC 客户端集成不支持基于统计数据的负载平衡器。
Available service discovery and selection
查看 SmallRye Stork website 以了解有关提供的服务发现和选择的更多信息。
Using Stork in Kubernetes
Stork 为 Kubernetes 提供服务发现支持,超出了 Kubernetes 默认提供的功能。它将在 Kubernetes 服务的备份中查找所有 pod,但不会像 Kubernetes 所做的那样应用循环负载均衡,而是允许您使用 Stork 负载平衡器选择 pod。
要使用此功能,请将以下依赖项添加到项目中:
<dependency>
<groupId>io.smallrye.stork</groupId>
<artifactId>stork-service-discovery-kubernetes</artifactId>
</dependency>
implementation("io.smallrye.stork:stork-service-discovery-kubernetes")
为希望作为 Kubernetes 服务公开的每项服务配置查找:
quarkus.stork.my-service.service-discovery.type=kubernetes
quarkus.stork.my-service.service-discovery.k8s-namespace=my-namespace
Stork 在指定命名空间中查找给定名称的 Kubernetes 服务(前面示例中的 my-service
)。Stork 不直接使用 Kubernetes 服务 IP,也不让 Kubernetes 来处理选择和平衡,而是检查服务并检索提供服务的 pod 列表。然后,它可以选择该实例。
有关使用 Kubernetes 的 Stork 的完整示例,请阅读 Using Stork with Kubernetes guide。
Configure Stork observability
Enable metrics
当应用程序还使用quarkus-micrometer
扩展时,会自动启用 Stork 指标。
Micrometer 通过 Stork 以及使用 Stork 进行编程的客户端来收集 rest/grpc 客户端的指标。
比如,如果你将指标导出到 Prometheus,你将得到:
# HELP stork_service_selection_failures_total The number of failures during service selection.
# TYPE stork_service_selection_failures_total counter
stork_service_selection_failures_total{service_name="hello-service",} 0.0
# HELP stork_service_selection_duration_seconds The duration of the selection operation
# TYPE stork_service_selection_duration_seconds summary
stork_service_selection_duration_seconds_count{service_name="hello-service",} 13.0
stork_service_selection_duration_seconds_sum{service_name="hello-service",} 0.001049291
# HELP stork_service_selection_duration_seconds_max The duration of the selection operation
# TYPE stork_service_selection_duration_seconds_max gauge
stork_service_selection_duration_seconds_max{service_name="hello-service",} 0.0
# HELP stork_overall_duration_seconds_max The total duration of the Stork service discovery and selection operations
# TYPE stork_overall_duration_seconds_max gauge
stork_overall_duration_seconds_max{service_name="hello-service",} 0.0
# HELP stork_overall_duration_seconds The total duration of the Stork service discovery and selection operations
# TYPE stork_overall_duration_seconds summary
stork_overall_duration_seconds_count{service_name="hello-service",} 13.0
stork_overall_duration_seconds_sum{service_name="hello-service",} 0.001049291
# HELP stork_service_discovery_failures_total The number of failures during service discovery
# TYPE stork_service_discovery_failures_total counter
stork_service_discovery_failures_total{service_name="hello-service",} 0.0
# HELP stork_service_discovery_duration_seconds_max The duration of the discovery operation
# TYPE stork_service_discovery_duration_seconds_max gauge
stork_service_discovery_duration_seconds_max{service_name="hello-service",} 0.0
# HELP stork_service_discovery_duration_seconds The duration of the discovery operation
# TYPE stork_service_discovery_duration_seconds summary
stork_service_discovery_duration_seconds_count{service_name="hello-service",} 13.0
stork_service_discovery_duration_seconds_sum{service_name="hello-service",} 6.585046209
# HELP stork_service_discovery_instances_count_total The number of service instances discovered
# TYPE stork_service_discovery_instances_count_total counter
stork_service_discovery_instances_count_total{service_name="hello-service",} 26.0
可以在_tags_中找到 Stork 服务名称。
指标包含服务发现(stork_service_discovery_*
)和有关服务选择(stork_service_selection_*
)的指标,例如服务实例数、失败和持续时间。