avatar
Articles
66
Tags
48
Categories
17

梦之痕

梦之痕

趣谈网络协议
Created2024-08-25|网络协议
0 参考资料知识图谱 代码地址:https://github.com/popsuper1982/tcpipillustrated 1 通信协议综述2 底层网络协议2.1 二层到三层2.1.1 物理层和MAC层同一个物理层之间可以使用Hub连接,也就是集线器。这种设备有多个口,可以将宿舍里的多台电脑连接起来。但是,和交换机不同,集线器没有大脑,它完全在物理层工作。它会将自己收到的每一个字节,都复制到其他端口上去。这是第一层物理层联通的方案。 第二层,数据链路层,也即MAC层要解决的问题有, 这个包是发给谁的?谁应该接收?大家都在发,会不会产生混乱? 有没有谁先发、谁后发的规则? 如果发送的时候出现了错误,怎么办? 数据包应该发给谁,谁先发,谁后发,防止混乱等。学名叫多路访问。有很多算法可以解决这个问题。就像车管所管束马路上跑的车,能想的办法都想过了。 方式一:分多个车道。每个车一个车道,你走你的,我走我的。这在计算机网络里叫作信道划分; 方式二:今天单号出行,明天双号出行,轮着来。这在计算机网络里叫作轮流协议; 方式三:不管三七二十一,有事儿先出门,发现特堵,就回去。错过高峰再出。 ...
Kubernetes 核心组件(二)
Created2024-07-27|虚拟化&云计算
0 参考资料课程:《云原生训练营》书籍:《Kubernetes源码剖析》 1 Kubernetes 核心数据结构1.1 Group、Version、Resource核心数据结构Kubernetes将资源再次分组和版本化,形成Group(资源组)​、Version(资源版本)​、Resource(资源)​。Group、Version、Resource核心数据结构如图所示: Group :被称为资源组,在Kubernetes API Server中也可称其为APIGroup。 Version :被称为资源版本,在Kubernetes API Server中也可称其为APIVersions。 Resource :被称为资源,在Kubernetes API Server中也可称其为APIResource。 Kind :资源种类,描述Resource的种类,与Resource为同一级别。 Kubernetes系统支持多个Group,每个Group支持多个Version,每个Version支持多个Resource,其中部分资源同时会拥有自己的子资源(即SubResource)​。例如,Dep ...
Kuberbetes 核心组件(一)
Created2024-07-23|虚拟化&云计算
0 参考资料课程:《云原生训练营》书籍:《Kubernetes源码剖析》、《深入浅出Kuberbetes》 Kubernetes官网文档:https://kubernetes.io/zh-cn/docs/home/ 代码走读:https://cncamp.notion.site/kubernetes-8a9d48ee26284b3c8ddf9de4c62ea895 K8S源码分析-Informer机制 1 Kube-APIServer1.1 概述kube-apiserver是Kubernetes最重要的核心组件之一,主要提供以下的功能: 提供集群管理的REST API接口,包括 认证授权、数据校验、集群状态变更等 提供其他模块之间的数据交互和通信的枢纽(其他模块通过API Server查询或修改数据,只有API Server才直接操作etcd) 1.1.1 Kubernetes Pod资源创建流程 Kubernetes Pod资源对象创建流程介绍如下: 使用kubectl工具向Kubernetes API Server发起创建Pod资源对象的请求。 Kubernetes AP ...
Java--File类与IO流
Created2024-07-07|Java & Lua
1. java.io.File类的使用1.1 概述 File类及本章下的各种流,都定义在java.io包下。 一个File对象代表硬盘或网络中可能存在的一个文件或者文件目录(俗称文件夹),与平台无关。(体会万事万物皆对象) File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。 File对象可以作为参数传递给流的构造器。 想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。 1.2 构造器 public File(String pathname) :以pathname为路径创建File对象,可以是绝对路径或者相对路径,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储。 public File(String parent, String child) :以parent为父路径,child为子路径创建File对象。 public File(File parent, St ...
Java--常用类和基础API
Created2024-07-04|Java & Lua
1 不可变字符序列:String1.1 String的特性 java.lang.String 类代表字符串。Java程序中所有的字符串文字(例如"hello" )都可以看作是实现此类的实例。 字符串是常量,用双引号引起来表示。它们的值在创建之后不能更改。 字符串String类型本身是final声明的,意味着我们不能继承String。 String对象的字符内容是存储在一个字符数组value[]中的。"abc" 等效于 char[] data={'h','e','l','l','o'}。 123456789//jdk8中的String源码:public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage ...
Java--面向对象编程
Created2024-06-30|Java & Lua
1 类和对象1.1 类的定义 是用来描述同一类事物的 可以在内部定义任意数量的、不同类型的变量,作为这一类事物的属性。这种属性叫做成员变量 ( member variable )。 如果一个Java文件中定义了一个public类,则文件名必须与该类的名称相同,包括大小写。 如果一个Java文件中定义了多个类,则只能有一个public类,该类的名称必须与文件名相同。 就好像文件路径+文件名不能重复一样,一个Java程序中相同名字的类只能有一个 12345678910111213// >> TODO 一个类以public class开头,public class代表这个类是公共类,类名必须和文件名相同。// >> TODO public class后面紧跟类名,然后是一对打括号的类体public class Merchandise { // >> TODO 类体中可以定义描述这个类的属性的变量。我们称之为成员变量(member variable) // >> TODO 每个成员变量的定义以;结束 String n ...
Java--并发编程&网络编程
Created2024-06-30|Java & Lua
1 Java中的线程1.1 创建和启动线程1.1.1 概述 Java语言的JVM允许程序运行多个线程,使用java.lang.Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例。 Thread类的特性 每个线程都是通过某个特定Thread对象的run()方法来完成操作的,因此把run()方法体称为线程执行体。 通过该Thread对象的start()方法来启动这个线程,而非直接调用run() 要想实现多线程,必须在主线程中创建新的线程对象。 1.1.2 方式1:继承Thread类Java通过继承Thread类来创建并启动多线程的步骤如下: 定义Thread类的子类,并重写该类的run()方法,该run()方法的方法体就代表了线程需要完成的任务 创建Thread子类的实例,即创建了线程对象 调用线程对象的start()方法来启动该线程 代码如下: 123456789101112131415161718package com.atguigu.thread;//自定义线程类public class MyThread extends Thread { ...
Java--反射机制
Created2024-06-30|Java & Lua
1. 反射(Reflection)的概念1.1 反射的出现背景Java程序中,所有的对象都有两种类型:编译时类型和运行时类型,而很多时候对象的编译时类型和运行时类型不一致。 Object obj = new String(“hello”); obj.getClass() 例如:某些变量或形参的声明类型是Object类型,但是程序却需要调用该对象运行时类型的方法,该方法不是Object中的方法,那么如何解决呢? 解决这个问题,有两种方案: 方案1:在编译和运行时都完全知道类型的具体信息,在这种情况下,我们可以直接先使用instanceof运算符进行判断,再利用强制类型转换符将其转换成运行时类型的变量即可。 方案2:编译时根本无法预知该对象和类的真实信息,程序只能依靠运行时信息来发现该对象和类的真实信息,这就必须使用反射。 1.2 反射概述Reflection(反射)是被视为动态语言的关键,反射机制允许程序在运行期间借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。 加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象 ...
微服务架构
Created2024-06-21|后端&架构
1 什么是微服务架构 一种架构风格,将单体应用划分为一组小的服务,服务之间相互协作,实现业务功能 每个服务运行在独立的进程中,服务间采用轻量级的通信机制协作(通常是HTTP/JSON) 每个服务围绕业务能力进行构建,并且能够通过自动化机制独立地部署 很少有集中式的服务管理,每个服务可以使用不同的语言开发,使用不同的存储技术 基于有界上下文的,松散耦合的面向服务的架构 2 微服务架构适用性2.1 什么时候开始考虑引入微服务并不是所有组织和软件都适用微服务架构,应该以单块优先,当系统足够复杂时,再考虑逐步使用微服务架构,关于微服务架构与单体架构的在复杂性和生产力的对比如下:刚开始就选择微服务架构,反而会导致生产力低于选择单体架构,随着系统的复杂度增加,可以选择微服务架构。 2.2 微服务组织架构 从传统职能型到跨职能产品型 微服务架构更适用于跨职能产品型组织,每个产品团队服务完整的产品开发周期,各产品间通过API统一调用。产品团队内负责整个产品的架构、设计、开发、Review、测试、部署、运行、支持。 3 中台战略大中台,小前台:中台作为基础,前台可以快速创新和迭代。 4 微 ...
03 - 数据库技术
Created2024-05-08|认证考试
1 数据库体系结构1.1 三级模式 视图 视图时保存在数据库中的SELECT查询,其内容由查询定义,因此,视图不是真实存在的表,而是一个或者多个导出的虚拟表。 内模式:管理如何存储物理的数据,对应具体物理文件。概念模式:通常使用的基本表,根据应用、需求将物理数据划分成一张张表。外模式:对应数据库中的视图这个级别,将表进行一定处理后再提供给用户使用。 1.2 两级映像逻辑独立性:外模式和概念模式之间的映射。表和视图之间的映射,应用程序与数据库的逻辑结构独立,当数据的逻辑结构改变时,应用程序不变。物理独立性:概念模式和内模式之间的映射,是表和数据的物理存储之间的映射,应用程序与磁盘中的数据相互独立。当数据的物理存储改变时,应用程序不变。 2 数据库设计 2.1 需求分析分析数据的存储要求,产出物有数据流图、数据字典、需求说明书。获得用户对系统的三个要求:信息要求、处理要求、系统要求。 2.2 概念结构设计就是设计E-R图,也叫实体-联系图。 2.2.1 属性冲突局部ER图转换成全局ER图时,需要消除冲突,冲突类型有: 2.3 逻辑结构设计其任务是将概念模型转换成关系模型,ER图向关系 ...
123…7
avatar
梦之痕
Articles
66
Tags
48
Categories
17
Follow Me
Announcement
个人笔记迁移中ing....
Recent Post
Untitled2026-09-29
eBPF核心技术与实战2025-07-25
10 - 大模型RAG进阶实战营2025-05-28
大模型 RAG 的应用和开发2025-04-29
06 - WASM 插件开发2025-02-12
Categories
  • AI大模型2
  • Go & Python6
  • Java & Lua7
  • Linux 内核1
  • 人工智能&大数据4
  • 信息安全3
  • 后端&架构8
  • 工具使用3
Tags
铜锁 Git 流量控制 Linux内核 数据库 云原生 DPDK 系统优化 Kubernetes 微服务架构 ebpf VPP Calico 大模型微调 系统架构设计师 国密 Java Istio HTTP3 LVS Flink 算法 杂文 LangChain 设计模式 程序设计 MySQL Tongsuo Nginx Go TLCP SO_REUSEADDR、SO_REUSEPORT 深度学习 OpenResty 软考高级 Redis 大模型 Helm 网络 Python
Archives
  • September 20261
  • July 20251
  • May 20251
  • April 20251
  • February 20251
  • September 20242
  • August 20244
  • July 20244
Info
Article :
66
UV :
PV :
Last Update :
©2020 - 2026 By 梦之痕
Framework Hexo|Theme Butterfly