2023年7月15日

Neutron网络模型

摘要: 网络类型 VLAN模型 VXLAN模型 VXLAN和VLAN VID转换 针对不同场景,VID说法不同。针对VXLAN来说是VNI,针对VLAN来说是VLAN ID。VLAN和VXLAN共用br-int网桥时,VXLAN解封装后变成VLAN报文,防止br-int上VXLAN报文解封装成VLAN后的内 阅读全文

posted @ 2023-07-15 16:29 王景迁 阅读(152) 评论(0) 推荐(0)

软SDN和硬SDN

摘要: 软SDN Overlay控制端点放在服务器内的虚拟交换机上。 硬SDN Overlay控制端点放在实体交换机上。 阅读全文

posted @ 2023-07-15 16:23 王景迁 阅读(193) 评论(0) 推荐(0)

下载k8s源码

摘要: 设置GOPATH环境变量 go env -w GO111MODULE=auto cd $GOPATH mkdir -p src/k8s.io cd src/k8s.io git clone https://github.com/kubernetes/kubernetes.git cd kuberne 阅读全文

posted @ 2023-07-15 16:21 王景迁 阅读(175) 评论(0) 推荐(0)

IoC

摘要: IoC(控制反转) Java中,一个类想要调用另一个类中的属性或方法,先通过new的方式创建后者的对象,再调用其属性或者方法。调用者掌握着被调用者对象创建的控制权。 控制反转把原本调用者通过直接new的方式来实现对象创建,反转给IoC容器来实现。 在Spring中,IoC容器管理Java对象。Bea 阅读全文

posted @ 2023-07-15 16:15 王景迁 阅读(105) 评论(0) 推荐(0)

AOP

摘要: AOP(面向切面编程) 问题 应用中非业务的通用功能(日志管理、权限管理、事务管理、异常管理等)代码横向散布在多个不同的业务模块中,容易产生大量重复性代码,不利于复用和维护。 解决方案 Spring AOP在运行时为目标对象通过动态代理(JDK或者CGLIB)生成一个动态代理对象,在代理对象中实现对 阅读全文

posted @ 2023-07-15 16:05 王景迁 阅读(12) 评论(0) 推荐(0)

创建Spring Boot+Spring MVC+Mybatis Demo项目

摘要: 参考资料 IDEA搭建Springboot+SpringMVC+Mybatis+Mysql(详细、易懂) 创建项目 创建多个目录 把application.properties改成yml格式并补充配置 mysql中创建数据库和表 create database db1; use db1; creat 阅读全文

posted @ 2023-07-15 16:02 王景迁 阅读(103) 评论(0) 推荐(0)

下载Spring源码并导入依赖

摘要: 下载Spring源码并切换分支 Spring源码仓https://github.com/spring-projects/spring-framework git checkout 5.0.x 安装和配置gradle 查看依赖的gradle版本:4.4.1gradle/wrapper/gradle-w 阅读全文

posted @ 2023-07-15 15:53 王景迁 阅读(243) 评论(0) 推荐(0)

手写MyBatis

摘要: 参考资料 从 0 开始手写一个 Mybatis 框架,三步搞定! Mybatis框架源码流程 mybatis的配置文件有2类1 mybatisconfig.xml,配置了全局参数,只有一个。2 Mapper.xml 配置多个statemement即sql,存在多个。 通过mybatisconfig. 阅读全文

posted @ 2023-07-15 15:47 王景迁 阅读(115) 评论(0) 推荐(0)

使用MyBatis Plus

摘要: IDEA配置 IDEA安装MyBatisX插件。根据IDEA指引来创建Spring Boot项目mybatisplus-demo1。 添加依赖 添加mybatisplus和lombok依赖 <dependency> <groupId>com.baomidou</groupId> <artifactI 阅读全文

posted @ 2023-07-15 15:43 王景迁 阅读(47) 评论(0) 推荐(0)

MyBatis框架使用问题

摘要: Mybatis根据数组或者List查询List结果 数组参数 //接口方法 ArrayList<User> selectByIds(Integer [] ids); //xml映射文件 <select id="selectByIds" resultMap="BaseResultMap"> selec 阅读全文

posted @ 2023-07-15 15:38 王景迁 阅读(21) 评论(0) 推荐(0)

String

摘要: String str1= "abc"; String str2= new String("abc"); String str3= str2.intern(); System.out.println(str1==str2); System.out.println(str2==str3); System 阅读全文

posted @ 2023-07-15 15:31 王景迁 阅读(162) 评论(0) 推荐(0)

HashMap和ConcurrentHashMap

摘要: HashMap 结构桶数组+单链表+红黑树(JDK1.8引入) 容量是2的幂的原因寻找位置时,(n - 1)& hashCode值等价于hash%n,但是&比%具有更高的效率。得到key的hashCode值后,通过二次hash(第一次hash时右移 16 位,hashCode值高16位与低16位异或 阅读全文

posted @ 2023-07-15 15:24 王景迁 阅读(25) 评论(0) 推荐(0)

JVM内存模型和类加载

摘要: 内存模型 JVM内存模型主要分为堆、程序计数器、方法区、虚拟机栈和本地方法栈。 堆 堆中包含了字符串常量池。 程序计数器 记录线程执行的字节码的地址。 方法区 存放已被虚拟机加载的类相关信息,包括类信息、运行时常量池(存放编译生成的字面量和符号引用)。当类加载到内存后,JVM把类文件常量池中的内容存 阅读全文

posted @ 2023-07-15 15:21 王景迁 阅读(18) 评论(0) 推荐(0)

JVM垃圾收集

摘要: 默认垃圾收集器 JDK1.7和JDK1.8默认垃圾收集器都是ParallelScavenge(新生代)+ParallelOld(老年代)JDK1.9默认垃圾收集器G1 查看命令:java -XX:+PrintCommandLineFlags -version G1 JDK 1.7推出的垃圾收集器,特 阅读全文

posted @ 2023-07-15 15:15 王景迁 阅读(61) 评论(0) 推荐(0)

Java基础

摘要: 跨平台原理 Java的跨平台基于编译器和JVM。编译器把源文件编译成与平台无关的字节码class文件,JVM把该文件解释成与平台有关的机器码指令,在平台上执行。 Java面向对象的4个特征 1 抽象提取对象的共性,构成抽象类或接口,由继承抽象类的类或接口的实现类来重写抽象方法。2 继承子类继承父类( 阅读全文

posted @ 2023-07-15 15:06 王景迁 阅读(20) 评论(0) 推荐(0)

go 时间错误

摘要: invalid operation: n * time.Second (mismatched types int and time.Duration) package main import "time" func main() { n := 1 time.Sleep(n * time.Second 阅读全文

posted @ 2023-07-15 10:28 王景迁 阅读(79) 评论(0) 推荐(0)

go panic

摘要: panic可能原因 1. 空指针2. 直接调用panic函数3. 数组越界4. map读写并发(recover不能恢复) core dump程序出现段错误时出现的错误文件,通过该文件确认错误的位置。程序因段错误异常终止时打印堆栈信息// 开启core dump功能,不限制core文件大小ulimit 阅读全文

posted @ 2023-07-15 10:24 王景迁 阅读(115) 评论(0) 推荐(0)

go strings.Builder

摘要: 字符串拼接和strings.Buffer缺点 Go里面的字符串是常量,对字符串的修改会重新申请内存地址。虽然bytes.Buffer避免了字符串修改过程中的内存申请,但是最后从[]byte转成字符串时会重新内存申请。从Go 1.10开始,提供了性能更好的方法strings.Builder,与byte 阅读全文

posted @ 2023-07-15 10:20 王景迁 阅读(250) 评论(0) 推荐(0)

patrickmn.gocache

摘要: 一句话概括 基于内存的KV缓存,支持删除和过期以及持久化到文件并恢复。 使用示例 go.mod增加依赖require github.com/patrickmn/go-cache v2.1.0+incompatible package main import ( "log" "time" "githu 阅读全文

posted @ 2023-07-15 10:15 王景迁 阅读(78) 评论(0) 推荐(0)

切片

摘要: 结构体定义 runtime/slice.go文件中 type slice struct { array unsafe.Pointer // 数组的指针 len int cap int } 扩容 通过append方法添加数据,返回一个新的slice对象,地址和之前不一样。但是原来元素地址是不变的,直到 阅读全文

posted @ 2023-07-15 10:11 王景迁 阅读(39) 评论(0) 推荐(0)

go map

摘要: map内存模型 // A header for a Go map. type hmap struct { // 元素个数,调用 len(map) 时,直接返回此值 count int flags uint8 // buckets 的对数 log_2 B uint8 // overflow 的 buc 阅读全文

posted @ 2023-07-15 10:08 王景迁 阅读(56) 评论(0) 推荐(0)

go context

摘要: 使用场景 在协程之间传递上下文 context接口 type Context interface { // 返回绑定当前context的任务取消的截止时间 // 如果没有设定期限,将返回ok == false Deadline() (deadline time.Time, ok bool) // 绑 阅读全文

posted @ 2023-07-15 10:04 王景迁 阅读(27) 评论(0) 推荐(0)

优先队列(基于二叉树的堆)

摘要: 代码出处 Go SDK container/heap/heap.go Interface 接口定义 type Interface interface { sort.Interface Push(x interface{}) // add x as element Len() Pop() interf 阅读全文

posted @ 2023-07-15 09:58 王景迁 阅读(18) 评论(0) 推荐(0)

go引用类型和值类型

摘要: 引用类型引用类型有字典类型、通道类型、函数类型、切片类型、接口类型和指针类型。 值类型值类型有基础数据类型和结构体类型以及数组类型。 阅读全文

posted @ 2023-07-15 08:17 王景迁 阅读(22) 评论(0) 推荐(0)

go单元测试显示测试用例代码覆盖率

摘要: 执行单个目录所有测试用例并生成覆盖率 go test -gcflags=all=-l -coverprofile=$GOPATH/bin/c.out . go tool cover -html=$GOPATH/bin/c.out -o=$GOPATH/bin/tag.html 下面场景相同go to 阅读全文

posted @ 2023-07-15 08:16 王景迁 阅读(140) 评论(0) 推荐(0)

interface{}

摘要: 判断某个对象是否实现了某个接口 package main import "fmt" type Do interface { do() } type A struct{} func (a A) do() {} type B struct{} func main() { var do interface 阅读全文

posted @ 2023-07-15 08:13 王景迁 阅读(32) 评论(0) 推荐(0)

go目录结构和交叉编译

摘要: 环境变量 GOROOT:GO语言的安装路径GOPATH:项目目录GOBIN:执行go install go文件时,生成可执行文件的路径,通常设置为GOPATH/bin。 GOPATH目录结构 GOPATH/src目录下放源代码文件。GOPATH/pkg目录下放执行go install 目录名后生成的 阅读全文

posted @ 2023-07-15 08:09 王景迁 阅读(194) 评论(0) 推荐(0)

GO协程

摘要: goroutine 协程本意是coroutine,go协程是goroutine。线程分为内核态线程(内核线程)和用户态线程(协程)。线程由CPU调度是抢占式的,协程由用户态调度是协作式的(主动让出才执行下一个)。 N:1(N个用户线程绑定1个内核线程) 例子:python的gevent优点:协程切换 阅读全文

posted @ 2023-07-15 07:26 王景迁 阅读(82) 评论(0) 推荐(0)

go垃圾回收

摘要: 三色标记法 三色标记法配合写屏障和辅助GC。1.初始状态所有对象都是白色。2.从根出发扫描,将引用的对象标记为灰色。3.分析灰色对象是否引用了其他对象,自身标记为黑色,将它引用的其他对象标为灰色4.重复步骤3,直到灰色对象队列为空。此时白色对象即为垃圾,进行回收。 写屏障:每一轮GC开始时会初始化屏 阅读全文

posted @ 2023-07-15 07:19 王景迁 阅读(26) 评论(0) 推荐(0)

使用beego基本流程

摘要: 安装beego和bee go get github.com/astaxie/beego go get github.com/beego/bee 自己的用户变量 -> Path -> 添加GOPATH路径\bin(bee.exe文件位置)确认bee命令全局可用:bee version 新建API项目并 阅读全文

posted @ 2023-07-15 07:15 王景迁 阅读(27) 评论(0) 推荐(0)

Etcd命令

摘要: docker exec -u root -it etcd容器id sh export ETCDCTL_API=3 alias myetcd="etcdctl --cacert /etc/kubernetes/pki/etcd/ca.crt --cert /etc/kubernetes/pki/etc 阅读全文

posted @ 2023-07-15 06:53 王景迁 阅读(173) 评论(0) 推荐(0)

导航