Mrli
别装作很努力,
因为结局不会陪你演戏。
Contacts:
QQ博客园

Mr.li's Blog

Welcome to my Blog!
k8s之kube-proxy源码分析
kubernetes 简单介绍 背景介绍 Kubernetes最初源于谷歌内部的Borg,提供了面向应用的容器集群部署和管理系统,目前为主流的微服务应用编排管理工具。 Kubernetes的目标旨在消除编排物理/虚拟计算、网络和存储基础设施的负担,并使应用程序运营商和开发人员完全将重点放在以容器为中心的原理上进行自助运营。 Kubernetes具备完善的集群管理能力,包括多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和服务发现机制、内建负载均衡器、故障发现和自我修复能力、服务滚动升级和在线扩容、可扩展的资源自动调度机制、多粒度的资源配额管理能力。 Borg是谷歌内部的大规 ...

Vue3初体验
Vue3于2020年09月18日正式发布,映入我视野的新东西除了Vue3以外,还有yarn和vite。他们两个本身的功能并不是新东西,yarn对标的是npm包管理工具,vite对标的webpack包打包工具。 与vue2不同的是,vue3工程中没有 build 文件, 相应的build/index.js的配置改由了项目根目录下vue.config.js承担 Vue3新特性 template标签下面可以有多个节点了,终于不用先写一个DIV了 setup函数可以代替之前的data,methods,computed,watch,Mounted等对象,但是props声明还是在外面。 相 ...

ZJU开学摸底考试——数据库概论复习
数据库概论 数据库的4个基本概念 数据(Data) 定义:描述事物的符号记录。 数据的含义称为数据的语义,数据的语义是指对具体数值进行的解释说明。数据与其语义是不可分的。 数据是数据库中存储的基本对象。 数据库(Database,DB) 定义:数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。 数据厍的基本特征 数据按一定的数据模型组织、描述和储存 可为各种用户共享、冗余度较小、易扩展 数据独立性较高 数据库管理系统(DataBase Management System,DBMS) 位于用户应用与操作系统之间的一层数据管理软件; 跟操作系统一样是计算机 ...

ZJU云原生技术及应用-课程笔记
ZJU要求 课程内容 云计算基本概念和Docker容器原理(4课时) Kubernetes核心原理与关键组件 (8课时) 微服务技术原理与治理 (4课时) 容器监控与分析 (4课时) 云原生边缘计算技术(4课时) IBM讲座-混合云架构(4课时) 云原生应用实践与案例分析(4课时) 考核方式 平时(20%)+ 课程设计(80%,含报告) 课程设计(三选一) 云原生技术研究报告或综述 围绕云原生关键技术点,如容器安全、多集群管理、云边协同和边缘智能等,综述当前技术现状并进行必要的分析 源代码分析报告 分析Kubernetes或者KubeEdge等云原生项目相关源代码,撰写代 ...

javadoc——让大家更好写java项目
近期在Github上看到一个有趣的项目,是各个技能树的挑战,并且起了个冒险岛的故事——字节传说:勇士将无惧挑战。其中除了提交Pr的教程(挑战)外,还有个比较有意思的是Javadoc,想想之前没专门写过,于是本勇士本次就毅然接收了Javadoc的挑战。 Javadoc 很多程序对Javadoc都不重视,认识不到Javadoc的作用,很多人都是这样认为的:“我只要写好功能就够了,写Javadoc太浪费时间,也没啥作用,还不如用写Javadoc的时间再多些个功能呢!”,我们知道注释是为了解释代码的作用的,是为了将来给自己或者别人快速了解代码的,在方法内一般用行注释//的比较多,是针对一小块代码做 ...

ZJU开学摸底考试——操作系统复习
操作系统 特性: 并发: ▲理解并发和并行的区别 共享 互斥共享方式(摄像头设备的共享使用) 同时共享方式(硬盘访问)——宏观的同时,微观上进程还是交替访问的(分时共享) 虚拟: 虚拟存储器: 空分复用 虚拟处理器: 时分复用 异步 只有系统具有并发性,才可能导致异步性 注: 并发与共享互为存在条件 操作系统发展 单道批处理系统 主要优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升。 主要缺点:内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序。CPU有大量的时间是在空闲等待/0完成。资源利用率依然很低。 多道批处理系统: ...

学习画好架构图
一图胜万语,做好一张架构图能让别人一眼就清晰地弄懂程序的功能与依赖,大大降低大家的理解成本和提升沟通效率。但作为新人而言,如何画出要点,提炼出核心概念是个有难度的事。 什么是架构? 架构是结构和愿景,是对系统中的实体以及实体之间的关系所进行的抽象描述,是一系列的决策。 系统架构是概念的体现,是对物/信息的功能与形式元素之间的对应情况所做的分配,是对元素之间的关系以及元素同周边环境之间的关系所做的定义。 什么是架构图? 系统架构图是为了抽象地表示软件系统的整体轮廓和各个组件之间的相互关系和约束边界,以及软件系统的物理部署和软件系统的演进方向的整体视图。 架构图的作用 要让干系人理解、遵 ...

浙江大学期末考试——Go语言
浙江大学期末考试——Go语言 期末复习对学习知识的帮助是巨大的,相比于看视频,本篇点到为止的知识点形的期末复习笔记,我相信更能让人学会。我相信,只要把本笔记全部看完了必然就会Go了。如果你做到了但还没有学会Go,那你大可来找我/doge。 概论 指令:计算机的一个最基本的功能,如实现一次加法运算或实现一次大小的判别 计算机的指令系统:计算机所能实现的指令的集合 程序:一系列计算机指令的有序组合 算法: 求解特定问题的一组有限的操作序列 目的性:算法有运算结果,程序强调过程性 抽象性:算法独立于编程语言和指令系统 研究性:算法是理论研究,载体可以是伪码,文字,图片等,载体为某 ...

前端-跨域
什么是跨域问题 跨域问题的出现是因为浏览器的同源策略问题,所谓同源:就是两个页面具有相同的协议(protocol),主机(host)和端口号(port),即指协议,端口,域名。只要这个3个中有一个不同就是跨域。它是浏览器最核心也是最基本的功能,如果没有同源策略我们的浏览器将会十分的不安全,随时都可能受到攻击。 当我们请求一个接口的时候,出现如:Access-Control-Allow-Origin 字眼的时候说明请求跨域了 展示跨域问题 前端请求后端8889端口开放的端口 12345678this.$axios({ method:'get', url:'http ...

Vue中使用axios
axios请求 官网网址 从浏览器中创建 XMLHttpRequest 从 node.js 发出 http 请求 支持promise API 拦截请求和响应 转换请求数据和响应数据 取消请求 自动转换 JSON 数据 客户端支持防御 XSRF 直接每次从axios库中调用axios函数 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950<template> <div> <div>mmmm</div> ...

学点Kotlin
Kotlin 基础语法 Kotlin 文件以 .kt 为后缀。 函数定义 函数定义使用关键字 fun,参数格式为:参数 : 类型 123fun sum(a: Int, b: Int): Int { // Int 参数,返回值 Int return a + b} 表达式作为函数体,返回类型自动推断: 123fun sum(a: Int, b: Int) = a + bpublic fun sum(a: Int, b: Int): Int = a + b // public 方法则必须明确写出返回类型 无返回值的函数(类似Java中的void): 123456 ...

Vue-Router细节记录
vue-router使用 yarn add vue-router@next --dev, 参数说明packageName@tagorpackageName@version 创建router/index.js 12345678910111213141516171819202122232425262728293031323334353637383940414243import { createRouter, createWebHistory } from "vue-router";import ShowList from "../components/ShowList.vue ...

党员在线培训课程~免除暂停烦恼
党员在线培训课程~免除暂停烦恼 女朋友反馈:刷党员在线培训课程得一直手动的解决暂停问题,无法单纯的挂机刷视频。作为一个程序猿,当然是帮她解决啦~ 首先分析页面中JS执行逻辑,如下所示 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041 ...

Linux iptables学习
iptables简介 ​ netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。 注:Iptables和netfilter的关系是一个很容易让人搞不清的问题。很多的知道iptables却不知道 netfilter。其实iptables只是Linux防火墙的管理工具而已,位于/sbin/iptables。真正实现防火墙功能的是 netfilter,它是Linux内核中实现包过滤的内部结构。 ipt ...

Makefile使用记录
Makefile使用记录 Makefile 文件描述了 Linux 系统下 C/C++ 工程的编译规则,它用来自动化编译 C/C++ 项目。一旦写编写好 Makefile 文件,只需要一个 make 命令,整个工程就开始自动编译,不再需要手动执行 GCC 命令。===>此外拓展功能不至于C++,其相当于组合一系列Linux命令,因此也可以用来编译其他工程。 什么是Makefile? Windows 下的集成开发环境(IDE)已经内置了 Makefile,或者说会自动生成 Makefile,因此windows下不用去手动编写makefile。但是在 Linux 下的C语言开发会碰到 ...

ZJU开学摸底考试——计算机网络复习
计算机网络核心: 主机 通信链路 交换网络 协议 多路复用 频分多路复用 时分多路复用 码分多路复用 波分多路复用 数据交换 电路交换(FDM,WDM,TDM,CDM) 报文交换(被废弃了) 分组交换(统计多路复用) 分组:报文分拆出来的一系列相对较小的数据包 分组交换需要报文的拆分与重组 统计多路复用 工作方式:存储与转发: 报文交换与分组交换均采用存储-转发交换方式 区别: 报文交换以完整报文进行“存储-转发” 分组交换以较小的分组进行“存储-转发” 报文:M bts 链路带宽(数据传输 速率):R bps 分组长度(大小):Lbits 跳步数:h 路由器数:n 分组交换 ...

Java Logger
Java Logger——Java的日志体系 在JDK 1.3及以前,Java打日志依赖System.out.println(), System.err.println()或者e.printStackTrace(),Debug日志被写到STDOUT流,错误日志被写到STDERR流。这样打日志有一个非常大的缺陷,即无法定制化,且日志粒度不够细。 于是, Gülcü 于2001年发布了Log4j,后来成为Apache 基金会的顶级项目。Log4j 在设计上非常优秀,对后续的 Java Log 框架有长久而深远的影响,它定义的Logger、Appender、Level等概念如今已经被广泛使用。Lo ...

物联网基础与应用-课程笔记
IOT课上实验 交叉编译环境 什么是交叉编译环境? 交叉编译其实是相对于本地编译(native build)来说的,大家最开始学习 C/C++ 这些语言的时候,都是在自己的笔记本上写程序,然后在直接在电脑上编译生成可执行文件,最后在电脑上运行。整个流程为:程序的编辑->编译->运行,整个过程都是在一台 X86 电脑上。 当我们开始接触嵌入式开发后,事情变的不一样了。你在电脑上写程序,在电脑上编译出可执行文件,最后这个可执行文件需要下载到你的开发板上运行。程序最后运行的环境变了,比如你的开发板是基于 Arm 的——程序在 X86 上编辑,编译,最终运行在另一个和 X86 完全不 ...

XML语法规则笔记
简介: XML 指可扩展标记语言(EXtensible Markup Language)。 XML 是一种很像HTML的标记语言。 XML 的设计宗旨是传输数据,而不是显示数据。 XML 标签没有被预定义。您需要自行定义标签。 XML 被设计为具有自我描述性。 XML 是 W3C 的推荐标准。 特点: 所有 XML 元素都须有关闭标签 XML 标签对大小写敏感 XML 文档必须有根元素 XML 的属性值须加引号,双引号、单引号都可以 实体引用:&lt;, &gt;, &amp, &apos, &quot 在 XML 中,空格会被保留, 但多余的 ...

学点Gradle
Gradle学习 在kotlin中使用mapstruct出现了些问题, 网上搜寻后得到结论:需要使用kapt(Kotlin annotation processing tool 即kotlin注解处理工具), 但给出的大多都是通过Gradle来进行配置的。因此借此机会学习了下Gradle: plugins和apply plugin: 由于文档写到了, 由于不清楚这些在哪些位置加入, 因此查看了plugins和apply plugin:的区别: 1234567891011> 添加 kapt 插件> apply plugin: 'kotlin-kapt'> ...