YaPiBlog


You look look you one day day de

Go微服务网关(一)网络编程基础

网络协议 经典协议与数据包 以太网首部,包含主机mac地址等信息 TCP的三次握手和四次挥手 为什么需要3次握手? 主要目的是保证连接是双工和可靠的,可靠更多是通过重传机制来保证的。 双工是指发送和接受是可以同时执行的。 为什么需要四次挥手? 因为连接是全双工的,双方必须都收到对方的FIN包及确认才可关闭。 为什么最大等待时间是2MSL? MSL : Maxi...

架构师(四) 分布式事物

事物 严格意义上的事务实现应该是具备原子性、一致性、隔离性和持久性,简称 ACID。 原子性(Atomicity),可以理解为一个事务内的所有操作要么都执行,要么都不执行。 一致性(Consistency),可以理解为数据是满足完整性约束的,也就是不会存在中间状态的数据,比如你账上有400,我账上有100,你给我打200块,此时你账上的钱应该是200,我账上的钱应该是300,不...

网络

模型 OSGI

Go小记 - 知识点

Go中的锁 Go中的三种锁包括:互斥锁,读写锁,sync.Map的安全的锁. 互斥锁 Go并发程序对共享资源进行访问控制的主要手段,由标准库代码包中sync中的Mutex结构体表示。 //Mutex 是互斥锁, 零值是解锁的互斥锁, 首次使用后不得复制互斥锁。 type Mutex struct { state int32 sema uint32 } sync....

Go小记 - 数据定义

定义 var a = b+c var b = f() var c = 1 func f() int { return c + 1 } // 定义为包内变量则可以编译通过 // 定义在函数体内就会编译失败 b、c 不存在

Go小记 - 输入输出、文件处理

输入输出处理 input := bufio.NewScanner(os.Stdin) // 阻塞 for input.Scan() { fmt.Println(input.Text()) } // 后续流程 处理控制台或命令行输入,启动程序后即可输入,输入control + d 结束输入,进入后续流程(按行读取,只输入一行无效,需要输入一行后回...

TypeScript(四) 接口、类、泛型

接口 接口用来描述一个类型 可以定义字段/函数 readonly 用来标记一个字段为只读字段(很少使用) interface Employee { readonly name : string salary?: number bonus?: number updateBonus?(p:number):void } const emp1: Employ...

TypeScript(三) Promise

知识点 前端的异步运行机制 创建一个Promise 等待一个Promise的运行 处理Promise的错误 Promise的串联 同时等待多个Promise async/await 异步函数 实例: 计算 (1+2+3) * 10 # 定义返回 Promise类型数据 function add(a:number,b:number): Promise<...

TypeScript(二) 函数式编程

函数式编程 函数式编程风格 函数是一等公民 高阶函数 闭包 部分应用函数 惰性计算 引用透明性 无副作用 对函数的引用不用操作其他数据,比如: 下述闭包例子中,不使用闭包,而去使用全局变量定义交换次数,就需要每次操作都去删除前一个值 原始js数组排序 let a = [5,2,1,6,8,23,1,6,...

TypeScript(一) 基本类型

安装 运用npm安装 npm install -g typescript npx tsc 类型 number boolean string literal 类型的并集 any类型 undefined类型 # 常量不能改变 const ttt = "123" # 指定类型后,能改变,但是不能改变类型,未指定类型会自动推断类型 let amo...