我正在使用 Kafka 0.10.1.1 并编写一个测试生产者,但在producer.send onCompletion回调中出现错误:
producer.send(record, new Callback() {
@Override
public void onCompletion(RecordMetadata metadata, Exception e) {
if (e != null){
System.out.println(e.getMessage());
}
}
});
Run Code Online (Sandbox Code Playgroud)
带有配置的生产者: timeout.ms=30000, linger.ms=5, batch.size=1000
收到以下错误消息:
自上次追加以来,由于 30004 毫秒,testtopic-2 的 1 条记录已过期
但是这个错误信息只是有时出现。制片人有时可以工作得很好。
我有一个 gradle 支持的SpringBoot应用程序,我们最初只是在其中创建我们的
REST 控制器,然后使用@EnableSwagger2注释来创建我们的 swagger UI。这工作得很好,但现在我们想过渡到 API 优先的方法。
所以这意味着我们现在正在创建我们的swagger.json第一个,然后swagger-codegen用于生成我们的 Java 接口/控制器以在我们的 SpringBoot 应用程序中使用。我现在正试图弄清楚如何只告诉springfox-swagger-ui使用swagger.json我们创建的,而不是查看 Java 代码以在事后生成 UI。在我看来,这是正确的方法,以避免从本质上springfox-swagger-ui重新生成swagger.json幕后可能引起的任何不一致。
我该如何配置这种行为?谢谢。
我们的K8s吊舱上有OOMKilled活动.我们希望在这样的事件的情况下,在pod被驱逐之前运行本机内存分析命令.是否可以添加这样的钩子?
更具体:我们使用-XX:NativeMemoryTracking=summaryJVM标志运行.我们想要jcmd <pid> VM.native_memory summary.diff在pod驱逐之前运行以查看导致OOM的原因.
我正在探索入口,并遇到以下入口控制器:
我在Google上搜索了很多,但似乎没有太大的区别。您能帮我解决这三个方面与生产中最佳选择之间的区别吗?
注意:这适用于使用Linux VM的私有云。
谢谢。
probe_success和 和有up什么区别?
我看到各种示例,其中基于其中任何一个(例如站点关闭、实例关闭)完成警报。我错过了什么吗?
我正在使用 Spring Boot 和 REST 服务,使用@RestController. 我想用有效负载记录所有请求和响应。我该如何使用 来做到这一点Spring Boot Actuator?当我使用:
@Bean
public ServletContextRequestLoggingFilter requestLoggingFilter() {
ServletContextRequestLoggingFilter loggingFilter = new ServletContextRequestLoggingFilter();
loggingFilter.setIncludeClientInfo(true);
loggingFilter.setIncludeQueryString(true);
loggingFilter.setIncludePayload(true);
loggingFilter.setIncludeHeaders(true);
loggingFilter.setMaxPayloadLength(10000);
loggingFilter.setAfterMessagePrefix("REQUEST DATA : ");
return loggingFilter;
}
Run Code Online (Sandbox Code Playgroud)
我只收到请求,但没有收到响应。
我们有一个集群,看来似乎永远都不想完全删除名称空间,现在无法重新创建自定义指标名称空间以能够收集自定义指标以正确设置HPA。我完全理解,我可以使用所有自定义指标资源创建另一个名称空间,但是由于名称空间陷入了“终止”状态,因此与集群的整体运行状况有些关系
$ kubectl get ns
NAME STATUS AGE
cert-manager Active 14d
custom-metrics Terminating 7d
default Active 222d
nfs-share Active 15d
ingress-nginx Active 103d
kube-public Active 222d
kube-system Active 222d
lb Terminating 4d
monitoring Terminating 6d
production Active 221d
Run Code Online (Sandbox Code Playgroud)
我已经尝试将名称空间导出为JSON,删除终结器并使用已编辑的JSON文件重新创建。还尝试kubectl编辑ns自定义指标并删除“-kubernetes”终结器。一切都无济于事。
是否有人对我如何可以销毁这些“卡住”的命名空间有其他建议?
卷曲到https://master-ip/api/v1/namespace/...../finalize对我来说似乎不适用于Google Kubernetes Engine,我假设在GKE集群上不允许这些操作
尝试类似的事情也不起作用:
$ kubectl delete ns custom-metrics --grace-period=0 --force
Run Code Online (Sandbox Code Playgroud)
警告:立即删除不会等待确认正在运行的资源已终止。资源可能会无限期地继续在群集上运行。服务器错误(冲突):无法在名称空间“自定义指标”上执行操作:系统正在确保从该名称空间中删除所有内容。完成后,该名称空间将由系统自动清除。
并且此命名空间中根本没有列出任何资源:
kubectl get all -n custom-metrics或者循环访问此命名空间中的所有api资源都表明根本不存在任何资源:
kubectl api-resources --namespaced=true -o name | xargs -n 1 kubectl get -n custom-metrics
有没有办法设置 Stackdriver 在我的任何 Google API 使用量达到限制时接收警报?
我曾经在https://console.cloud.google.com/iam-admin/quotas手动检查,但我不知道如何自动收到警报。
我正在使用 Kubernetes v1.7 运行一个多容器 pod - 一个应用程序容器和一个 sidecar。我想重新启动 Pod,以防应用程序容器死亡。如何实现这一目标?
我们有一种情况,当 Kubernetes 达到容器的最大内存限制时,它会杀死 Mongo 容器。即使它期望 K8s 以这种方式工作,但感觉 Mongo 并没有重用它的内存,因为它每天都在不断增加内存使用量,即使用户负载和事务是相同的,所以要检查我们如何限制Mongo 达到容器的最大内存或定期刷新 Mongo 内存。
我试图增加内存,这有助于 Pod 在 K8 杀死它之前继续运行几天
"containers": [
{
"name": "mongo",
"image": "dockercentral.com:5870/com.public/mongodb:3.6",
"ports": [
{
"containerPort": 27017,
"protocol": "TCP"
}
]
"resources": {
"limits": {
"cpu": "1",
"memory": "24Gi"
},
"requests": {
"cpu": "250m",
"memory": "24Gi"
}
}
"name": "MONGO_SECURITY",
"value": "true"
}
],
"resources": {
"limits": {
"cpu": "500m",
"memory": "1Gi"
},
"requests": {
"cpu": "150m",
"memory": "256Mi"
}
},
Run Code Online (Sandbox Code Playgroud) kubernetes ×4
java ×2
spring-boot ×2
alert ×1
apache-kafka ×1
docker ×1
mongodb ×1
producer ×1
prometheus ×1
quota ×1
spring-mvc ×1
springfox ×1
stackdriver ×1
swagger-ui ×1