当前位置: 首页 > news >正文

Istio_05_Istio架构

Istio_05_Istio架构

  • Architecture
    • Control Plane
      • Pilot
      • Citadel
      • Galley
    • Data Plane
      • Sidecar
        • Istio-proxy
          • Pilot-agent
          • Metadta Exchange
      • Ambient

Architecture

如: Istio的架构(控制面、数据面)

image

  1. Gateway: Istio数据面的出/入口网关
    • Gateway分为: Ingress-gateway、Egress-gateway
    • 外部访问服务网格内的服务时均需通过Ingress-gateway(Egress-gateway同理)
    • Gateway的Envoy与服务网格内的数据面代理相同, 都需从Pilot接受流量规则并执行

Control Plane

控制面(Control Plane): 统一服务发现和集中配置管理

  1. Istiod以单体应用方式实现, 但功能/维护以组件化方式进行

如: Istio控制面组件架构

image


Pilot

Pilot: Istio控制面的控制中枢

  1. 主要功能: 服务发现、配置管理、xDS Server
  2. Pilot也是Istiod的基础框架, 负责启动/协同其他功能组件
  3. Envoy均通过gRPC获取Pilot的配置资源, 并建立长连接获取

如: Pilot架构

image

  1. 平台适配器从运行平台提取数据并将其构造和转换成Istio服务模型
    • Pilot同时支持以MCP从除Kubernetes以外平台服务端获取配置
    • Pilot实现MCP客户端, 由第三方注册中心实现MCP服务器
  2. 聚合器将不同平台适配器提供的服务模型聚合, 以提供统一的索引接口
    • Pilot通过聚合器可无需关注底层平台的差异(解耦)
    • 也可通过ServiceEntry/WorkloadEntry扩展服务
  3. xDS生成器将各种规则转换成Envoy标准格式
  4. xDS Server通过xDS协议将配置发送给各Envoy
    • 通过订阅-发布模型实时、动态地推送xDS配置
    • 服务网格的数据面代理收到相同的流量规则, 并执行相同的治理行为
    • 本质: 通过EDSCDSLDS等接口向Enovy分发负载均衡和路由等配置信息

xDS Server: 基于xDS协议生成和分发配置

  1. 构成: xDS生成器、ADS服务器
  2. xDS(X Discovery Service): 数据源服务发现协议
    • 本质: LDSRDSCDSEDSSDS等发现服务的总称
  3. ADS(Aggregated Discovery Service): 聚合发现服务
    • 本质: 将xDS协议的更新指向相同的xDS Server(gRPC服务器)
    • 功能: 避免配置更新过程中的流量丢失(xDS属于最终一致性协议)

xDS Server的配置分发模式: 主动、被动

  1. 主动分发: 根据订阅请求将配置下发到Sidecar(事件触发)
    • 触发事件: 底层注册中心的服务或配置更新
    • 主动分发需Sidecar提前与xDS Server建立连接
  2. 被动分发: 根据Sidecar请求响应配置
    • 仅能响应指定请求资源类型的配置

如: xDS Server工作流程(省略平台模型的抽象中间组件)

image

  1. xDS Server以串行方式分发各xDS协议(CDS -> EDS -> LDS -> RDS)
  2. Pilot通过各类事件通知xDS Server进行xDS推送(同时缓存xDS配置源)

ADS服务器原理: StoW全量的ADS接口

  1. ADS服务器对数据的接收/发送使用独立的线程(生命周期同gRPC流)
  2. ADS服务器中由主线程处理器异步从队列中获取事件处理

如: ADS服务器工作流程

image

  1. 首次请求时会包含元数据信息以用于初始化
    • 后续的xDS生成/分发都依赖于初始化的元数据

Pilot的核心优化设计:

  1. 三级缓存
    • 构成: 平台资源缓存(资源)、Istio聚合层缓存(Istio API)、xDS配置缓存(分发)
    • 功能: 以适量的内存换取Pilot的CPU利用率降低
  2. 去抖动分发
    • 本质: 以最小静默时间最大延迟时间参数控制分发频率
    • 当时间超过最大延迟时间参数时, 会忽略最小静默时间参数
  3. 防过度分发
    • 本质: Pilot等待ACK确定期间的所有xDS分发会合并发送
    • 合并发送的数量取决于最近次分发和ACK响应的时间差值

Citadel

Citadel: Istio控制面的安全组件

  1. 主要功能: 自动生成、分发、轮换和撤销证书/密钥
  2. 证书种类: 双向TLS证书(CA: Citadel自签)、用户指定证书(RA: 机构签发)
  3. 会为每个负载都赋予个独立的身份, 基于该身份实现零信任安全的网络基础模型

如: Citadel原理

image

  1. Envoy启动时根据TLS配置, 向上游发起SDS请求以获取证书
    • 通过SDS接口以订阅方式获取证书, 且直接于内存中加载(便于重载)
  2. Pilot-agent作为SDS服务器处理请求(调用其他组件处理)
    • 向Citadel发送证书签发请求CSR
    • Pilot-agent同时负责证书的缓存和轮换(仅在Citadel自签时可用)
  3. Citadel认证请求, 并签发证书
    • Citadel以gRPC方式接受CSR请求, 并进行同步处理
    • 处理前以3种方式进行身份认证: X509证书、Kubernetes JWT、OIDC

Galley

Galley: Istio控制面的配置管理组件

  1. 主要功能: 验证配置、监控配置、接受/提供配置
  2. 本质: 以Webhook Server作为Kubernetes准入控制器
  3. Galley监控配置对象发生变更时, 会通知Pilot解析并分发最新配置

如: Galley工作流程

image

  1. Galley启动时首先初始化MCP Sink
    • 是否初始化取决于是否包含MCP源, 以监听MCP源获取配置并缓存
    • MCP Sink: API配置获取和监听方式更新管理的MCP客户端
  2. 初始化校验服务器, 并将其注册到HTTPS多路服用其中
    • 校验服务器初始化时失败策略为Ignore(忽略配置错误)
    • 校验服务器最后与HTTPS同时启动以验证配置
  3. 初始化并运行Webhook控制器(Istiod启动阶段)
    • 通过监控CA文件的更新事件, 动态更新Webhook配置

Data Plane

数据面(Data Plane): 流量管理和数据上报

  1. 数据面代理统一的注入到管理服务的访问链路上
  2. 数据面代理通过控制面的EDS服务发现接口动态地更新负载均衡池
  3. 数据面代理通过Iptables规则实现流量拦截和管理, 且只能拦截TCP流量

Sidecar

Sidecar: Istio数据面的服务代理组件模式

  1. 构成: Pilot-agent守护进程、Envoy代理进程
  2. 本质: 与应用容器共享网络命名空间, 并通过Iptables拦截流量交由Envoy处理

如: Envoy管理流量的链路

image

  1. 流量拦截本质: Envoy在请求方和响应方分别建立Socket连接形成链路转发
  2. 可通过注解sidecar.istio.io/interceptionMode指定拦截模式
    • 流量拦截模式: Redirect(默认)、Tproxy

Redirect: Iptables的REDIRECT目标拦截(路由转发)

  1. 缺陷: 丢失源客户端信息(未绑定源地址, 使用随机端口作为连接地址)
  2. Pod访问自身时需经历完整的Outbound+Inbound管理流程(Inbound流程与外部访问相同)
  3. Pod内部访问环回地址或本地网络设备lo和外部访问Envoy管理端口时, 将忽略Iptables规则

如: Redirect模式的Inbound流量拦截流程

image

  1. Evnoy在Pod内部建立的Socket连接地址使用固定的127.0.0.1
  2. 可在HTTP请求头中添加特定KV以保留源客户端信息

Tproxy: Iptables的TPROXY目标拦截(报文转发)

  1. 缺陷: 复杂度较高, 仅实现L4源客户端信息保留
  2. Envoy需开启IP_TRANSPARENT(绑定连接不检查地址)
  3. 拦截Outbound流量时需采用DNAT方式, 无法保留源地址

如: Tproxy模式的Inbound流量拦截流程

image

  1. 所有不可达的远程地址都有默认路由

Injector: Istio自动注入的Webhook组件

  1. 本质: kube-apiserver拦截Pod创建, 调用Webhook插入istio-initistio-proxy容器
  2. 注入时会自动解析端口并配置就绪探针(服务需有对应的SVC, 否则检查始终失败)
  3. 也可通过istioctl命令行工具实现手动注入, 实现效果相同

如: Injector注入Sidecar容器流程

image

  1. Injector配置由ConfigMap保存, 并通过MutatingWebhookConfiguration动态生效
    • 配置中包含注入模板和默认值, 每次注入时动态渲染
    • ConfigMap名称: istio-sidecar-injector
  2. istio-init容器负责配置Pod的Iptables规则, 以实现流量拦截
  3. istio-proxy容器负责启动Pilot-agent进程, 以管理Envoy代理

Istio-proxy

Istio-proxy: 数据面代理容器


如: Istio-proxy的组成

image


Pilot-agent

Pilot-agent: 守护进程的方式维护Envoy

  1. 其他功能: 扩展功能、SDS证书管理、连接控制面
  2. pilot-agent和envoy进程之间使用UDS协议通信, 不受Iptables规则管理
  3. 代理应用的健康检查(重写检查直接发送给Pilot-agent, 以绕过Envoy拦截)

如: Pilot-agent架构

image

  1. 根据启动参数和环境变量渲染Envoy的Bootstrap配置文件
    • /var/lib/istio/envoy/envoy_bootstrap_tmpl.json文件为启动模板
    • 构建容器时复制模板并生成静态配置文件/etc/istio/proxyenvoy-rev0.json
    • xDS API调用需依赖于Bootstrap配置文件(获取相关配置信息)
  2. 监控Envoy运行情况
    • 通过监控envoy进程的StdoutStderr描述符获取状态
    • 当envoy进程结束时, pilot-agent进程清理资源后也随之结束(实现Pod重启)
    • 当envoy进程以优雅退出时, 将拒绝外部所有请求并等待内部所有请求处理结束

xDS Proxy: Pilot-agent的xDS请求代理

  1. 下游ADS服务器(gRPC服务器)
    • 接受Envoy的xDS请求并透明转发给上游处理模块
    • 首次接受LDS请求时, 会主动发送NDS和PCDS请求
  2. 上游请求处理模块
    • 从请求队列中依次取出xDS请求发送给Istiod
  3. 上游响应处理模块
    • 接受Istiod返回的xDS响应, 并透明转发给下游ADS服务器
    • NDS、PCDS和ECDS请求将单独拦截处理

如: xDS Proxy原理

image

  1. PCDS: 拦截Proxy Config并更新本地Trust Bundle以触发SDS代理更新证书
    • Envoy加载TLS Context时, 会主动向Pilo-agent的SDS Server发送SDS请求
    • 当提供自定义证书时, Envoy会直接向xDS Proxy发送SDS请求(透明转发)
    • SDS Server请求并转发证书时, 会同时缓存和负责证书的轮转
  2. ECDS(Extension Config Discovery Service): Envoy原生支持的扩展配置发现服务
    • xDS Proxy会拦截ECDS配置, 并交由ECDS处理器处理以重写ECDS配置
    • Istio通过ECDS生成器和xDS Proxy协作, 实现对Wasm的远程获取

Metadta Exchange

Metadata Exchange(元数据交换): 补充元数据信息, 完善上报数据

  1. 本质: 数据面代理Envoy通过metadata_exchangeFilter彼此交换元数据
  2. 数据面代理创建时自动创建个EnvoyFilter, 以插入L4和L7Filter实现元数据交换
  3. 交换信息存储与Envoy内存观测数据集合Stats中, 可被其他系统拉取并汇总(如: Prometheus)

如: L4的元数据交换

image

  1. 数据面代理创建时会自动获取自身元数据信息, 并将其写入Envoy的bootstrap配置中
  2. 元数据交换可实现L4/L7的请求数据完善, 两者的实现方式不同
    • L4的TCP元数据交换基于istio-peer-exchange协议, 需双方启用mTLS
    • L7的HTTP元数据交换基于请求头和响应头

Ambient

Ambient: Istio数据面的节点代理模式

  1. 构成: ztunnelwaypoint
  2. 本质: 节点上多个服务共享ztunnel组件代理

如: Ambient代理模型

image

  1. ztunnel组件以Daemonset形式部署
    • 提供mTLS、可观测性、身份验证和L4授权等功能
  2. waypoint组件以Deployment形式部署
    • 提供HTTP路由、负载均衡、熔断和重试等L7流量管理功能

如: Ambient拦截流量原理

image


相关文章:

Istio_05_Istio架构

Istio_05_Istio架构 ArchitectureControl PlanePilotCitadelGalley Data PlaneSidecarIstio-proxyPilot-agentMetadta Exchange Ambient Architecture 如: Istio的架构(控制面、数据面) Gateway: Istio数据面的出/入口网关 Gateway分为: Ingress-gateway、Egress-gateway外部访…...

R语言结构方程模型(SEM)在生态学领域中的应用

目录 专题一、R/Rstudio简介及入门 专题二、结构方程模型(SEM)介绍 专题三:R语言SEM分析入门:lavaan VS piecewiseSEM 专题四:SEM全局估计(lavaan)在生态学领域高阶应用 专题五&#xff1…...

node.js基础学习-fs模块-文件操作(六)

一、前言 fs模块是 Node.js 内置的文件系统(File System)模块,它提供了一系列用于与文件系统进行交互的方法。通过fs模块,可以对文件或目录进行读取、写入、删除、重命名、查询状态等操作,这使得 Node.js 能够很好地处…...

EXCEL截取某一列从第一个字符开始到特定字符结束的字符串到新的一列

使用EXCEL中的公式进行特定截取 假设列A是一组产品的编码,我们需要的数据是“-”之前的字段。 我们需要在B1单元格输入公式“LEFT(A1,SEARCH("-",A1)-1)”然后选中B1至B4单元格,按“CTRLD”向下填充,就可以得出其它几行“-”之前的…...

JVM的垃圾回收算法有哪些

标记清除算法 标记清除算法,是将垃圾回收分为2个阶段,分别是标记和清除 根据可达性分析算法得出的垃圾进行标记对这些标记为可回收的内容进行垃圾回收 优点:标记和清除速度较快缺点:碎片化较为严重,内存不连贯的 标记整理算法 优缺点同标记…...

看华为,引入IPD的正确路径

目录 前言 引发重视 作者简介 前言 华为将 IPD 的引入过程归结为三步: 先僵化、后优化、再固化。 如果只是单纯模仿,在不清楚底层逻辑的情况下, 就开始走先僵化的流程,去搞削足适履式的引入。 开始执行后,你就…...

2024142读书笔记|《别无归处是归处》——一壶酒,一竿身,世上如侬有几人

2024142读书笔记|《别无归处是归处》——一壶酒,一竿身,世上如侬有几人 《别无归处是归处:吴镇的“渔父”画题(文人画的真性)》作者朱良志。诗词与古画并存的一本书,古画是比较偏复古黯淡微黄及墨色的&…...

think php处理 异步 url 请求 记录

1、需求 某网站 需要 AI生成音乐,生成mp3文件的时候需要等待,需要程序中实时监听mp3文件是否生成 2、用的开发框架 为php 3、文件结构 配置路由设置 Route::group(/music, function () {Route::post(/musicLyrics, AiMusic/musicLyrics);//Ai生成歌词流式…...

PostgreSQL详细安装教程

#安装PostgreSQL的yum仓库 sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm#安装PostgreSQL 15版本 sudo yum install -y postgresql15-server#初始化数据库(若要自定义数据库存储目录…...

电子电气架构 --- 车载网关GW连接外部IP Tester

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所谓鸡汤,要么蛊惑你认命,要么怂恿你拼命,但都是回避问题的根源,以现象替代逻辑,以情绪代替思考,把消极接受现实的懦弱,伪装成乐观面对不幸的…...

开发一套ERP 第八弹 RUst 插入数据

更全面的报错,方便检查错误在哪里,现代高级语言越来越智能 还是得看下原文档怎么操作的 src 目录为crate 的根目录 想在crate 中模块相互引入需要在 main 中声明,各个模块,然后才能在各个模块中相互引入和使用 原始工程引入,避免直接使用 lib.rs 回合cargo 中的一些 工程管理出…...

RFdiffusion Diffuser类解读

Diffuser 类是一个封装类,调用EuclideanDiffuser和IGSO3类,用于执行扩散模型的核心功能,主要针对分子或蛋白质结构的旋转(SO(3) 群上的扩散)和位移(欧几里得空间中的扩散)。 源代码: class Diffuser:# wrapper for yielding diffused coordinatesdef __init__(self,T…...

【pdf密码】为什么我的PDF文件不能复制文字?

大家现在接触PDF文件越来越多,有的时候在网上下载的PDF文件打开之后,发现选中文字之后无法复制。甚至其他功能也都无法使用,这是怎么回事?该怎么办? 当我们发现文件打开之后,编辑功能无法使用,很…...

C#学写了一个程序记录日志的方法(Log类)

1.错误和警告信息单独生产文本进行记录; 2.日志到一定内存阈值可以打包压缩,单独存储起来,修改字段MaxLogFileSizeForCompress的值即可; 3.Log类调用举例:Log.Txt(JB.信息,“日志记录内容”,"通道1"); usi…...

Android Framework禁止弹出当前VOLTE不可用的提示窗口

文章目录 VoLTE简介VoLTE 的优势 当前VOLTE不可用的弹窗弹窗代码定位屏蔽弹出窗口 VoLTE简介 VoLTE(Voice over LTE)是一种基于4G LTE网络的语音通话技术。它允许用户在4G网络上进行高质量的语音通话和视频通话,而不需要回落到2G或3G网络。V…...

Maven Surefire 插件简介

Maven Surefire 插件是 Maven 构建系统中的一个关键组件,专门用于在构建生命周期中执行单元测试。 它通常与 Maven 构建生命周期的测试阶段绑定,确保所有单元测试在项目编译后和打包前被执行。 最新版本 Maven Surefire 插件的最新版本为 3.5.2。 使…...

vue3-新增API组件

shallowRef 创建一个响应式数据,但只对顶层属性进行响应式处理,只跟踪引用值的变化,不关心值内部的属性变化 import {shallowRef} from "vue" import UserInfo from "/components/UserInfo.vue";let name shallowRef("vue&quo…...

Linux随记(十三)

一、jstack随记 运行cmd cd C:\icp-agent\jdk_min\bin 执行 jstack PID > thread_dump.txt (查看PID:tasklist |findstr javaw 查看第二列) thread_dump.txt 取给研发二、让普通用户test,有权限使用docker指令 1、 查看当前用…...

AI数据分析工具(一)

Looker Studio(谷歌)-免费 优点 免费使用:对于中小型企业和个人用户来说,没有任何费用压力,可以免费享受到数据可视化和报表创建的功能。与Google服务集成:特别适合使用Google产品生态的企业,…...

dhcp服务

安装dhcp-libs和dhcp-common软件包是配置DHCP服务器的前提,但仅仅安装这两个软件包并不能直接开启DHCP服务器。您还需要进行以下步骤来完整配置和启动DHCP服务器: 安装DHCP服务器软件包: 除了dhcp-libs和dhcp-common,您还需要安装…...

RSA算法和AES算法,哪种更安全

目录 一、RSA (非对称加密算法) 二、AES (对称加密算法) 三、对比总结 四、更安全的选择 五、结合使用:RSA AES RSA 和 AES 是两种不同类型的加密算法,适用于不同的场景,因此它们的安全性不能直接比较,而是取决于具体的应用…...

反向代理模块开发

1 概念 1.1 反向代理概念 反向代理是指以代理服务器来接收客户端的请求,然后将请求转发给内部网络上的服务器,将从服务器上得到的结果返回给客户端,此时代理服务器对外表现为一个反向代理服务器。 对于客户端来说,反向代理就相当于…...

(微信小程序)基于Spring Boot的校园失物招领平台的设计与实现(vue3+uniapp+mysql)

💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…...

1-7 GD32函数指针应用

前言: 本博客仅在应用函数指针与回调函数相关的知识,通过实践巩固所学知识,也是对相关知识点的回顾。 函数指针与回调函数:1-6 GD32函数指针与回调函数-CSDN博客 目录 前言: 1.0 程序架构思想 2.0 构建串口结构体 …...

前端js面试知识点思维导图(脑图)

如果看着不清晰可以去https://download.csdn.net/download/m0_73761441/90058523访问下载,无需积分 使用百度脑图制作,可以一键导入下面的文本生成自己的脑图 js相关面试题、知识点 数据类型 1. 数据类型分类?分别包含&#xff…...

使用 F5 TTS 文字转音频

F5 TTS 支持 ZeroShot 音频克隆,只有将需要音频传给模型,模型既可以生成以对应声音生成的音频,F5 最强大的地方就是可以使用定制的人声。F5 使用了 DIT 架构进行训练,结构如下: 本地使用 F5 TTS F5 使用很简单&#x…...

【笔记】自动驾驶预测与决策规划_Part8_数据驱动的规划方法

文章目录 0. 前言1.生成模型1.1 Diffusion-ES1. Diffusion-ES算法介绍2. Diffusion-ES算法具体流程Diffusion Model 是什么?Diffusion-ES: Evolutionary StrategiesDiffusion-ES MethodDiffusion-ES Mapping Language instructions to reward functions with LLM pr…...

多视图几何中向量叉乘的矩阵转换 Matrix Transformation for Cross Product in MVG

Title: 多视图几何中向量叉乘的矩阵转换 Matrix Transformation for Cross Product in MVG 文章目录 I. 向量叉乘的矩阵转换恒等式II. 符号计算 Maxima 程序推导III. 推论和关联公式的说明1. 推论2. 应用于对极几何中基本矩阵推导3. 应用于基本矩阵与单应矩阵关系4. 与刚体运动…...

面向多用户场景的恢复机制驱动的无线组密钥生成协议

中文标题:面向多用户场景的恢复机制驱动的无线组密钥生成协议 英文标题:A Recovery Mechanism-driven Wireless Group Key Generation Protocol for Multi-User Scenarios 作者信息: Huaicong Zhang, Yawen Huang, Jiabao Yu, Boqian Liu, …...

ROS2教程 - 2 环境安装

更好的阅读体验:https://www.foooor.com 2 环境安装 下面以 ROS2 的 humble 版本为例,介绍 ROS2 的安装。 ROS1 只能在 ubuntu 系统上安装,ROS2全面支持三种平台:Ubuntu、MAC OS X、Windows10,下面在 Ubuntu22.04 …...

力扣200 岛屿数量 Java版本

文章目录 题目描述代码 题目描述 给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 …...

每日速记10道java面试题03

其他资料 每日速记10道java面试题01-CSDN博客 每日速记10道java面试题02-CSDN博客 目录 一、你使用过java的反射机制吗?如何应用反射? 二、什么是泛型?泛型的作用是什么? 三、java的泛型擦除是什么? 四、Java 中…...

力扣刷题TOP101:6.BM7 链表中环的入口结点

目录: 目的 思路 复杂度 记忆秘诀 python代码 目的 {1,2},{3,4,5}, 3 是环入口。 思路 这个任务是找到带环链表的环入口。可以看作是上一题龟兔赛跑(Floyd 判圈算法)的延续版:乌龟愤愤不平地举报兔子跑得太快,偷偷…...

智慧防汛平台在城市生命线安全建设中的应用

随着城市化进程的加快,城市基础设施的复杂性和互联性不断增强,城市生命线的安全管理面临前所未有的挑战。智慧防汛平台作为城市生命线安全建设的重要组成部分,通过现代信息技术提升城市防汛应急管理的智能化水平,保障城市安全。 …...

高德应用OceanBase云数据库的升级选型与迁移干货

业务背景 高德,DAU已在亿级,时时刻刻都持续不断地产生着庞大的数据。随着数据量的迅猛增长,对现有的业务数据存储能力构成日益严峻的挑战。 以我所在部门中的某一大型服务为例,其存储在XDB中的数据量往往达到数百TB之巨&#xf…...

Flink cdc同步增量数据timestamp字段相差八小时(分析|解决)不是粘贴复制的!

问题 我使用flink cdc同步mysql到mysql遇到了timestamp字段缺少八小时的问题。很少无语,flink ,cdc,debezium时区都设置了,没有任何效果! 分析 问题出现在mysql binlog身上!!! 因为默认mysql会使用UTC来…...

用shell脚本写一个通用的监听程序异常并重启脚本

进来服务器的程序php-fpm时常在并发下时常挂掉,而且时常在凌晨2点以后,通过排查是因为php配置需要调整并发,同时,为了不影响我休息(以前老师说:能用机器和程序解决问题的坚决不用人去操作,这样才…...

使用 Go 语言中的 Context 取消协程执行

使用 Go 语言中的 Context 取消协程执行 在 Go 语言中,协程(goroutine)是一种轻量级的线程,非常适合处理并发任务。然而,如何优雅地取消正在运行的协程是一个常见的问题。本文将通过一个具体的例子来展示如何使用 con…...

使用经典的Java,还是拥抱新兴的Rust?

在当代互联网时代的企业级开发中,技术栈的选择往往牵动着每个团队的神经。随着Rust语言的崛起,许多开发团队开始重新思考:是继续坚持使用经典的Java,还是拥抱新兴的Rust?这个问题背后,折射出的是对技术演进…...

《算法导论》英文版前言To the teacher第3段研习录:题海战术有没有?

【英文版】 We have included 957 exercises and 158 problems. Each section ends with exercises, and each chapter ends with problems. The exercises are generally short questions that test basic mastery of the material. Some are simple self-check thought exer…...

XELA - uSkin 三轴触觉传感器:为机器人赋予敏锐触感

XELA Robotics 的 uSkin 触觉传感器以其创新性在机器人技术中备受关注。它凭借高密度设计和三轴力测量能力,大幅提升了机器人的触觉感知能力,这种技术不但增强了机器人的智能化和柔性,还为不同行业的应用创造了广泛的可能性。其中在机器人灵巧…...

k8s常用命令总结

以下是 Kubernetes 所有常用命令的详细总结,涵盖了 kubectl 的各个方面,包括基本操作、资源管理、调试、监控等。每个命令都附有简要说明和示例。 1. 基本命令 查看 Kubernetes 版本 kubectl version 查看集群信息 kubectl cluster-info 查看当前上…...

即时通讯| IM+RTC在AI技术加持下的社交体验

即时通讯作为互联网的重要应用之一,见证了中国互联网30年发展的辉煌历程。 它从最初的文字交流,发展到如今的语音、视频通话,甚至是虚拟现实社交,已经渗透到生活的社交、娱乐、商务等方方面面,成为现代社会不可或缺的一…...

评估人工智能生成答案准确性

目录 评估人工智能生成答案准确性 评估人工智能生成答案准确性 在评估人工智能(AI)系统生成的答案准确性时,我们主要关注两个方面:事实相似性和语义相似性。这两个方面的加权平均分数被用来衡量系统回答的准确性。 事实相似性: 事实相似性通过F1分数来计算。F1分数是精确…...

scala的守卫语句格式

import scala.io.StdIn object test49{//从控制台读入一个数字a,使用&#xff08;StdIn.readInt&#xff09;//如果a>0并且a<3,打印[0-3]//如果a>4并且a<8,打印[4-8]//否则:打印未匹配 // def main(args: Array[String]): Unit { // val aStdIn.readInt()//等…...

结构型模式-组合模式

组合模式&#xff08;Composite Pattern&#xff09;是一种结构型设计模式&#xff0c;它通过将对象组合成树形结构来表示“部分-整体”的层次结构&#xff0c;从而使客户端对单个对象和组合对象的使用具有一致性。 适用场景 需要表示对象的层次结构&#xff1a;如文件系统、组…...

(超详细图文)PLSQL Developer 配置连接远程 Oracle 服务

1、下载配置文件 &#xff08;超详细图文详情&#xff09;Navicat 配置连接 Oracle-CSDN博客 将下载的文件解压到单独文件夹&#xff0c;如&#xff1a;D:\App\App_Java\Oracle\instantclient-basic-windows.x64-19.25.0.0.0dbru 2、配置 打开 PLSQL Developer&#xff0c;登…...

【AI系统】昇腾 AI 架构介绍

昇腾 AI 架构介绍 昇腾计算的基础软硬件是产业的核⼼&#xff0c;也是 AI 计算能⼒的来源。华为&#xff0c;作为昇腾计算产业⽣态的⼀员&#xff0c;是基础软硬件系统的核⼼贡献者。昇腾计算软硬件包括硬件系统、基础软件和应⽤使能等。 而本书介绍的 AI 系统整体架构&#…...

D83【python 接口自动化学习】- pytest基础用法

day83 pytest测试用例执行顺序 学习日期&#xff1a;20241129 学习目标&#xff1a;http定义及实战 -- pytest测试用例执行顺序 学习笔记&#xff1a; 测试用例执行顺序 默认执行顺序使用pytest-ordering自定义顺序 pytestrequests练习 import requestsdef test_mobile()…...

浅谈C#库之Memcached

一、Memcached库介绍 Memcached是一个开源的高性能分布式内存缓存系统&#xff0c;它通过将数据存储在内存中来加速动态Web应用。以下是Memcached的一些关键特点&#xff1a; 1、高性能&#xff1a;Memcached使用内存进行数据存储&#xff0c;访问速度极快。 2、分布式&…...