WebSocket 是一种基于 TCP 的网络协议,也是一种全双工通信的协议,既允许客户端向服务器主动发送消息,也允许服务器主动向客户端发送消息。在 WebSocket 中,浏览器和服务器只需要完成一次握手,两者之间就可以建立持久性的连接,进行双向数据传输。对于双向信息交互的需求来说,使用 WebSocket 实现业务逻辑非常合适,这里介绍下 SpringBoot 如何实现基于 WebSocket 的功能需求,并写了四个基本操作示例进行演示。
Helm 安装 ElasticSearch & Kibana 7.x 版本
Elasticsearch 是一个分布式的搜索和分析引擎,可以用于全文检索、结构化检索和分析,并能将这三者结合起来。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便,轻松扩展服务节点,更能用于日志收集快速检索等等一些列功能。所以在 Kubernetes 中搭配 ElasticSearch 集群是非常有必要的,通过 Yaml 文件安装 ElasticSearch 非常不方便且安装的可能非常不稳定导致发生很多问题,所以这里利用 Helm 来安装 ElasticSearch 和 Kibana,这里将介绍安装过程。
Jenkins Pipeline 中使用 Kafka 插件将消息发送到 Kafka
在平时我们使用 Jenkins 执行任务构建时候会产生很多指标性数据,这些数据会输出到 Jenkins 日志中,在 Jenkins 中日志是存储到文件里面的,且数据量多我们收集起存储来不是很方便,很多时候我们只要部分指标关键数据,例如,用于统计任务构建时长的'开始时间'和'结束时间'、'任务执行次数'、'任务执行人'、'任务编号'等等。收集这些关系指标数据有很多方法,可以使用 logstash 插件将数据输入到 Elasticsearch 中,也可以输出到 Kafka 等应用处理后再存储,这里就是将数据输出到 Kafka 中,方便后续处理这些数据。这里介绍下如何安装与使用该插件。
解决 Kubernetes 中 Pod 无法正常域名解析问题分析与 IPVS parseIP Error 问题
最近将 Kubernetes 升级到 1.18.1 版本,不过升级完后,查看工作节点的部分 Pod 无法启动,查看消息全是 connetion timeout 的错误,且连接超时的地址大部分是以域名方式连接集群内部地址(ClusterIP),少部分是以域名方式连接集群外部地址,通过 IP 进行远程连接的应用倒是没有问题(例如,应用通过 IP 连接 MySQL),由此判断,很可能是 DNS 出现了问题于是一步步进行了问题分析,最后定位为 IPVS parse Error 导致的问题。这里记录下详细的 DNS 问题分析与解决过程。
