自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(102)
  • 资源 (7)
  • 收藏
  • 关注

原创 K8S 运维管理

Node是K8S中负责运行业务的计算节点,常见的操作有:1)将一个新的Node加入到集群,2)对某个存在的Node进行升级维护(扩大内存,增加磁盘,升级OS,重启等),3)将一个不再使用的Node从集群中删除。

2024-03-30 14:50:54 1432

原创 K8S Storage

一般情况下,K8S中的Pod都不应该将数据持久化到Pod中,因为Pod可能被随时创建和删除(扩容活缩容),即便是StatefulSet或Operator的Pod,也都不建议在Pod里面存放数据,可以将数据持久化到Host上。K8S提供了非常丰富的存储相关的功能,使得我们可以方便的让Pod访问存储设备。在K8S里面,都统一通过Volume挂载的方式让Pod来访问存储设备,Volume与Pod绑定并与Pod有相同的生命周期,Volume在Pod中定义,而Pod中的容器只需要使用volumeMounts就可...

2024-03-21 11:15:06 1289

原创 K8S CNI

本章讲解K8S CNI及其周边相关技术,包括CNI,OCI,CRI,网桥,Sandbox,IPIP,VXLan等,以及要自己实现一个CNI的步骤有哪些。

2024-03-15 11:32:55 1224

原创 K8S Pod

Pod是K8S中非常重要的概念之一,是整个K8S架构的基础和核心。Pod是K8S调度的最小单位,是一个不可拆分的独立个体,K8S将多个业务上相关联的容器(Docker容器)合并到一起,组合成一个Pod,这些业务上相关的容器共享Pod中的网络和存储等资源。每个Pod都有一个唯一的IP地址,Pod中的所有容器都共享此IP地址。每个Pod在创建的时候K8S都会为其先创建一个根容器,即pause容器,这个容器非常简单,就是一个主要包含for代码的死循环,主要起一个占位的作用。

2024-03-09 14:27:12 1165 1

原创 K8S Service

K8S 服务(Service)是K8S实现微服务架构最重要的组件之一,主要作用:1)为Pod提供稳定的访问地址(域名或IP),2)实现负载均衡,3)自动屏蔽后端Endpoints的变化。

2024-03-06 13:56:39 677

原创 K8S 概述

Kubernetes 是一个基于容器化技术的分布式应用程序编排平台,其核心概念主要包括 Node、Pod、Service、Namespace、Deployment、StatefulSet、DaemonSet、Job 和 CronJob 等。

2024-01-22 21:48:49 407 1

原创 Ansible相关资料收集

Ansible 资料。

2023-01-03 17:08:46 152

原创 Kafka中Zero-Copy的相关总结

Kafka用到了零拷贝(Zero-Copy)技术来提升性能。所谓的零拷贝是指数据直接从磁盘复制文件到网卡设备,而无需经过应用程序,减少了内核和用户空间之间的上下文切换。

2022-06-29 09:46:40 538

原创 Kafka中mmap的相关总结

Kafka中mmap的相关总结

2022-06-28 16:50:33 764

原创 Kafka设计的奥秘

这里转载几篇写的非常好的关于Kafka的文章,通过这几篇文章的学习,我们可以非常熟悉Kafka的设计奥秘以及其相关的技术,对于我们理解消息队列有着非常大的帮助。

2022-06-28 09:51:33 101

原创 搭建 Kubernetes 集群环境

经过几个晚上的折腾,终于成功搭建了一套K8S集群环境,我想说的是,真的很繁琐。该集群环境由一个Master节点和两个Worker节点组成,

2021-12-11 20:32:02 447

原创 Java安全编程需要考虑的问题

这篇文章简要讨论了Java安全编程需要考虑的若干问题,通过对这些问题的深入理解,能够帮助我们在实际编码过程中避免出现安全相关的问题,从而提高代码质量。由于时间关系,没有给出每个场景的示例代码,仅说明了该场景可能出现的安全问题以及对应的解决办法。概述一般而言,安全编程的目标有以下三点:机密性 完整性 可用性机密性要求数据不被他人轻易获取,需要进行数据加密。完整性要求数据不被他人随意修改,需要进行指纹计算。可用性要求服务不被他人恶意攻击,需要进行数据校验。在Java中,安全.

2021-12-08 23:36:15 4779

原创 CMake/CTest简单示例及C++编译过程

CTest是CMake集成的一个测试工具,在使用CMakeLists.txt文件编译工程的时候,CTest会自动配置、编译、测试并给出测试结果。创建目录 hello_world,包含以下内容:sunny@sunny-virtual-machine:~/work/C++/cmake/hello_world$ tree.├── CMakeLists.txt├── header│ └── Solution.h├── src│ ├── CMakeLists.txt│ └── So...

2021-12-04 12:43:16 2406 1

原创 OpenSSL动态链接库的使用

在上一篇文章 OpenSSL动态链接库源码安装 中我们介绍了如何在Windows和Linux环境中编译OpenSSL动态链接库,这篇文章我们将介绍如何在C代码中引用OpenSSL动态链接库。测试代码以下测试代码 main.c 将分别在Windows和Linux环境中编译,该代码的作用是计算任意文件的SHA256值,#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#inclu.

2021-11-13 17:14:24 3348

原创 OpenSSL动态链接库源码安装

Openssl 是一个开放源代码的SSL协议的产品实现,它采用C语言作为开发语言,具备了跨系统的性能。调用Openssl的函数就可以实现一个SSL加密的安全数据传输通道,从而保证客户端和服务器之间数据的安全。OpenSSL整个软件包大概可以分成三个主要的功能部分:SSL协议库、应用程序以及密码算法库。OpenSSL的目录结构自然也是围绕这三个功能部分进行规划的。作为一个基于密码学的安全开发包,OpenSSL提供的功能相当强大和全面,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供

2021-11-13 16:22:27 1492

原创 Docker常用知识点总结(持续更新)

Docker常用知识点总结(持续更新)目录MySQL相关MySQL相关创建MySQL容器,并使用Navigator连接localhost:~ # docker run --name mysql -e MYSQL_ROOT_PASSWORD=changeme -d -p 3306:3306 mysql:latest101ef9ff09cdb9c0312d4fb980256065072d795a48f7598fbb30a3f1b871aca3localhost:~ # docker ps

2021-04-27 11:59:20 197 1

原创 数据结构 - B, B+树原理及其在MySQL中的应用

数据结构 - B, B+树原理及其在MySQL中的应用该文章介绍B,B+树的原理及其在MySQL中的应用,包含以下内容,背景 B树简介 B树的查找,增加,删除 B+树简介 B+树的查找,增加,删除 B+树在MySQL中的应用背景B树和B+树一般应用于文件系统或数据库索引,其能够在很大程度上提高文件系统或数据库的查询性能。这里有一个疑问,文件系统或数据库为什么要使用B,B+树,而不使用AVL,红黑树等呢?单从查询的逻辑上来说,AVL和红黑树的效率要高于B,B+树,因为前者都是二叉树,而

2021-03-17 17:38:48 653

原创 数据结构 - 红黑树原理及其在Java中的应用

简介红黑树又名Red Black Tree(RBT),是一种平衡二叉查找树,每个节点都有颜色,要么红色要么黑色。有以下性质:根节点是黑色 叶子节点都是不存储数据的黑色空节点 红色节点的儿子节点都是黑色 任何一个节点到其所有叶子节点路径上的黑色节点数相同注意:特性2中的叶子节点,是只为空(NIL或null)的黑色节点,不存储任何数据。 特性3和4可以保证没有一条路径会比其他路径长出一倍,因为最坏情况就是某节点的一个子树的每个黑色节点中间都有一个红色节点,而另一个子树中全都是黑色节点。下

2021-03-15 10:58:14 661

原创 机器学习-使用FP-Growth算法来高效发现频繁项集

机器学习-使用FP-Growth算法来高效发现频繁项集FP-Growth算法是这里要介绍的第三个非监督学习算法,FP(Frequent Pattern)代表频繁模式。FP-Growth算法相对于Apriori算法来说效率更高,其只需要对数据集进行两轮扫描即可发现频繁项集,而Apriori确做不到。通常情况,FP-Growth会比Apriori快两个数量级。FP-Growth只能发现频繁项集,但不能发现关联规则。FP-Growth发现频繁项集的过程包括构建FP树和从FP树中找出频繁项集两个部分。本

2021-02-24 15:37:12 1025

原创 机器学习-使用Apriori进行关联分析

Apriori算法是我们要介绍的第二个非监督学习算法,通过Apriori算法我们可以非常容易的找到数据集中的内在关系,例如:哪些数据出现的频率较高,哪些数据之间存在着相互关系等等。本节包含以下内容:背景 频繁项集 关联规则部分内容引用自《Machine Learning in Action》背景设想这样一个场景,一个超市里共有N种商品,客户可以一次购买其中的任何多种商品。目前我们有该超市一年的销售记录,希望从中找到哪些商品经常被一起购买,以及客户如果买了哪些商品后最有可能购买另外哪些商

2021-01-21 16:41:08 483

原创 机器学习-K均值聚类

前面文章介绍的都是机器学习中的监督学习算法,本章开始介绍第一个非监督学习算法-K均值聚类算法。监督学习包含分类和回归,其共同点是我们事先知道要求解的目标变量,而非监督学习中不存在类似的目标变量。非监督学习通常可以解决以下问题,数据集S可以分成哪些类(注意,此时我们并不知道S中存在哪些类别,而监督学习事先是知道的) 数据集S中哪些特征最频繁出现 数据集S中哪些特征有相互关系本章介绍K均值聚类算法,其可以高效的对数据集进行分类。包含以下内容:K均值算法 局部收敛的问题分析 二分K均值算法

2020-12-31 15:24:13 341

原创 机器学习-树回归

在前面文章机器学习-回归中,我们讨论了一般的线性回归,这里面有一些强大的方法,而且也非常实用。但这些方法有一些不足,需要拟合所有的样本点(局部加权线性回归除外),计算量较大 现实生活中很多问题是非线性的,不能使用线性模型这篇文章会介绍一种非线性回归模型-树回归,通过CART(Claqssification And Regression Tree,分类回归树)来构建模型算法。该算法可用于分类(找出类别),也可用于回归(预测)。CART有可能出现过拟合的问题,通过树剪枝技术,可以解决此问题。本章包含

2020-12-25 12:25:22 533 5

原创 概率论数字特征及Python实现

本节简单讨论概率论数字特征及Python实现,概率论数字特征包括:期望 方差(标准差/均方差) 协方差 相关系数 协方差矩阵期望期望反应的是随机变量X的平均值,是试验中每次可能结果的概率乘以其结果的总和,定义如下,离散型随机变量:连续型随机变量:有以下性质:方差方差用来衡量随机变量或一组数据的离散程度,定义如下,也就是每一个样本和期望的差的平方后取其平均值,方差越小,说明数据越集中,越大说明数据越分散。(例如:学生成绩是否偏科。)标准差也叫均方差

2020-11-30 13:46:40 559

原创 机器学习-回归

这里的回归是指线性回归,也存在非线性回归,不在这篇文章的范围内。回归与分类一样,最终目的都是预测目标值。回归用于预测连续型变量,而分类用于预测离散型变量。回归是统计学中最有力的工具之一。先解释几个容易混淆的概念:拟合:根据离散的数据点找到一个近似函数,该函数能够大致的反应出原数据点的分布规律(不一定通过原数据点),通过该函数能够预测原数据点区间外的未知数据。找到该函数的过程称为拟合。插值:根据离散的数据点找到一个最佳的函数,该函数能够反应出原数据点在此区间的分布规律(需要通过原数据点)。通过

2020-11-27 12:22:16 455

原创 机器学习-曲线拟合

这篇文章介绍在Python中如何做曲线拟合。曲线拟合的目的是根据给定的数据找到某种函数关系,再通过该函数来预测未知数据。包含以下内容,简单的多项式拟合 高阶多项式拟合复杂曲线 基于scipy拟合复杂曲线 可化为线性函数的非线性拟合简单的多项式拟合我们知道,一般的函数都可以做泰勒展开,展开后可以通过多项式函数来近似计算。同时,我们可以基于最小二乘法对给定的数据点做多项式拟合,请参考我下面的两篇文章:数学 - 泰勒公式,常见麦克劳林公式及Maple函数拟合最小二乘法多项式拟合的Java实

2020-11-26 21:32:42 11978 6

原创 机器学习-支持向量机

支持向量机的全称是Support Vector Machine (SVM),它是一种用于二分类的监督学习算法。问题提出假设我们有以下二维平面上的数据点,现在要求使用一条直线分割不同颜色的小球,我们可以这样分割,但如果再增加更多的小球,上面的分割方法可能会出现问题。如下图所示,其中一个红球被分割到了左边,那怎样的分割才是最好的分割呢?SVM的思想就是在某个最好的位置进行分割,使得在该位置上的分割线的两边有尽可能大的间隙。下图中黄色区域就是间隔区域,按此分割,在一定程

2020-11-11 15:21:25 920

原创 机器学习-逻辑回归

机器学习-逻辑回归本节简单介绍逻辑回归(Logistic Regression)的原理以及Python实现,包含以下内容,概念 Sigmoid函数 梯度上升算法 Python实现 随机梯度上升算法概念逻辑回归(Logistic Regression)是一种用于解决二分类问题的机器学习算法,用于估计某种事物的可能性。比如某病人患有某种疾病的可能性,某个员工是否离职的可能性,今天是否下雨的可能性等等。 注意,这里用的是“可能性”不是数学上的“概率”,逻辑回归的结果并非数学定义中的概率值,不

2020-09-29 09:18:43 653

原创 机器学习-朴素贝叶斯

机器学习-朴素贝叶斯本节介绍基于概率论的分类方法:朴素贝叶斯(Naive Bayes),包含以下内容,原理 条件概率 从文本中构造词向量 计算词向量的条件概率 测试分类器 实例-过滤垃圾邮件原理很多时候我们很难让分类器给出类似“某个数据属于哪个分类”的明确答案,即便分类器给出了,但结果也有可能是错误的。这时,我们可以让分类器给出一个最有可能的猜测结果,同时给出相应的概率。假设数据集有两个分类,C1和C2,给定某个元素a,如果a在C1中的概率大于a在C2中的概率,即 p(a|c1)

2020-09-17 09:26:14 319 1

原创 机器学习-决策树

机器学习-决策树本章介绍机器学习中一个非常重要的监督学习算法思想,决策树,决策树有很多种算法,例如CART,C4.5,ID3等,这里介绍ID3。包括以下内容:决策树的原理 信息,熵,信息增益的概念 如何划分数据集 如何选择最好的数据划分 构建决策树 图形化查看决策树 测试决策树 存储和加载决策树 ID3的优缺点 案例 - 使用决策树预测隐形眼镜类型决策树的原理问题:假定某个数据集S包含M个元素,每个元素都有属性E1,E2,...,En,且已知每个元素的分类为C1,C2

2020-09-11 21:59:38 771 1

原创 机器学习-kNN

机器学习-kNN本节介绍机器学习中比较简单的一种监督学习算法,kNN算法,以及其Python实现。概述监督学习明确知道想要得到什么。例如判断某辆机动车的类型(小车,卡车,公交车),预测明天是下雨,天晴还是多云,对某个曲线做拟合等等。如果目标变量是离散型,则使用分类算法,如果目标变量是连续型,则可以使用回归算法。无监督学习不需要预测目标变量的值。如果需要将数据划分为离散的组,可以使用聚类算法。如果还需要估计数据与每个分组的相似程度,则需要使用密度估计算法。kNN简介kNN(k

2020-09-08 16:11:55 429

原创 Python基础之random

Python基础之random本节将介绍Python中的内置模块random,用于随机数相关的操作。random模块支持生成随机浮点数,随机整数,从list,tuple,str 中随机选择某一个或多个元素,混淆某个list。例如:import randomimport string# float_n is a float number in [0,1)float_n = random.random()print(float_n)# int_n is a int number in

2020-09-03 18:55:21 234

原创 Python基础之JSON

Python基础之JSONJSON是一种高效的数据交换格式,Python中提供了非常方便的支持。json模块内置模块json提供了JSON相关的操作。在Python中,可以将一个JSON字符串转换成JSON对象(其实就是dict),也可以将JSON对象(dict)转换为JSON字符串。例如:import json# Convert a dict to JSON stringdic1 = {'name': 'xiaoming', 'age': 20, 'sex': 'm'}str =

2020-09-03 18:08:08 123

原创 Python基础之时间日期

Python基础之时间日期本节介绍Python中的时间模块time和日期模块datetime,这两个模块非常重要。datetime提供了更高级的用法,因此在大多数场景下都可以选择用datetime,而不是time。timeimport time# Get current timestampprint(time.time())# Construct a struct_time objectt = time.localtime(1599094704.0659297)print(t)

2020-09-03 17:41:30 102

原创 Python基础之正则表达式

Python基础之正则表达式本节将介绍Python中正则表达式最基本的用法,正则表达式本身不做太多介绍。Python中正则表达式的内置模块是re,最基本的用法是判断某个字符串是否符合某个表达式,分组,找出一个字符串中所有符合某个表达式的列表。判断字符串是否符合某个表达式可通过search()函数和match()函数来实现,不同之处是match函数是从字符串的起始字符开始判断,而search函数是从任意位置开始判断。例如:search:import re# Check if a

2020-09-02 13:59:10 139

原创 Python基础之迭代器

Python基础之迭代器本节将介绍Python中的迭代器以及如何为自己的类添加迭代功能。我们知道,在Python中有 for...in...的语法,通过该语法可以方便的遍历某个容器中的所有元素。之所以能够这样操作,是因为这些容器都实现了迭代器功能,例如列表,元组,字符串,字典等。遍历容器下面这个例子将介绍通过迭代器遍历列表,元组,字符串和字典。例如:my_list = [1, 2, 3, 4, 5]my_iter = iter(my_list)while True: tr.

2020-09-02 09:24:18 88

原创 Python基础之多线程

Python基础之多线程本节将介绍Python中的多线程技术以及线程同步相关的内容。继承 threading.Thread最正式的一种方式是写一个多线程类,并继承threading.Thread,重写run方法。例如:import threadingimport timeclass MyThread(threading.Thread): def __init__(self, id, delay): self.__id = id self._.

2020-09-01 17:51:43 120

原创 Python基础之模块和包

Python基础之模块和包本节将介绍Python中的模块和包的概念及基本用法。模块简单来说模块就是一个python文件,我们可以将一些常量、函数、类等封装到一个模块中,然后在程序中使用该模块。模块类似Java中的包(package),目的是组织代码结构,重用代码等。命名模块的命名应该采用小驼峰方式,即只包含数字,小写字母和下划线等字符,首字母不能是数字,单词与单词之间用下划线分割。因为在导入模块时模块名会作为程序的一部分,因此模块名必须按规范命名。导入模块import 模块名

2020-08-31 12:27:42 340

原创 Python基础之异常

Python基础之异常本节将介绍异常的基本概念,语法,异常类结构,自定义异常以及主动抛出异常等内容。异常是指程序遇到错误导致无法继续执行时突然中止的一种现象。比如,两个数相除,如果除数为0,程序将无法继续执行,如果此时没有显示的指定如果处理,那么程序将强制退出。Python中的异常相对Java的要简单一些,没有运行时异常和非运行时异常之分。语法异常的语法通过try,except,else,finally 等关键字来定义。例如:try: passexcept ZeroDivi.

2020-08-28 15:42:46 663 1

原创 Python基础之面向对象

Python基础之面向对象本节将介绍面向对象的基本概念,包括类,对象,继承,多态,类属性,类方法,单例模式等,并介绍在Python中的相关语法。概念面向对象是一种程序设计思维,相对于传统的面向过程而言,面向对象使得我们可以以更加抽象的方式来认识业务逻辑,并将业务逻辑拆分成不同的对象和与之交互的关系。在面向对象程序设计中最重要的是弄清楚系统中有哪些类,这些类有哪些属性和行为,类与类之间的关系是继承还是依赖等等。类和对象类是具有相似属性和行为的一类物体的总称,在Python中通过clas

2020-08-28 13:33:39 325

原创 Python基础之流程控制

Python基础之流程控制本节将介绍Python中的流程控制,包括顺序,判断,循环。任何编程语言都有三种程序执行流程,顺序,判断和循环。概念都是一样,唯一不同的只是语法。关于三种流程的概念这里不做太多介绍,记住语法即可。顺序顺序是最简单的一种流程,程序从上到下按行依次执行,例如:a = 1print(a)b = a + 1print(b)print("Hello world!")运行结果:D:\work\python_workspace\python_study\

2020-08-27 16:34:53 147

Setup K8S Cluster Environment.docx

搭建K8S集群环境,基于目前(2021/12/11)最新的版本: Docker 20.10.11 Kubeadm 1.23.0 Kubernetes 1.23.0 Calico 3.21.2

2021-12-11

k8images_1.23.0.tar.gz

包含以下docker image,可通过命令 docker load -i <File_Name> 导入, k8s.gcr.io/kube-apiserver:v1.23.0 k8s.gcr.io/kube-controller-manager:v1.23.0 k8s.gcr.io/kube-scheduler:v1.23.0 k8s.gcr.io/kube-proxy:v1.23.0 k8s.gcr.io/pause:3.6 k8s.gcr.io/etcd:3.5.1-0 k8s.gcr.io/coredns/coredns:v1.8.6

2021-12-11

openssl_output.zip

openssl-1.1.1k 64

2021-11-11

Java Projects

Java Projects

2016-06-30

大型网站技术架构_核心原理与案例分析_李智慧.pdf

大型网站技术架构_核心原理与案例分析_李智慧.pdf

2015-11-16

23种设计模式学习笔记及源码

23种设计模式学习笔记及源码,全部原创 欢迎提出意见和建议

2011-11-14

空空如也

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

TA关注的人

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