前记由于WebSocket协议是借助HTTP/1.1版本的“握手机制”完成的建立链接这一操作,同时基于TCP协议进行独立传输数据,所以最好了解一下TCP和HTTP协议的相关知识,可以参考另一篇笔记《TCP、HTTP协议的深入研究》
简单介绍
WebSocket是一种基于TCP的全双工(Full-Duplex)应用层通信协议,位于 OSI 模型的应用层,由HTML5规范正式定义,核心...
Protocol Buffers(简称 Protobuf)是一种高效的、语言中立的序列化数据格式,广泛用于数据存储和网络通信。它通过 .proto 文件定义数据结构,并生成多种语言的代码以便操作这些数据。
安装
git地址:https://github.com/protocolbuffers/protobuf
下载地址:https://github.com/protocolbuffers...
底层基础知识通信模式在计算机通信领域中,常见的模型默认有三种:单工模式、半双工模式、全双工模式
单工模式(Simplex)
定义:数据只能沿一个方向传输,一方固定为发送端,另一方固定为接收端,无法反向通信。
特点:信道是单向的,无需考虑双向同步或冲突问题,结构简单但灵活性低。
举例:广播电视(电视台发送信号,电视机只能接收)、键盘向电脑输入数据(键盘仅发送,电脑仅接收)、打印机接收电脑指令(...
概述
Docker Swarm是Docker引擎内置的容器编排工具,可以将多台Docker主机组成一个集群,统一调度和管理容器服务。
单机跑Docker够用,但到了生产环境——服务要多副本、要高可用、某台机器挂了容器得自动迁移——就需要把多台机器组成集群来调度。Docker Swarm就是Docker原生的集群编排方案,不需要额外装东西,docker swarm init一条命令就能把当前...
《Docker学习笔记——基础篇》已经记录了容器与镜像的核心概念、安装、基本命令、docker run和docker inspect的详细用法。这篇接着往下,把日常开发和部署中绑定更紧的几块记下来:网络、数据卷、Dockerfile构建镜像、镜像分发,以及用Compose编排多容器服务。
网络容器默认各自有独立的网络命名空间,彼此隔离。但实际用起来,容器之间要互相通信(比如应用连数据库)、...
概述
Docker是一个开源的应用容器引擎,基于Go语言,并遵从Apache2.0协议开源。它可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化
应用场景
微服务架构:每个服务独立容器化,便于管理和扩展
CI/CD流水线:与Jenkins/GitLabCI集成,实现自动化构建和测试
开发环境标准化:新...
本文将深入探讨Elasticsearch中的查询机制及其进阶用法,包括基础查询方式、span相关的搜索语法、子字段分词以及滚动搜索等。下文的查询示例基于真实的APK安全分析索引apk_v6。
示例索引(apk_v6)本篇所有示例基于以下索引。这是一个APK样本数据库的完整mapping,别名为apk,90分片,ES 7.15版本。
1234567891011121314151617181...
在创建索引时,可以对索引进行各种配置,比如分片数量、字段限制、索引方式等,下面进行详细介绍
配置写法Elasticsearch 支持两种等效的配置方式,分别为扁平式(Flat)和嵌套式(Nested),在早期版本的Elasticsearch更倾向于使用扁平式(如 1.x/2.x 时代)。随着JSON格式成为主流,嵌套式表达变得更直观,现在版本的Elasticsearch内部会将...
Elasticsearch 是一个基于 Lucene 的开源分布式搜索和分析引擎,常用于全文检索、日志分析、实时数据处理等场景,具有分布式、高可用、易扩展等特点
核心特点
分布式架构:可自动将数据分散到多个节点,支持水平扩展,轻松应对大规模数据量和高并发请求。
实时搜索与分析:数据一经索引即可被搜索,能快速处理实时数据,满足实时查询和分析需求。
全文检索能力:支持复杂的文本搜索,包括关键...
概述
tmux(Terminal Multiplexer,终端复用器)是一个开源的终端复用工具,用C语言编写,采用客户端-服务器架构。它能在一个终端窗口里管理多个相互独立的会话、窗口和窗格,并支持把会话放到后台持续运行,断开连接后再随时恢复。
普通终端有两个痛点:一是一个窗口只能跑一个 shell,要同时看日志、编辑代码、跑命令就得开一堆终端窗口来回切;二是 SSH 连到远程服务器后,一旦...