自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(94)
  • 收藏
  • 关注

原创 蛋蛋已经消化的古琴曲记录

蛋蛋已经消化的古琴曲记录仙翁操秋风词卧龙吟(简化版)湘妃怨半山听雨酒狂阳关三叠关山月进行ing……

2021-04-23 10:45:28 202

原创 记一次在deployment中添加灰度暂停功能

本文主要聊聊如何在k8s deployment中添加灰度暂停功能。因为是基于deployment原本支持的RollingUpdate更新方式 和 pause进行设计,所以文章中大篇幅会对deployment源码阅读分析。k8s v1.16deployment 目前处理逻辑首先deployment是k8s暴露给用户的声明式API,用户通过定义spec(期待模板信息) 和 replicas(实例...

2020-06-15 14:06:41 1352 3

原创 如何在容器中执行多条指令并能优雅退出

本文主要围绕k8s command展开讨论。(deployment.spec.template.spec.containers[n].command)主要聊聊平台在接入用户业务时,如何保证满足业务基本需求情况下增强平台易用性。最初是由bash启动进程引起的业务进程无法接收sigterm优雅退出问题。解决过程中逐渐回归为如何在k8s command定义多条指令文章目录原生K8S-Command...

2020-03-17 18:23:17 3785

原创 Persistent Volumes阅读

文档描述PersistentVolume目前在k8s中的状态。管理计算实例的直接问题是管理存储,引入PersisitentVolume子系统提供给用户和管理员,抽象描述了存储如何被提供。为此,提供了PersistentVolume和PersistentVolumeClaim。以下统称PV,PVC。基本信息PV是集群中已初始化的一块存储。一般由 管理员或动态配置使用Storage Classe...

2020-03-12 18:37:39 701

原创 golang runtime源码阅读 channal实现

概念及使用场景通道(channal)是Golang实现CSP并发模型的关键,分为 有缓冲通道 和无缓冲通道。有缓冲管道: channal持有一个固定大小的队列,队列满时发送者将阻塞(反之亦然)。多用于数据共享。无缓冲管道: 发送和接收数据同时完成,如果没有goroutine读取channal,则发送者阻塞(反之亦然)。多用于协程同步。有缓冲+select: +for实现对多个chan的监...

2019-10-16 00:46:31 911

原创 九成宫醴泉铭-欧阳询(慢更)

九撇 重头撇 下笔横切,顿笔转到合适角度,向下行笔(此处注意向右给出一点弧度,使与后面的弯钩中的竖间距不大,中宫收紧),再向下笔画变细,向左撇出横 右尖横,横宜短不宜长折即竖 注意向内稍收但不能收多, 也可竖直而下。弯即下部的横,弯折90度,笔画保持偏细,然后横时细逐渐转粗钩 内圆外圆,外圆90度形状注意: 1撇在米字格左边中间起笔,横折靠近竖中线偏右,弯钩为主笔,必...

2019-08-07 22:26:32 556

原创 Kubernetes源码解析之controller-manager deployment同步流程

基本使用1 简单的yaml文件在K8s集群上可使用Kubectl命令以指定文件方式创建一个kind=Deployment的资源对象$ kubectl create -f nginx.yamlapiVersion: apps/v1beta1kind: Deploymentmetadata: name: nginx spec: replicas: 3 template...

2019-07-22 22:00:31 1336

原创 docker原理与使用

docker 使用命令容器增删改查状态检查镜像增删改pushtag等dockerfile基本部分整理namespace和cgroup底层原理及与docker关系docker与镜像的底层原理多个读写层的实现...

2018-12-05 21:20:15 450

原创 MySQL索引与优化

概念索引存储在内存中,为服务器存储引擎为了快速找到记录的一种数据结构。基本操作为数据表添加索引:ALTER TABLE table_name ADD INDEX index_name (column_list) //普通索引ALTER TABLE table_name ADD UNIQUE (column_list) //唯一性索引,设置后,不允许插入重复值ALTER TABLE...

2018-12-02 21:31:35 1386

原创 golang 中 Template 的使用

项目需求:将map中的内容部分填充到表格没有数据的填写符号” - ” Go 的html/template包对HTML模板提供了丰富的模板语言。主要用于Web应用程序,在客户端的浏览中以结构化的方式显示数据。go提供的模板填充接口,支持各种所以结构。 当渲染模板时,要访问模板中的数据,最前的变量是通过{{. }} 来访问。其中花括号中的点(.) 称为管道和root。模板使用语...

2018-08-11 21:27:57 3138

原创 Istio 原理解析

Istio定义一个用来连接、管理和保护微服务的开放平台。 Istio提供一种简单的方式来建立已部署服务网络,具备负载均衡、服务间认证、监控等功能,而不需要改动任何服务代码。 想要为服务增加对Istio的支持,您只需要在环境中部署一个sidecar,使用Istio控制面板功能配置和管理代理,拦截微服务之间的所有网络通信。为什么需要Istio随着微服务出现,微服务的连接、管理和监控...

2018-04-07 16:02:16 18857 1

原创 The Django Book(一)

新建一个Django文件//新建一个django项目 和 一个app $ django-admin.py startproject mysite $ django-admin.py startapp my_app//运行(指定ip地址的)开发服务器python manage.py runserverpython manage.py runserver 0.0.0.0:8080关于urls.

2017-12-12 17:42:49 1346 2

原创 关于mysql

mysql 忘记密码重置1. 停止 MySQL 服务$ cd /usr/local/mysql/bin/$ mysql.server stop2.进入安全模式$ cd /usr/local/mysql/bin/$ sudo ./mysqld_safe --skip-grant-tables3.新开一个终端,进入 MySQL输入mysql命令直接进入

2017-11-21 22:24:54 652

原创 Hadoop&Spark搭建

概念 Hadoop,一种分析和处理大数据的软件平台。是Appach的一个用JAVA语言实现的开源软件的加框,在大量计算机组成的集群中实现了对于海量数据进行的分布式计算。 Hadoop的框架核心设计是:HDFS和MapReduce.HDFS为海量数据提供了存储,则MapReduce为海量数据提供了计算。关于HDFS分布式文件系统用于数据的存储 大文件被分成多块,以冗余镜像的方式分布在不同的机器中

2017-11-08 21:28:42 431

原创 TCP/IP知识整理

这几天看了TCP/IP的相关知识,感觉要系统的整理很难,一段一段的整又容易乱,最后想到用解决问题的方式来整理。这里有一点基本概念和模型图TCP/IP协议基本知识问题:1.TCP/IP,ICMP,ARP,FTP,DNS,DHCP,MTU这些,分别是什么?2.TCP 和 UDP的区别及用途? 3.端口和服务间的关系及常用端口?4.TCP三次握手?5.私有地址和公有地址及其工作

2017-07-03 16:41:00 1202

原创 实现atoi函数

面试被要求实现这个函数。函数功能:将字符串转换为整数。那么实现这个一半需要考虑到哪些情况呢?符号:整数可以为负数。考虑上溢和下溢字符中的非法字符如何处理我们知道int类型计算机存储中占32bit, 首位存储符号,表示的数范围为-2147483648 - 2147483647#define MAX_INT ((1 #define MIN_INT (-(1 using

2017-03-29 13:33:13 1018

原创 TCP/IP报文头部结构整理

IP协议是TCP/IP协议族的动力,它为上层协议提供无状态、无连接、不可靠的服务。 优点:简单,高效。 无状态指:IP通信双方不同步传输数据的状态信息,所有的IP数据报的传输都是独立的。所以容易发生重复和乱序的情况并且IP层不予处理。 然后将这些乱序的交给上层传输层(TCP/UDP等)来处理,将其处理成有序的,正确的。再交给应用层。 不可靠指:IP协议不能保证IP数据报准确到达。所以它提供

2017-03-25 19:47:17 71106 2

原创 epoll多路复用

先来看一下函数原型:#include <sys/epoll.h>int epoll_create(int size); //创建内核事件表int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event); //注册文件描述符int epoll_wait(int epfd, struct epoll_event *events

2017-03-23 04:02:25 1620

原创 关于信号

使用#include typedef void (*sighandler_t)(int);sighandler_t signal(int signum, sighandler_t handler);参数1:我们要进行处理的信号。命令kill -l查看(共64个),这些信号都是系统定义的宏。 参数2:我们处理的方式(3种)。第一种:signal(SIGINT, SI

2017-03-23 01:22:03 685

原创 127.0.0.1和0.0.0.0地址的区别

我平时在进行网络编程时,会将服务器的IP地址设置为127.0.0.1。然后绑定端口,开始监听。但是对于服务器来说,除了127.0.0.1,还有内网IP和公网IP,绑定本地的话只能局域网传输,所以,应该怎么绑定?先复习一下IP类型:IP地址一共分为5类,即A~E,它们分类的依据是其net-id所占的字节长度以及网络号前几位。A类地址:网络号占1个字节。网络号的第一位固定为0。 B类地

2017-03-16 16:56:30 40398 2

原创 简单的时序图工具---Markdown

用markdown画的时序图效果图Created with Raphaël 2.1.0CLientCLientServerServerHashtableHashtableMemcacheMemcacheSlabSlab1. set data(key, value)2. forearch(key)/not found3. Not found4. get mem(key, value)5. get sl

2017-01-19 13:34:50 2083

原创 https的安全密钥

HTTP 主要有这些不足,例举如下 • 通信使用明文(不加密),内容可能会被窃听 • 不验证通信方的身份,因此有可能遭遇伪装 • 无法证明报文的完整性,所以有可能已遭篡改

2016-12-31 22:10:54 3830

原创 TCP 接收连接及消息的收发

我们在网络编程时,一般过程是创建套接字,然后绑定端口,然后开始监听,那么这个所谓的监听数量为什么一般很小,但是能接收很多连接,恩,后来才知道不在一个过程上,下面先从listen函数看起。listen(socket, backlog);socket backlog定义内核监听队列的最大长度。内核为任何一个给定的监听套接字维护两个队列: 1) 未完成连接队列。每个这样的SYN分节对应其中一项:已由某个

2016-12-27 16:48:56 4996

转载 std::string , Qstring和 const char * 的互相转换

好多人都喜欢重新造一个轮子, 所以这个世界上的的轮子千奇百怪. 作为在这些轮子下面苟延残喘的洒家,往往不得不无尽的寻找两个轮子之间转换的方法. STL库, 作为标准库, 在写C++的时候理所当然的, 被各种使用. const char * 数组, 作为和C一起过来的小伙伴, 在很多场合下也会被调用. 如果脑抽居然还打算使用Qt, 那么,Qt自带的QString, 恐怕也很难有人能完全不使用. 于是乎

2016-12-22 13:02:11 7947

原创 文件系统

计算机的文件是一种存储和组织计算机数据的方法,是一套实现了数据的存储、分级组织、访问和获取等操作的抽象数据类型。设备文件设备文件与系统的某个设备相对应。在内核中,每种设备文件都有与之相对应的设备驱动程序,用来处理设备的所有I/O请求。设备划分为两类:字符型设备基于每个字符处理数据。终端和键盘块设备每次处理一块设备。块的大小取决于设备类型。磁盘和磁带设备。磁盘和分区常规文件和目录通常放在硬盘设备

2016-12-18 15:49:46 706

原创 图解HTTP(上)

通信双方,请求访问文本或图像等资源的一端为客户端,提供资源响应的一端为服务器端。对于一条通信线路来说,服务器端和客户端是明确分开的。 请求必须由客户端发出,由服务器响应回复。HTTP/1.0 和 HTTP/1.1 支持的方法 关于持久化连接早期的HTTP连接每进行一次HTTP通信就要断开一次TCP连接,如果网页中包含很多其他资源,就存在许多无谓的请求和断开,增加了通信的开销,HTTP/1.1 和

2016-12-12 09:09:27 704

原创 muduo源码中的时间类

MutexLock私有成员: Phread_mutex_t mutex_; //互斥变量 pid_t holder; //用来表示给互斥量上锁线程的tidMutexLock() ~MutexLock() isLockByThisThread() -> bool 用来检查给互斥量上锁的是否为当前线程 assertLocked() lock() //加锁,调用assignHo

2016-10-25 20:24:28 769 1

转载 JAVA讲义(三)Java集合

Java Collections Framework是Java提供的对集合进行定义,操作,和管理的包含一组接口,类的体系结构。Java集合框架的基本接口/类层次结构:[I]:接口 [C]:类java.util.Collection [I] +–java.util.List [I] +–java.util.ArrayList [C]

2016-10-10 16:44:30 588

原创 TCP/IP详解之IP协议和ARP,RARP

概念IP 是TCP/IP协议族中最为核心的协议。所有TCP、UDP、ICMP、IGMP数据都以IP数据报格式传输。IP提供不可靠、无连接的数据报传送服务。ARP为地址解析协议,为IP地址到对应的硬件地址之间提供动态映射。RARP是被那些没有磁盘驱动器的系统使用的。这三个协议都处于同一层中,ARP通过IP地址找到目标主机的Mac地址。IP则承载要发送的信息。数据链路层可以从ARP得到数据的传送信息,而

2016-09-27 21:32:47 1655

原创 TCP/IP详解--基本概念

链路层:设备驱动程序及接口号

2016-09-27 09:52:49 2368

原创 TCP/IP详解--数据链路层

数据链路层的三个目的:为IP模块发送和接收数据报为ARP模块发送ARP请求和ARP应答。(ARP为地址解析协议,用IP地址换MAC地址的一种协议)为RARP发送RARP请求和接收RARP应答。(RARP为逆地址解析协议)数据链路层的协议也有很多,比如以太网阿,令牌环网阿,FDDI,还有 国内现在相当普及的PPP协议(就是adsl宽带),以及一个loopback协议。以太网的定义是指数字设备公

2016-09-27 09:52:09 1146

原创 JAVA讲义 (二) 流程控制与数组

进程和程序 进程是一个可执行程序的实例。进程是包含了一系列信息的文件,这些信息描述了如何在运行时创建一个进程。二进制标识:每个程序文件都包含了用于描述可执行文件格式的元信息。内核利用此信息来解释文件中的其他信息。机器语言指令:对程序算法进行编码。程序入口地址:标识开始执行时的起始指令位置。数据符号表及重定位表:描述程序中函数和表量的位置及名称。这些表格用处广泛,还包括调试和运行时的符

2016-09-26 14:21:31 1084

转载 Java 中的 scanner

一、扫描控制台输入这个例子是常常会用到,但是如果没有Scanner,你写写就知道多难受了。 当通过new Scanner(System.in)创建一个Scanner,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象。如果要获取输入的内容,则只需要调用Scanner的nextLine()方法即可。/** * 扫描控制台输入 * * @author

2016-09-12 19:55:31 409

原创 深入探究文件I/O

读本文章前,必须先有一些通过I/O模型的系统调用的基础,即 open() , create() , read() , write() , close() , lseek() 函数的调用。原子操作在文件读写中,很容易有多个进程读取同一文件的情况,这时候竞争状态便不可避免。文件I/O的函数提供的一些参数配合系统调用的原子性很好的解决了这个问题。 来看一个关于竞争创建者的例子: int

2016-09-01 20:04:29 1951

原创 JAVA讲义读书笔记(一)

JAVA 程序运行机制 计算机高级语言按程序的执行方式可分为编译型和解释型两种。编译型:通过使用专门的编译器,针对特定的平台将源代码一次性“翻译”成可被该平台硬件执行的机器码,并包装成该平台可识别的可执行文件格式,因为是一次性的编译成机器码,所以可脱离开发环境独立运行,但是移植有困难,因为是针对当前平台翻译包装的。现有C、C++、FORTRAN、Pascal等语言。解释型:使用专门的解释器对源程序逐

2016-08-31 21:53:54 407

原创 (TCP/IP卷一)ARP,RARP地址解析协议

概念 数据链路如以太网都有自己的寻址机制(常常为48bit地址),这是使用数据链路的网络层都必须遵守的。也就是说,你发给以太网的是32位IP地址,但是经由以太网发给另一个主机时它是以48位的以太网地址在传递,所以这里就要用到ARP地址解析协议和RARP逆地址解析协议。 ARP 为IP地址到对应的硬件地址之间提供动态映射。 RARP 是被那些没有磁盘驱动器的系统使用,它需要系统管理员进行手工

2016-08-25 22:01:52 2833

原创 C++实现一个半同步半异步线程池

半同步半异步线程池介绍为了解决任务较多时产生的线程因不断创建销毁而消耗过多系统资源的问题,而实现了线程池技术。大概思路:维护一个线程池,里面放有一定数量的线程。当任务到来时选出一个任务“接活”,任务完成后再将其放入池中。半同步半异步的三层:同步服务层:处理来自上层的任务请求,负责将它们放到同步队列里。同步排队层:来自上层的任务请求都会加到排队层中等待被第三层处理。但必须对大小加以控制,不然如果同

2016-08-23 10:21:40 1260

原创 值传递,引用传递,指针传递

原文地址: http://www.cnblogs.com/yanlingyin/archive/2011/12/07/2278961.html 值传递:形参是实参的拷贝,改变形参的值并不会影响外部实参的值。从被调用函数的角度来说,值传递是单向的(实参->形参),参数的值只能传入,不能传出。当函数内部需要修改参数,并且不希望这个改变影响调用者时,采用值传递。指针传递:形参为指向实参地址的指针,当对

2016-08-21 21:39:30 811

原创 线程控制(linux C)

线程是计算机中独立运行的最小单位,运行占用资源很小,宏观上线程同时执行。微观上通过系统分配时间片去的CPU控制权交替执行线程中的代码。当然多核情况下是可以并行的。目录线程优点线程私有数据线程的同步方法出错处理线程的优点 1.节省资源,节省时间。多进程时,每个进程都拥有独立的空间,而同进程下的多线程共享进程的地址空间。同时也节省了为其分配空间所花费的时间。 2.因为地址空间共享

2016-08-20 21:43:07 716

原创 简单的DOM Tree使用

因为需要从网页上找出学生信息,本来是要准备用正则表达式来匹配,但是翻遍了各种答案找到的匹配中文正则式都不对,大写的无奈,然后找到了这个办法来查找信息—DOM Tree。 DOM 树是指通过DOM将HTML页面进行解析。并生成的HTML tree树状结构和对应访问方法。采用一种直观且一致的方式将HTML文档进行模型化处理,并借此提供访问、导航和操作页面的简易编程接口。在网上找到一个图片觉得很简单易懂

2016-08-20 00:07:29 2906 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除