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

第十二章:容器间网络_《凤凰架构:构建可靠的大型分布式系统》

第十二章 容器间网络


一、Linux网络虚拟化基础

1. 网络命名空间(Network Namespace)

  • 隔离网络栈:每个网络命名空间拥有独立的IP地址、路由表、防火墙规则等网络配置。
  • 实现方式:通过ip netns命令管理,容器启动时自动创建新命名空间。
  • 典型应用:每个容器运行在独立的网络命名空间中,实现网络隔离。

2. 虚拟网络设备

  • veth pair:虚拟以太网设备对,用于连接不同命名空间(如容器与宿主机)。
  • 网桥(Bridge):类似物理交换机,连接多个veth设备,实现同一宿主机内容器间通信。
  • 隧道(Tunnel):如VXLAN,封装数据包实现跨主机容器通信。
  • 示例流程:容器veth一端在容器命名空间,另一端连接到宿主机网桥(如docker0)。

3. 干预网络通信

  • iptables:实现NAT、端口映射、防火墙规则(如Docker的端口映射-p 80:80)。
  • eBPF:更灵活的内核级网络策略控制(如Cilium插件)。

二、容器间通信机制

1. 单宿主机内容器通信

  • Bridge模式:容器通过veth连接到宿主机网桥,IP由网桥分配。
  • Host模式:容器共享宿主机的网络命名空间,直接使用宿主机IP和端口。
  • None模式:无网络配置,需手动配置(特殊场景使用)。

2. 跨宿主机容器通信

  • Overlay网络:通过VXLAN等隧道技术封装数据包,跨主机传输(如Flannel VXLAN模式)。
  • 路由方案:直接路由容器IP(如Calico BGP协议同步路由表)。
  • Host-GW模式:将宿主机作为网关,通过静态路由实现跨主机通信。

3. 服务发现与负载均衡

  • DNS解析:Kubernetes通过CoreDNS为Service提供集群内域名解析。
  • Service IP:Kube-proxy利用iptables/IPVS实现虚拟IP到Pod的负载均衡。

三、容器网络模型与标准

1. CNM(Container Network Model)

  • Docker原生模型:包含Sandbox、Endpoint、Network三个核心组件。
  • 工作流程:创建Sandbox→创建Endpoint→将Endpoint连接到Network。
  • 局限:与Docker强耦合,生态碎片化(不同插件实现差异大)。

2. CNI(Container Network Interface)

  • Kubernetes采用的标准:通过JSON配置文件定义网络插件。
  • 核心操作ADD(创建容器网络)、DEL(删除容器网络)。
  • 优势:解耦容器运行时与网络实现,插件生态丰富(Flannel、Calico等)。

3. CNM与CNI对比

  • 设计哲学:CNM强调网络生命周期管理,CNI追求轻量级接口。
  • 适用场景:CNM适用于Docker单机环境,CNI更适合Kubernetes等编排系统。

四、容器网络插件生态

1. Flannel

  • Overlay网络:默认使用VXLAN封装,支持跨子网容器通信。
  • Host-GW模式:通过宿主机的路由表转发流量,性能优于VXLAN但要求二层互通。
  • 适用场景:中小规模集群,对网络性能要求适中。

2. Calico

  • BGP路由:通过BGP协议同步集群路由表,实现容器IP直连。
  • 网络策略:支持基于标签的NetworkPolicy,实现微服务间访问控制。
  • 适用场景:大规模集群,需高性能和灵活策略控制。

3. Cilium

  • 基于eBPF:取代iptables,实现高性能网络策略和可观测性。
  • 服务网格集成:支持Envoy,提供L7层流量管理。
  • 优势:适合云原生环境,支持安全策略和深度监控。

五、服务网格与容器网络

1. 服务网格的影响

  • Sidecar模式:每个Pod注入代理(如Envoy),劫持容器流量。
  • 透明流量拦截:通过iptables规则将进出容器的流量重定向到Sidecar。

2. 数据平面与控制平面

  • 数据平面:负责实际流量转发(如Envoy代理)。
  • 控制平面:管理服务发现、路由规则(如Istio Pilot)。
  • 网络层交互:服务网格依赖底层容器网络实现跨节点通信。

关键难点与解决方案

  1. 跨主机通信性能优化

    • 问题:Overlay网络(如VXLAN)引入封装开销。
    • 方案:采用Host-GW或Calico BGP路由减少封装层。
  2. 网络策略实施

    • 问题:传统iptables规则难以管理微服务间细粒度策略。
    • 方案:使用Calico NetworkPolicy或Cilium eBPF实现L3-L7层策略。
  3. IP地址管理(IPAM)

    • 问题:大规模集群中容器IP分配易冲突。
    • 方案:插件(如Calico IPAM)支持动态分配和子网划分。

总结

容器间网络的核心挑战在于如何实现高效、安全的跨节点通信,同时保持灵活性和可扩展性。Linux网络虚拟化技术(命名空间、veth、网桥)为容器提供了基础隔离能力,而CNI标准和生态插件(Flannel、Calico、Cilium)则解决了不同场景下的网络需求。理解这些技术的工作原理及适用场景,是构建可靠容器化基础设施的关键。


多选题


问题1:关于Linux网络虚拟化技术,以下哪些描述是正确的?
A. 使用veth对可以实现容器与宿主机之间的网络通信
B. macvlan允许容器直接使用宿主机的物理网卡MAC地址
C. ipvlan通过共享宿主机的网络命名空间实现网络隔离
D. bridge模式通过虚拟网桥连接容器与宿主机网络
E. Overlay网络必须依赖物理交换机的VLAN功能


问题2:关于CNM(Container Network Model)和CNI(Container Network Interface)的区别,以下哪些说法正确?
A. CNM是Kubernetes原生支持的容器网络模型
B. CNM由Docker提出,包含Sandbox、Endpoint和Network三个核心概念
C. CNI通过简单的JSON配置文件定义网络插件行为
D. CNI要求插件必须实现ADDDEL两个操作接口
E. CNM和CNI可以完全兼容并互相替代


问题3:以下哪些协议或技术常用于容器Overlay网络的实现?
A. VXLAN(Virtual Extensible LAN)
B. Geneve(Generic Network Virtualization Encapsulation)
C. OVSDB(Open vSwitch Database)
D. BGP(Border Gateway Protocol)
E. IP-in-IP隧道


问题4:关于Kubernetes网络模型的要求,以下哪些是正确的?
A. 每个Pod必须拥有独立的IP地址
B. 容器之间必须通过NAT进行跨节点通信
C. Pod的IP地址在集群内可直接路由
D. 同一节点上的Pod必须共享网络命名空间
E. 容器可以通过localhost访问同一Pod内的其他容器


问题5:以下哪些是Calico网络插件的核心特性?
A. 基于BGP协议实现路由分发
B. 使用IP-in-IP隧道实现跨节点通信
C. 通过VXLAN封装数据包
D. 支持网络策略(Network Policy)
E. 依赖etcd存储网络状态


问题6:关于Flannel网络插件的实现方式,以下哪些描述正确?
A. 默认使用VXLAN作为后端传输协议
B. 支持Host-Gateway模式直接路由跨节点流量
C. 必须依赖云服务商的SDN(如AWS VPC)
D. 使用udp封装可能导致性能问题
E. 每个节点分配连续的IP地址段


问题7:以下哪些属于容器网络的安全隔离机制?
A. 使用Network Policy限制Pod间通信
B. 通过iptables规则实现流量过滤
C. 利用Linux命名空间隔离网络栈
D. 基于TLS加密容器间通信
E. 使用Service Mesh的mTLS认证


问题8:关于Service Mesh(如Istio)在容器网络中的作用,以下哪些正确?
A. 替代CNI插件实现基础网络连通
B. 提供细粒度的流量管理(如金丝雀发布)
C. 通过Sidecar代理实现服务间通信加密
D. 依赖Kubernetes Service进行服务发现
E. 自动生成Network Policy规则


问题9:关于多集群网络互联的实现方案,以下哪些可行?
A. 使用Submariner实现跨集群的Pod IP直通
B. 通过VPN隧道连接不同集群的节点网络
C. 依赖云服务商的Global Load Balancer
D. 使用DNS轮询实现跨集群服务发现
E. 通过BGP协议同步集群间路由表


问题10:以下哪些场景可能导致容器网络性能下降?
A. 使用用户态代理(如Flannel的udp模式)
B. 大量短连接的TCP握手开销
C. Overlay网络的封装/解封装操作
D. 基于Network Policy的iptables规则链过长
E. 容器直接使用宿主机的物理网卡(macvlan模式)


答案与详解


问题1答案:A、B、D

  • 详解(12.1.1-12.1.3):
    • veth对是虚拟以太网设备,用于连接容器与宿主机(A对)。
    • macvlan允许容器直接使用物理网卡的MAC地址(B对)。
    • ipvlan共享宿主机的网络命名空间,但通过子接口隔离(C错)。
    • bridge模式通过虚拟网桥连接容器(D对)。
    • Overlay网络可通过VXLAN等协议实现,无需物理交换机支持(E错)。

问题2答案:B、C、D

  • 详解(12.2.1-12.2.2):
    • CNM是Docker提出的模型(B对),CNI是Kubernetes的通用接口(A错)。
    • CNI通过JSON配置定义插件行为(C对),要求实现ADD/DEL接口(D对)。
    • CNM和CNI设计目标不同,无法直接兼容(E错)。

问题3答案:A、B、E

  • 详解(12.1.4):
    • VXLAN和Geneve是Overlay网络常用封装协议(A、B对),IP-in-IP是Calico的选项(E对)。
    • OVSDB是Open vSwitch的管理协议(C错),BGP用于路由分发(D错)。

问题4答案:A、C、E

  • 详解(12.2.3):
    • Kubernetes要求Pod有独立IP且直接路由(A、C对),同一Pod内容器共享网络命名空间(E对)。
    • 跨节点通信无需NAT(B错),节点内Pod不共享网络命名空间(D错)。

问题5答案:A、B、D

  • 详解(12.2.3):
    • Calico基于BGP(A对)和IP-in-IP(B对),支持Network Policy(D对)。
    • VXLAN是Flannel的特性(C错),Calico默认使用Kubernetes API存储(E错)。

问题6答案:A、B、D、E

  • 详解(12.2.3):
    • Flannel默认使用VXLAN(A对),Host-Gateway模式直接路由(B对)。
    • udp封装存在性能问题(D对),节点分配连续IP段(E对)。
    • Host-Gateway不依赖云SDN(C错)。

问题7答案:A、B、C、E

  • 详解(12.1.3、15.2.3):
    • Network Policy和iptables是Kubernetes的安全机制(A、B对)。
    • 命名空间隔离网络栈(C对),Service Mesh的mTLS提供加密(E对)。
    • TLS加密一般由应用层实现(D错)。

问题8答案:B、C、D

  • 详解(15.1.1-15.2.3):
    • Service Mesh提供流量管理和mTLS(B、C对),依赖Kubernetes Service(D对)。
    • CNI插件仍负责基础网络(A错),Network Policy需手动配置(E错)。

问题9答案:A、B、C、E

  • 详解(12.2.3、15.3):
    • Submariner、VPN、云LB和BGP均可实现跨集群互联(A、B、C、E对)。
    • DNS轮询不解决网络连通性(D错)。

问题10答案:A、B、C、D

  • 详解(12.1.3-12.2.3):
    • 用户态代理(A)、Overlay封装(C)、iptables规则链长(D)均影响性能。
    • 短连接TCP开销大(B对),macvlan性能优于Overlay(E错)。

相关文章:

第十二章:容器间网络_《凤凰架构:构建可靠的大型分布式系统》

第十二章 容器间网络 一、Linux网络虚拟化基础 1. 网络命名空间(Network Namespace) 隔离网络栈:每个网络命名空间拥有独立的IP地址、路由表、防火墙规则等网络配置。实现方式:通过ip netns命令管理,容器启动时自动创…...

详解七大排序

目录 一.直接插入排序 (1)基本思想 (2)算法步骤 (3)代码实现 (4)算法特性 (5)算法优化 (6)示例演示 二.希尔排序 &#xff08…...

第八章 Python基础进阶-数据可视化(终)

此章节练习主要分为:折线图、地图、柱状图,若用户只是学习Python的基础语法知识,可以不看此章节。 主要是讲解第三方包PyEcharts技术,Python数据的可视化操作。 一.json数据格式 json的概念: (1&#x…...

【Hadoop3.1.4】完全分布式集群搭建

一、虚拟机的建立与连接 1.建立虚拟机 详情见【Linux】虚拟机的安装 把上面三个参数改掉 2.连接虚拟机 具体见【Linux】远程连接虚拟机防火墙 二、修改主机名 在Centos7中直接使用root用户执行hostnamectl命令修改,重启(reboot)后永久生…...

NLP简介及其发展历史

自然语言处理(Natural Language Processing,简称NLP)是人工智能和计算机科学领域中的一个重要分支,致力于实现人与计算机之间自然、高效的语言交流。本文将介绍NLP的基本概念以及其发展历史。 一、什么是自然语言处理&#xff1f…...

Java异步编程中的CompletableFuture介绍、常见错误及最佳实践

一、Future接口的局限性 Java 5引入的Future接口为异步编程提供了基础支持,但其设计存在明显局限性,导致复杂场景下难以满足需求: 阻塞获取结果 必须通过future.get()阻塞线程等待结果,无法实现真正的非阻塞: Executo…...

基于FLask的共享单车需求数据可视化分析系统

【FLask】基于FLask的共享单车需求数据可视化分析系统 (完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 该系统能够整合并处理大量共享单车使用数据,通过直观的可视化手段&#xff0…...

vue2项目中,多个固定的请求域名 和 通过url动态获取到的ip域名 封装 axios

vue2 使用场景:项目中,有固定的请求域名,而有某些接口是其他域名 /utils/request.js 固定请求域名 import axios from axios import Vue from vuelet baseURL switch (window.location.hostname) {case localhost: // 本地case 127.0.0.1…...

【嵌入式学习3】基于python的tcp客户端、服务器

目录 1、tcp客户端 2、tcp服务器 3、服务器多次连接客户端、多次接收信息 1、tcp客户端 """ tcp:客户端 1. 导入socket模块 2. 创建socket套接字 3. 建立tcp连接(和服务端建立连接) 4. 开始发送数据(到服务端) 5. 关闭套接字 """ import soc…...

tomcat构建源码环境

一. IDEA运行Tomcat8源码 参考网址:https://blog.csdn.net/yekong1225/article/details/81000446 ​ Tomcat作为J2EE的开源实现,其代码具有很高的参考价值,我们可以从中汲取很多的知识。作为Java后端程序员,相信有很多人很想了解…...

你用的是Bing吗?!

🔥【深度解析】微软Bing革命性升级!Copilot Search上线:从此搜索≠找链接,而是直接生成答案! 💡 你是否厌倦了这样的搜索体验? 搜索「Python处理JSON」,在10个网页间反复跳转想对比…...

拍摄的婚庆视频有些DAT的视频文件打不开怎么办

3-12 现在的婚庆公司大多提供结婚的拍摄服务,或者有一些第三方公司做这方面业务,对于视频拍摄来说,有时候会遇到这样一种问题,就是拍摄下来的视频文件,然后会有一两个视频文件是损坏的,播放不了&#xff0…...

Oracle Cloud (OCI) 服务器最新控制台启用 IPv6 超详细图文指南(2025最新实践)

本文为原作者发布到第三方平台,更多内容参考: 🚀 Oracle Cloud (OCI) 服务器最新控制台启用 IPv6 超详细图文指南(2025最新实践) 随着 IPv6 的普及,IPv6的优秀特性能为你的 OCI 云服务器提升网络性能和路由效率,并提升兼容性。本指南将引导你在 Oracle Cloud Infrast…...

YOLO环境搭建,win11+wsl2+ubuntu24+cuda12.6+idea

提示:环境搭建 文章目录 前言一、 win11 gpu 驱动更新1.1 下载驱动3. 验证, 二、配置子系统 ubuntu2.1 安装 cuda 三、配置 anaconda四、idea 配置使用 wsl ubuntu conda 环境 前言 提示:版本 win11 wsl2 ubuntu24 idea 2024 子系统跳过&…...

类 和 对象 的介绍

对象的本质是一种新的数据类型。类是一个模型,对象是类的一个具体化实例。为类创建实例也就是创建对象。 一、类(class) 类决定一个对象将是什么样的(有什么属性、功能)。类和变量一样,有名字。 1.创建类 …...

机器学习(1)—线性回归

文章目录 1. 算法定义2. 模型形式2.1. 简单线性回归(单变量):2.2. 多元线性回归(多变量): 3. 基本原理3.1. 误差函数:3.2. 求解回归系数 4. 假设条件5. 模型评估6. 优缺点7. 扩展方法8. 应用场景…...

macOS下SourceInsight的替代品

macOS 推荐的几款开源、轻量级、且功能类似于 SourceInsight 的源码阅读工具(排除 VS Code): 1. Zeal(离线文档 简单代码导航) 官网/GitHub: https://zealdocs.org/特点: 轻量级离线文档浏览器&#xff0…...

form实现pdf文件转换成jpg文件

说明: 我希望将pdf文件转换成jpg文件 请去下载并安装 Ghostscript,gs10050w64.exe 配置环境变量:D:\Program Files\gs\gs10.05.0\bin 本地pdf路径:C:\Users\wangrusheng\Documents\name.pdf 输出文件目录:C:\Users\wan…...

聊天室项目之http知识

一.http的核心组成部分(都分成请求的和响应的) 1.起始行:请求------------------------ 方法(Method):GET、POST、PUT、DELETE 等。 请求目标(Request Target):URL 路径…...

kubeadm部署 Kubernetes(k8s) 高可用集群 V1.28.2

1. 安装要求 在开始之前,部署Kubernetes集群机器需要满足以下几个条件: 10台机器,操作系统Openeuler22.03 LTS SP4硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多,docker 数据卷单独挂…...

BUUCTF-web刷题篇(12)

21.easy_tornado Tornado大致可以分为四个主要组成部分: 一个web框架(包括RequestHandler创建Web应用程序的子类,以及各种支持类)。 HTTPServerHTTP(和AsyncHTTPClient)的客户端和服务器端实现。 一个异…...

基于 Netty 框架的 Java TCP 服务器端实现,用于启动一个 TCP 服务器来处理客户端的连接和数据传输

代码: package com.example.tpson_tcp;import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelOption; import io.netty.channel.EventLoopGroup; imp…...

【Kafka基础】Kafka配置文件关键参数解析与单机生产环境配置指南

1 Kafka配置文件概述 Apache Kafka的配置文件是控制其行为的关键所在,合理的配置能够显著提升性能、可靠性和可维护性。Kafka主要涉及两个核心配置文件: server.properties:Broker主配置文件zookeeper.properties:ZooKeeper配置文…...

Kafka 漏消费和重复消费问题

Kafka 虽然是一个高可靠、高吞吐的消息系统,但如果使用不当,**“漏消费”和“重复消费”**问题是非常容易发生的,尤其在业务系统中会造成数据丢失、重复写库等严重问题。 🎯 一句话理解: Kafka 本身提供 “至多一次”…...

Mysql慢查询设置 和 建立索引

1 .mysql慢查询的设置 slow_query_log ON //或 slow_query_log_file /usr/local/mysql/data/slow.log long_query_time 2 修改后重启动mysql 1.1 查看设置后的参数 mysql> show variables like slow_query%; --------------------------------------------------…...

Windows程序中计时器WM_TIMER消息的使用

本文章是对《Windows程序设计》这本书第八章计时器的总结,如果有时间,可以去看书里的讲解,如果时间不充裕,想马上知道计时器该如何使用,欢迎阅读本文,本文已经将计时器的干货整理完毕! 什么是计…...

关于apple ios苹果mdm监管锁的漏洞与修复

前言 本人从2020年开始接触苹果mdm管理系统的开发 起初只是接触如何利用mdm进行app分发 23年开始开发mdm监管锁业务 随着手机租赁的市场兴起 mdm监管锁系统随即而生 注意 本人只是分享工作过程中遇到的一些问题 不接受苹果手机屏蔽以及解锁的业务 此文章仅做分享使用 MDM监…...

使用Geotools中的原始方法来操作PostGIS空间数据库

目录 前言 一、原生PostGIS连接介绍 1、连接参数说明 2、创建DataStore 二、工程实战 1、Maven Pom.xml定义 2、空间数据库表 3、读取空间表的数据 三、总结 前言 在当今数字化与信息化飞速发展的时代,空间数据的处理与分析已成为众多领域不可或缺的一环。从…...

C-S模式之实现一对一聊天

天天开心!!! 文章目录 一、如何实现一对一聊天?1. 服务器设计2. 客户端设计3. 服务端代码实现4. 客户端代码实现5. 实现说明6.实验结果 二、改进常见的服务器高并发方案1. 多线程/多进程模型2. I/O多路复用3. 异步I/O(…...

Kafka Consumer Group

Kafka 消费者组(Consumer Group) 是 Kafka 的核心机制之一!理解它对你掌握 Kafka 的高可用、高吞吐、负载均衡等能力非常关键。下面我来给你完整讲一讲👇 🧠 什么是 Kafka 消费者组(Consumer Group&#x…...

LangChain vs LlamaIndex:大模型应用开发框架深度对比与实战指南

一、引言:大模型时代的应用开发挑战 随着ChatGPT、LLaMA等大语言模型的爆发式发展,如何高效构建「大模型+垂直领域」的智能应用成为新课题。传统开发模式面临三大痛点: 数据交互复杂:大模型与本地数据的融合缺乏标准化接口功能扩展困难:链式调用、工具集成需要重复造轮子…...

第二章:访问远程服务_《凤凰架构:构建可靠的大型分布式系统》

第二章 访问远程服务 2.1 远程服务调用(RPC) 2.1.1 进程间通信机制 核心方式: 管道(Pipe):单向通信,用于父子进程信号(Signal):异步事件通知,不…...

一键自动备份:数据安全的双重保障

随着数字化时代的到来,数据已成为企业和个人不可或缺的核心资产。在享受数据带来的便捷与高效的同时,数据丢失的风险也随之增加。因此,备份文件的重要性不言而喻。本文将深入探讨备份文件的重要性,并介绍两种实用的自动备份方法&a…...

C++11之std::is_convertible

目录 1.简介 2.实现原理 3.使用场景 4.总结 1.简介 std::is_convertible 是 C 标准库 <type_traits> 头文件中的一个类型特性&#xff08;type trait&#xff09;&#xff0c;它用于在编译时检查一个类型是否可以隐式转换为另一个类型。下面的原型&#xff1a; temp…...

从零开始:在Qt中使用OpenGL绘制指南

从零开始&#xff1a;在Qt中使用OpenGL绘制指南 本文只介绍基本的 QOpenGLWidget 和 QOpenGLFunctions 的使用&#xff0c;想要学习 OpenGL 的朋友&#xff0c;建议访问经典 OpenGL 学习网站&#xff1a;LearnOpenGL CN 本篇文章&#xff0c;我们将以绘制一个经典的三角形为例&…...

我的购物车设计思考:从个人项目到生产实战思考的蜕变

一、代码初体验&#xff1a;我踩过的那些坑 还记得大二做课程设计时&#xff0c;我写的购物车直接用ArrayList存商品&#xff0c;结果改数量时遍历半天找商品。现在看你这个HashMap实现&#xff0c;确实清爽很多&#xff0c;但有几点让我想起当年惨痛经历&#xff1a; 1. 线程…...

【算法实践】算法面试常见问题——数组的波浪排序

问题描述 给定一个无序整数数组&#xff0c;将其排列成波浪形数组。若数组 arr[0..n-1] 满足以下条件&#xff0c;则称为波浪形&#xff1a; arr[0] > arr[1] < arr[2] > arr[3] < arr[4] > ... 或 arr[0] < arr[1] > arr[2] < arr[3] > arr[4] &l…...

【大模型深度学习】如何估算大模型需要的显存

一、模型参数量 参数量的单位 参数量指的是模型中所有权重和偏置的数量总和。在大模型中&#xff0c;参数量的单位通常以“百万”&#xff08;M&#xff09;或“亿”&#xff08;B&#xff0c;也常说十亿&#xff09;来表示。 百万&#xff08;M&#xff09;&#xff1a;表示…...

[论文阅读]PMC-LLaMA: Towards Building Open-source Language Models for Medicine

PMC-LLaMA&#xff1a;构建医学开源语言模型 摘要 最近&#xff0c;大语言模型在自然语言理解方面展现了非凡的能力。尽管在日常交流和问答场景下表现很好&#xff0c;但是由于缺乏特定领域的知识&#xff0c;这些模型在需要精确度的领域经常表现不佳&#xff0c;例如医学应用…...

`use_tempaddr` 和 `temp_valid_lft ` 和 `temp_prefered_lft ` 笔记250405

use_tempaddr 和 temp_valid_lft 和 temp_prefered_lft 笔记250405 以下是 Linux 系统中与 IPv6 临时隐私地址相关的三个关键参数 use_tempaddr、temp_valid_lft 和 temp_prefered_lft 的详细说明及协作关系&#xff1a; &#x1f4dc; 参数定义与功能 参数作用默认值依赖关…...

如何设置 JVM 内存参数(-Xms、-Xmx、-Xss 等)?

JVM 内存参数用于控制 Java 虚拟机使用的内存大小和行为。以下是一些常用的 JVM 内存参数及其设置方法&#xff1a; 1. 堆内存 (Heap Memory): -Xms<size>: 设置 JVM 初始堆大小 (initial heap size)。 例如&#xff1a;-Xms2g (初始堆大小为 2GB)默认值&#xff1a;物…...

【MATLAB TCP/IP客户端与NetAssist上位机双向通信实战指南】

MATLAB TCP/IP客户端与NetAssist上位机双向通信实战指南 一、前言 在工业控制和数据采集领域&#xff0c;TCP/IP通信是最常用的网络通信协议之一。MATLAB作为强大的科学计算软件&#xff0c;与各种上位机软件(如NetAssist)进行通信可以实现数据采集、设备控制和实时监控等功能…...

联合、枚举、类型别名

数据类型&#xff1a; 已学--整数、实数、字符、字符串、数组、指针、结构待学--向量&#xff08;vector&#xff09;类型&#xff1a;优于数组非主流的类型--联合&#xff08;union&#xff09;、枚举&#xff08;enum&#xff09; 一、联合 联合类似于结构&#xff0c;可以容…...

Array 和 ArrayList 有何区别?什么时候更适合用 Array?

面试官提问&#xff1a; 你能简要说明 Array 和 ArrayList 之间的主要区别吗&#xff1f;在什么场景下更适合使用 Array&#xff1f; 标准回答&#xff1a; 在 Java 中&#xff0c;Array&#xff08;数组&#xff09;和 ArrayList&#xff08;动态数组&#xff09;都可以用于存…...

对状态模式的理解

对状态模式的理解 一、场景二、不采用状态模式1、代码2、缺点 三、采用状态模式1、代码1.1 状态类1.2 上下文&#xff08;这里指&#xff1a;媒体播放器&#xff09;1.3 客户端 2、优点 一、场景 同一个东西&#xff08;例如&#xff1a;媒体播放器&#xff09;&#xff0c;有一…...

【学Rust写CAD】31 muldiv255函数(muldiv255.rs)

源码 // Calculates floor(a*b/255 0.5) #[inline] pub fn muldiv255(a: u32, b: u32) -> u32 {// The deriviation for this formula can be// found in "Three Wrongs Make a Right" by Jim Blinn.let tmp a * b 128;(tmp (tmp >> 8)) >> 8 }代…...

使用VSCode编写C#程序

目录 一、环境搭建&#xff1a;构建高效开发基础1. 安装VSCode2. 配置.NET SDK3. 安装核心扩展 二、项目开发全流程1. 创建项目2. 代码编辑技巧3. 调试配置4. 高级调试技巧5. 编译与运行 三、常见问题解决指南1. 项目加载失败2. IntelliSense失效3. 代码格式化4. 典型编译错误&…...

chromadb

chromadb是一个轻量化的向量数据库&#xff0c;可以和llama-index等RAG框架使用。底层基于sqllite。 Getting Started - Chroma Docs 1、安装 $pip install chromadb pip install chromadb-client --在CS模式下&#xff0c;如果机器A上只需要安装客户端 2、可以使用客户端…...

第十章: 可观测性_《凤凰架构:构建可靠的大型分布式系统》

第十章: 可观测性 可观测性是现代分布式系统监控和故障排查的核心能力。本章从事件日志、链路追踪、聚合度量三个维度构建完整的可观测性体系&#xff0c;以下是各部分的重点解析与实践要点&#xff1a; 一、事件日志&#xff08;Event Logging&#xff09; 1. 核心目标 全链…...

vscode和cursor对ubuntu22.04的remote ssh和X-Windows的无密码登录

这里写自定义目录标题 写在前面需求的描述问题的引出 昨天已使能自动登录上午我的改变UBUNTU 22.04关闭密码规则一&#xff1a;修改 /etc/pam.d/common-password 文件二&#xff1a;修改 /etc/security/pwquality.conf 文件方法三&#xff1a;禁用 pam_pwquality.so 模块 vscod…...