自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 日入过亿爬虫系统搭建的思与想

在不久之前,有几位朋友问我,大规模抓取是如何实现的?说实话,其实我也并确定自己一定是正确且完整的,不过我数量级并不难以实现。下面说说我是从哪几个方面进行聚焦爬虫相关优化的,同时如果你有更好的方法欢迎您与我探讨。网络爬虫网络爬虫的定义爬虫又称为网络蜘蛛、网页追逐者。是一种按照一定的规则,自动地抓取万维网信息的程序或脚本同时还有很多种说法,但我个人认为最通俗的理解就是,模拟用户访问的程序或脚本。网络爬虫实现的核心步骤无论多么复杂的爬虫都离不开以下核心的四步,当然极少数特例除外。确定数据URL

2021-05-26 00:01:13 184

原创 发布golang第三方包

事情是这样的,随着公司的业务的增长。各种重复的工作越来约多。CV久了就想在进一步的那啥,毕竟我懒,不是。我就想着能不能把那些重复cv的干脆写成一个第三方包,进行调用。咱不谈那些啥封装啥的,我也想过,我也做过。但无论咋封装,总不可能跨项目吧,还是需要。。。所幸,还是有方法的,来吧,让我们发表第一个golang工具包创建项目仓库首先输入仓库的名字,我这里输入simpleExample,用来做演示这里选择public,公开。要不并不好拉选择需要添加的文件(可选)鼠标左键点击create repos

2021-03-31 03:07:21 721

原创 更便捷的goroutine控制利器- Context

首先要和大家说声抱歉哈,由于工作上、生活上的某些琐事,以至于造成本节的断更。不过请不要悲伤。因为我在这期间也是做过详细的复习的。我相信一定会让你有更加深入的理解,同时也欢迎你向我提出不足。我们共同进步。话不多说,我相信你已经迫不及待了。还在等什么?let‘s GO在本文中,我首先会介绍context是什么,它有什么作用,以及如何使用,其中还会参杂一点个人的理解,以及部分源码的了解。What are you waiting for?Context:来自官方文档Context包定义了上下文类型,该类

2021-02-10 20:19:40 356

原创 Kubernetes安装与部署集群

其实本节的文章我在很久之前就已经发过了一次,但不够详细,层次不q清。我今天部署的时候看的够呛(虽然也是部署成功了),也算是对以前的坑,做个忏悔吧。本文可能会比较boring,但请相信这并不是我的本意。这一定是最精简的笔记之一,相信我这绝对不是混水。本文主要分三大部分,他们分别是系统初始化、安装docker、安装Kubernetes,测试验证与删库跑路文章目录系统初始化关闭防火墙(`all`)关闭selinux(`all`)关闭swap(`all`)设置主机名称(`all`)时间同步(`All`)在`Ma

2021-02-07 02:08:13 159

原创 盘点Golang并发那些事儿之一-初探

文章目录基础概念进程进程的定义进程的创建进程的终止进程的状态进程池线程定义线程池协程串行并行并发阻塞与非阻塞阻塞非阻塞同步与异步同步异步可异步与不可异步goroutinegoroutine与线程可增长的栈goroutine模型GOMAXPROCSgoroutine的创建一生很短,Let’s Go人生苦短,我用PythonGolang、Golang、Golang 真的够浪,今天我们一起盘点一下Golang并发那些事儿,准确来说是goroutine,关于多线程并发,咱们暂时先放一放(主要是俺现在还不太

2021-02-04 23:28:03 179

原创 盘点Golang并发那些事儿之二-并发控制得心应手

文章目录信道-Channelexample无缓冲channel带缓冲Channel单向 channel多路复用ChannelSync深入并发控制sync.waitGroupsync.Mutexsync.RWMutexsync.Oncesync.Map原子操作atomic包示例sync.Cond总结上一节提到,golang中直接使用关键字go创建goroutine,无法满足我们的需求。主要问题如下无法有效的并发执行完成无法有效的控制并发首先我们再来看看下面这个栗子,代码如下// example-

2021-02-04 23:26:50 393 4

原创 Redis概览与安装

Redis概览Redis是一个开源(BSD许可)的内存数据结构存储,用作数据库、缓存和消息代理。Redis提供诸如字符串、哈希、列表、集合、带范围查询的排序集合、位图、超日志、地理空间索引和流等数据结构。Redis具有内置的复制、Lua脚本、LRU逐出、事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis Cluster的自动分区提供高可用性数据类型丰富 (笔试、面试)*****支持持久化 (笔试、面试)*****多种内存分配及

2021-01-14 01:37:42 244

原创 supervisor-让你的管理程序得心应手

文章目录Supervisor初探篇简介优点主要组件Supervisor使用技巧篇Supervisor的安装Supervisor的使用Supervisor番外篇**Supervisorctl常用命令**Supervisorctl 参数列表supervisord.conf配置文件示例总结Supervisor初探篇简介Supervisor是一个客户机/服务器系统(也就是非常经典的C/S结构),它允许用户在类UNIX操作系统上控制许多进程。优点简单便捷通过简单易懂的配置文件配置Supervisor

2021-01-12 19:25:57 481 2

原创 SQL,何必在忆之一(基础篇)

还记得那是在2018年的十月的某个日子,虽早已入秋,但夏日的炎热却丝毫不减退散。那时的我正捧着一本SQL Server程序设计的白蓝皮书与九栋315的狗子们,匆匆的走向j1-402进行了我们人生中第一次SQL数据库的学习,时光总是戏人,现实总是玩笑。当初的几个伙伴都走向了各行各业,而唯有我编程课,问啥啥不会,写啥啥就废的我进入了IT行业。说来实在嘲讽,缅怀那些我错过的编程课,致那些年说过无数次“让我学SQL,根本不可能”,我承认我打脸了。正如此章的title一般,“SQL语句, 何必在忆?”很久之前就学了

2021-01-09 19:57:06 192

原创 执行一条sql,这之间到底发生了什么?

MySQL模型初探MySQL基础结构是采用典型的C/S工作模型(即是server/client)以sshd与xshell为例,如下图所示MySQL客户端实例:Mysql客户端主要有以下功能连接数据库发送指令连接数据库socket连接方式与远程TCP/IP连接在Linux中/etc/my.cnf文件中显示(已完成Mysql的安装)socket= /tmp/mysql.sock# 示例如下root@ecs-dc8a-0003:~# cat /etc/my.cnf

2021-01-03 16:56:06 161

原创 谈谈生活中那些与学习相关的事儿

文章目录谈谈高效率全身心投入是高效率的开始人脑规律是高效率的进阶手脚并用是高效率的高阶谈谈学习方法十步学习法第一步:了解全局第二步:确定范围第三步:定义目标第四步:寻找资源第五步:创建学习计划第六步:筛选资源第七步:开始学习,浅尝辄止第八步:动手操作,边玩边学第九步:全面掌握,学以致用第十步:乐为人师,融会贯通谈谈描述问题与解决问题描述问题(八何分析法)问题分割及解决之道谈谈如何规划界限关系策略前几天有个公众号的小伙伴找到我,问到我大佬大佬,你是怎么学习的啊,我的回答是老大哥,俺也不知道啊。应该是先这样在

2021-01-01 23:42:17 873 2

原创 pipenv让你的虚拟环境管理更加funny一点

文章目录Referer什么是虚拟环境?为什么需要使用虚拟环境?什么时候需要使用虚拟环境?为什么虚拟环境使用`pipenv`好一点?pipenv安装创建虚拟环境安装删除第三方库Terminal激活虚拟环境Terminal中退出虚拟环境删除虚拟环境镜像源安装第三方包单一的安装修改配置文件获取包依赖产生 Pipfile.lock不知道但常用在真实环境中使用虚拟环境中包并运行产生 Pipfile.lock批量安装第三方依赖包示例:使用pipenv 对接docker或其他的部署勘误1.pip版本过低造成安装失败2.虚

2020-12-22 00:52:29 280

原创 Scrapy-Splash使用及对接代理

scrapy splash use proxyscrapy-spalsh 使用代理在日常做爬虫的时候肯定遇到这么一些问题,网页js渲染,接口加密等,以至于无法有效的获取数据,那么此时若想获取数据大致有两种方向,硬刚加密参数或使用渲染工具二者的各有所不同?刚加密参数:优势:爬取速度快,实效性。损耗资源更少劣势:耗费时间长,不懂的完全不会,会的也不一定能完全处理。难以在有效的时间内获取到数据渲染工具:webdervi,puppeteer,pyppeteer,splash优势:见效快

2020-12-19 14:30:30 1454 2

原创 Docker swarm部署控制

还记得我之前写过一片文章叫做《Docker快速部署项目,极速搭建分布式》,在那里讲述了如何去使用docker swarm,如何构建自己的私人镜像仓库。随着最近的业务量的增长,机子加多。对于docker swarm管理难度有上升的趋势。主要的问题有以下几个物理机配置不同(比如 CPU、内存等)部署着不同类型的服务(比如 Web服务、Job服务等)Swarm 集群中的节点跨机房,为了内部服务间通信更快,该如何分组部署。。。为了解决以上问题,以求更合理、更科学的管理部署所以有了今天这篇文章。doc

2020-12-13 23:59:15 477

原创 一文解决二叉树遍历

Brush the topic-BinaryTree大家好,这是Brush the topic的第一章节,BinaryTree。首先我说一下为什么把这个放在刷题的第一节呢?原因如下:培养、训练自己的计算机的思维。锻炼模版化,抽象化思维下面让我们一起去完成一个壮举,那就是完全解决二叉树的遍历问题,以及相关问题。are you ok?知识点回顾二叉树的遍历由于对于二叉树的遍历顺序不同,构造出三种不同的遍历方式前序遍历-根左右中序遍历-左根右后序遍历-左右根递归代码模版如下Pyt

2020-12-11 22:33:47 105

原创 GoLang内置包之time

文章目录time包定义源码怎么说基本使用时间戳操作时间ADDSubEqualBeforeAfter定时器时间格式化解析字符串格式的时间一寸光阴一寸金,寸金难买寸光阴时间离我们仅在咫尺,无论是在编程中时间还是日常生活中对于时间的记述都是离我们最近的,那么让我们一起来学习一下GoLang中内置包time。Let’s Gotime包定义源码怎么说const ( Nanosecond Duration = 1 Microsecond = 1000 * Nanosecond Mi

2020-12-02 00:44:59 298

原创 Golang 文件操作的那些事儿

Os模块的使用与源码研究文件:计算机中的文件是存储在外部介质(通常是磁盘)上的数据集合,文件分为文本文件和二进制文件。例如咱们常见的文件后缀名.exe,.txt,’.word’…等等文件的基本操作可简单分为增、删两类,也就是咱们所说的CURD(增删改查),也是基于此两类操作。可简单理解为打开文件夹、CURD、关闭文件夹。结束~golang对于文件基本上都是基于Golang的os模块,那让我们一起了解一下,那么Golang是如何对文件进行操作呢。Let’s Go~打开文件Golang中打开文件使用o

2020-11-28 00:10:19 265

原创 Golang-接口(interface)

文章目录接口(interface)疑问:只关心调用的函数,而不关注其类型接口的定义实现接口的条件接口类型变量值的接受者与指针接收者实现接口值的接受者实现接口指针接收者实现接口接口(interface)接口是一种类型最初的int、string、bool,再到稍微复杂的Array、Map、Slice。他们都称之为基础数据类型,以及到多维度符合类型的结构体。以及今日咱们所需要学习的接口。在Go语言编程中,Go(强类型语言),也就是说必须是一种具体的类型,当我们需要只关注能调用它的什么方法,而不关注它是什么

2020-11-26 21:53:36 98

原创 基于“结构体”实现简易版学生管理系统(Golang)

文章目录分析定义全局的学生类定义全局的管理(即操作类)定义菜单栏定义功能函数实现查看学生功能实现修改学生功能实现删除学生功能首先咱们在做项目之前,需要对项目进行分析。切记不可贪功冒进,从而导致无用功分析学生类管理者类菜单栏基于管理类实现功能查看添加修改删除退出结构图如下:采用自顶向下的编程思维对以上分析进行复述,先整体、后细节(先全局、后详细)实现如上结构定义全局的学生类在定义学生类之前,我们需了解学生类包含的字段。这里我只定义了Id、姓名。其中id为唯一,姓名可重

2020-11-23 23:43:36 407 2

原创 Golang结构体初探

结构体Go语言中的基础数据类型可以表示一些事物的基本属性,但是当我们想表达一个事物的全部或部分属性时,这时候再用单一的基本数据类型明显就无法满足需求了,Go语言提供了一种自定义数据类型,可以封装多个基本数据类型,这种数据类型叫结构体,英文名称struct。 也就是我们可以通过struct来定义自己的类型了。Go语言中通过struct来实现面向对象的相关概念。结构体的定义// 使用type和struct关键字来定义结构体type 类型名 struct { 字段名 字段类型 字段名 字

2020-11-21 21:46:48 67

原创 Golang特殊类型-切片(Slice)

文章目录切片的本质切片的定义var 声明切片Make 初始化切片判断切片是否为空切片不能直接比较切片的赋值拷贝切片遍历切片添加元素切片底层内存原理探究引入源码解读复制切片删除元素总结及注意点在上篇数据类型-Array中写到因为数组的长度是固定的并且数组长度属于类型的一部分,所以数组有很多的局限性func arraySum(x [5]int) int{ sum := 0 for _, v := range x{ sum = sum + v } return sum}这个求和函数只

2020-11-19 10:37:56 474

原创 Golang数组(Array)

文章目录Golang ArrayArray(数组)的介绍Array(数组)的定义Array(数组)的定义遍历多维数组(嵌套数组)数组是值类型Golang ArrayArray(数组)的介绍数组是同一种数据类型元素的集合。 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化。 基本语法:var 数组变量名 [数组数量]数组类型//数组的长度必须是常量,并且长度是数组类型的一部分。// 一旦定义,长度不能变。 [1]int和[2]int是不同的两种类型。数组可以通过

2020-11-19 10:12:46 930

原创 Golang数据类型(整型、Bool、String)

文章目录Golang Data Type基本数据类型整形浮点型复数布尔值字符串byte和rune类型修改字符串类型检查类型转换字符串和数字互转补充占位的相关用法普通占位符整数占位符浮点数和复数的组成部分(实部和虚部)字符串与字节切片6)指针StringsGolang Data TypeGo语言中有丰富的数据类型,除了基本的整型、浮点型、布尔型、字符串外,还有数组、切片、结构体、函数、map、通道(channel)等。Go 语言的基本类型和其他语言大同小异。基本数据类型整形整型分为以下两个大类:

2020-11-19 10:11:24 284

原创 Golang基础指令

Golang基础指令无论多么复杂的程序,多么复杂的逻辑。基本是由以下三种构成(当然除非其原本业务逻辑客观复杂)大道至简、速归同途,找到这种感觉。come on~条件分支语句if 条件分支语句Golang条件语句是通过一条或多条语句的执行结果(True或者False)来决定是否执行的代码块。Golang程序语言指定任何非0和非空(null)值为true,0 或者 null为false。Golang 编程中 if 语句用于控制程序的执行,基本形式为:func main() { i:= 3

2020-11-19 10:08:39 124

原创 Golang 运算符及位运算

本章目标:了解运算符、运算符的种类、各运算符的特征进制位运算符及位运算运算符优先级文章目录什么是运算符?算数运算符关系运算符逻辑运算符位运算符常见进制:其他进制互转:反码补码赋值运算符运算符优先级什么是运算符?运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”。在vb2005中运算符大致可以分为5种类型:算术运算符、位运算符、 关系运算符、赋值运算符、逻辑运算符。算数运算符运算符描述+相加.

2020-11-19 09:53:16 319

原创 Golang-常量、变量、匿名变量、itoa

常量、变量、匿名变量常量:一旦声明即不可被改变变量:声明后可以发生改变。若初始化后未赋值则为初始值例如:int -> 0Bool -> falseString -> 空。。。关键字与保留字关键字是指编程语言中预先定义好的具有特殊含义的标识符。 关键字和保留字都不建议用作变量名。关键字 break default func interface select case defer go

2020-11-19 09:51:08 278

原创 Golang搭建开发环境

Golang开发环境搭建Go 语言开发包国外:https://golang.org/dl/国内(推荐): https://golang.google.cn/dl/编辑器Golang:https://www.jetbrains.com/go/Visual Studio Code: https://code.visualstudio.com/搭建 Go 语言开发环境,需要先下载 Go 语言开发包。查看操作系统及版本Windows:Mac:Linux:终端输入uname -a,示

2020-11-19 09:45:32 293

翻译 Golang简介

Programing Language - Golang文章目录Programing Language - Golang摘要描述历史为什么需要学习Golang?硬件的局限性Go 天生支持并发Go 直接在底层硬件上运行用 Go 编写的代码易于维护Go 来势汹汹Golang官网地址:https://golang.org/Golang官方文档:https://golang.org/doc/Golang Packages:https://golang.org/pkg/Golang中文网:https:/

2020-11-19 09:42:17 483

原创 二次封装request.函数,构造通用请求函数

Requests二次封装,构造通用的请求函数文章目录Requests二次封装,构造通用的请求函数Requests的安装初探requests基本使用二次封装请求函数的封装文本编码问题区分二进制与文本的解析默认Ua本章将告诉你该如何去对request模块进行二次封装,暂时并不会告诉你HTTP协议及原理、URL等相关。当然你会使用然后在来阅读此文章一定会另有所获。我已经迫不及待要告诉你这个小秘密,以及想与你交流了。没时间解释了,快来一起和我一起探讨相关的内容吧官方文档对requests的定义为:Reques

2020-11-13 09:55:39 787

原创 详解K8s安装及“陷阱”

kubernetes-install秉承着烂笔头不如好记性的的歪门邪道,特此系统的记录kubernetes的安装全流程,及踩坑记录。默默说一句坑真多。来吧,我们一起来快速拿下它并且有意识的规避各种坑,请指教文章目录kubernetes-install操作系统初始化安装Dockerkubernetes安装测试kubernetes操作系统初始化关闭防火墙(all)# 临时关闭防火墙systemctl stop firewalld# 永久关闭防火墙systemctl disable fire

2020-10-31 07:04:47 519

原创 成为你任何想成为的人

你可以成为你任何想成为的人您好,很荣幸你能点开此文章。本文主要为自我学习总结与规划并想与你讨论以下几个话题如何成为程序员?程序员的学习路线该如何?推荐的学习方法-十步学习法(《软技能-代码之外的生存技能》-John Z. Sonmez)如果您有自己独特的建议或更适合自己的方法,欢迎留言或联系到我(联系方式在最下方)如何成为程序员?程序员(Programmer,Computer Programmer或Coder),它可以指在程序设计某个专业领域中的专业人士,或是从事软件撰写,程

2020-10-25 05:16:54 413

原创 Point算法及思想

文章目录PointerIntroductionwhat's Pointer?When and where to use it?How to use it?Practical topicsTwoSumMove ZoreLinked List CyclePointerIt includes python, but not just python, but also C, Java, any programming languageIntroductionPointers are an essenti

2020-10-12 04:02:43 526

原创 Hadoop概况与搭建

Hadoop Overview and InstallationBasic pseudo distributed construction文章目录Hadoop Overview and InstallationAbstractWhat is Hadoop?(Hadoop Outline)Why do you need to use Hadoop?(Hadoop Function)**Mix Disparate Data Sources****Ingest Bulk Data****Ingest Hi

2020-09-27 00:12:28 202

原创 负载均衡简介与搭建

文章目录负载均衡简介与搭建简介架构特点产品优势SLB负载均衡搭建云服务器状态确认负载均衡配置登录阿里云管理控制台点击左侧导航栏的 **产品与服务** ,下拉菜单中,在 **弹性计算** 条目下选择 **负载均衡**权重配置会话保持会话保持负载均衡简介与搭建简介负载均衡(Server Load Balancer)是将访问流量根据转发策略分发到后端多台云服务器(ECS实例)的流量分发控制服务。负载均衡扩展了应用的服务能力,增强了应用的可用性。负载均衡通过设置虚拟服务地址,将添加的ECS实例虚拟成一个高性

2020-09-25 21:23:46 2534

原创 虚拟容器化技术实现之Docker

Docker虚拟容器化技术并不是docker,并不等于docker。docker仅是虚拟容器化技术的体现,与我们较近。Dockers简介docker是DaoCloud基于Go语言实现的云开源项目主要目的:Build、ship、and Run Any App,Anywhere主要架构为:镜像(images)、容器(container)、仓库(repository)官网地址: https://www.docker.com/官方文档: https://docs.docker.comGitHu

2020-09-24 19:48:22 113

原创 虚拟化技术之Docker简介

虚拟化技术简介首先我们需要学习一个知识,或多或少会有所目标或需求。那么我在对于选择的时候会进行相对应的分析,优中择优?什么是虚拟化化技术?IT里的容器技术是英文单词Linux Container的直译。container这个单词有集装箱、容器的含义(主要偏集装箱意思,如果要形象的理解Linux Container技术的话,还是得念成集装箱会比较好。我们知道,海边码头里的集装箱是运载货物用的,它是一种按规格标准化的钢制箱子。集装箱的特色,在于其格式划一,并可以层层重叠。为什么需要使用虚拟化技术?

2020-09-24 19:38:19 168

原创 追根揭底-循环、迭代、分治、回溯

在计算机的世界中由最基本的for loop、while loop、if…else无限衍生,无论多么复杂的逻辑最后大多可归纳为以上三种。当然除非原本逻辑无重复性,无条件分支。一、循环(重复)不断的重复、有始有终循环实现private loop(){for(start; end; loop termination){expression1;expression2;expression3;}}def loop():for start in end/loop_termination:exp

2020-09-23 22:32:24 267

原创 详解循环、迭代、递归、分治(Leet Code 509 斐波那契数列),实际运用

Multiple solutions of Fibonacci (Python or Java)本章是用英文写的,作为或想成为一名优秀的攻城狮,习惯阅读英文文档将使你受益良多。例如更好的查看最新版的官方文档、与国外友人交流、等等 其实英文的生词也并不多,其中90%的英文都在代码里,当然这其中的精华也在代码里,代码相信大部分伙计还是都可以看懂.所以,请不要惊慌。对于English,让我们一起取克服它、习惯它、拥抱它。然后把它锤倒在地,相信你可以的。 GO, Go, GO如果实在不行,各种页面翻译来一手。莫

2020-09-23 22:26:08 160

原创 手摸手搭建Linux FTP服务

手摸手搭建Linux FTP服务文章目录手摸手搭建Linux FTP服务SSH连接服务器配置vsftpd安装验证安装匿名用户模式配置客户端测试SSH连接服务器打开终端或其他工具(可连接远程即可)配置vsftpdvsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软

2020-09-23 21:57:10 70

原创 浅谈排序算法与优化(仅部分,Updating)

浅谈排序算法与优化(仅部分,Updating)列表排序排序将一组“无序”的记录序列调整为“有序”的记录序列列表排序将无序的列表变为有序列表输入:列表;输出:有序列表升序与降序内置排序函数:sort(),基于timsort排序算法Timsort是一种混合稳定排序算法,源自归并排序(merge sort)和插入排序(insertion sort)有兴趣的伙计可以看看这两篇文章sort算法运用原理1sort算法运用原理2常见排序算法LOW:冒泡:列表每两个相邻的数

2020-07-20 02:10:23 92

空空如也

空空如也

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

TA关注的人

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