自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 centos7安装kubernets集群

一定确保全部Running状态,再安装网络插件!多等一会,我们发现,所有的pod都是Running状态了。任意一个节点的ip:30306 即可进入nginx初始页面。注释 /dev/mapper/rhel-swap这一行。我们发现coredns没有启动,需要安装网络插件。上面命令在各个node上执行,将节点加入集群。准备三台虚拟机,centos7系统。

2023-09-09 23:42:24 288

转载 IOS中通过快捷捷径打开场所码或者健康码

本文标题其实应该叫“使用快捷捷径打开任意微信小程序页面”,因为本质上这篇文章就是说明如何在获取微信小程序任意界面的页面路径,以及通过Universal link在微信中打开对应页面的方法(本文使用“跨时空”APP来达到此目的)。其实此方法来源于微信公众号发表文章时,需要在文章中打开指定小程序页面的功能,本意上是增加小程序的使用场景,没想到给了我们可乘之机😁。,点击上方的“小程序”,然后在弹出窗中输入对应小程序的全称或AppId(此处以。后,在新的弹窗中输入自己的微信号,点击开启;里面),点击下一步;

2022-11-27 13:54:10 1497 1

原创 Go语言面试题合集(2022)

强三色不变式:不存在黑色对象引用白色对象的情况了, 因为白色会强制变成灰色。当全部三色标记扫描之后,栈上有可能依然存在白色对象被引用的情况,所以要对栈重新进行三色标记扫描, 但这次为了对象不丢失, 要对本次标记扫描启动STW暂停. 直到栈空间的三色标记结束。如果有个goroutine一直占用资源,那么GMP模型会从正常模式转变为饥饿模式(类似于mutex),允许其它goroutine使用work stealing抢占(禁用自旋锁)。

2022-11-26 21:04:55 2470 6

原创 Go语言数据类型-函数

引用类型:slice,map,接口,channel,指针。值类型:数值型系列,字符串,bool,数值,结构体。那么问题来了:函数属于什么类型?先下结论:函数是指针类型。

2022-11-26 16:58:55 258

原创 Go语言类库-reflect(反射)

反射是计算机程序在运行时可以访问,检查和修改本身状态或者行为的一种能力,大多数编程语言都支持反射。Go语言中,使用反射可以在程序执行过程中更新变量和检查对象的属性,调用对象的方法。reflect.TypeOf 返回reflect.type接口类型的变量(其实包内部得到的是一个rtype的结构体指针,在返回是转为了type接口变量),通过调用type接口的方法,能获取类型相关的信息;

2022-11-25 01:16:18 699

原创 解决jetbrain(datagrip,goland)系列工具闪退问题

我默默地读着这句话,隐隐约约仿佛猜测应该是破解安装包的问题,我找到goland的bin文件,在iTerm上执行,果然报错了,弹出了说GOLAND_VM_OPTIONS="xxx"的目录找不到,这下就明白了。由于笔者mac电脑上goland好久未更新了,今日得闲,卸载了旧的goland,从jetbrain官方下载goland 2022最新版本的,安装–>打开–>GG。这里就会有一些关于jetbrain的变量(我这里清除了,所以看不到),太多了,手动清除太麻烦了,接下来需要找到设置这些环境变量的文件。

2022-11-23 14:36:17 2267 2

原创 同步异步,阻塞非阻塞和IO模型

各个IO Model的比较如图所示:通过上面的图片,可以发现non-blocking IO和asynchronous IO的区别还是很明显的。在non-blocking IO中,虽然进程大部分时间都不会被block,但是它仍然要求进程去主动的check,并且当数据准备完成以后,也需要进程主动的再次调用recvfrom来将数据拷贝到用户内存。而asynchronous IO则完全不同。它就像是用户进程将整个IO操作交给了他人(kernel)完成,然后他人做完后发信号通知。

2022-11-21 16:06:52 645

原创 Elasticsearch面试问题汇总

Elasticsearch 是基于 Lucene 的 Restful 的分布式实时全文搜索引擎,每个字段都被索引并可被搜索,可以快速存储、搜索、分析海量的数据。全文检索是指对每一个词建立一个索引,指明该词在文章中出现的次数和位置。当查询时,根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。

2022-11-18 18:43:36 4639

原创 Redis常见面试题(2022)

Redis 是一个开源(BSD 许可)、基于内存、支持多种数据结构的存储系统,可以作为数据库、缓存和消息中间件。它支持的数据结构有字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)等,除此之外还支持 bitmaps、hyperloglogs 和地理空间( geospatial )索引半径查询等功能。

2022-11-17 18:00:05 1097

原创 MySQL面试问题汇总(2022)

MySQL面试题汇总,包含架构(锁、事务、引擎、索引)和数据库优化等问题。

2022-11-17 01:07:38 2353

原创 读《高性能MySQL》笔记---索引

索引是存储引擎用于快速找到记录的的一种数据结构。

2022-11-15 23:37:54 586

原创 读《高性能MySQL》笔记---数据库结构设计

MySQL将DECIMAL数字打包保存到一个二进制字符串中(没4个字节存9个数字),所以decimal(18,9),说明该小数一个18个数字,小数点后9个数字,该数值一共占4+4+1(小数点占一个字节)=9个字节,decimal最多允许65个数字,在计算时会转化为DOUBLE计算。枚举列可以把一些不重复的字符串存储成一个预定义的集合,在mysql的内部会将每个值在列表中的位置保存为整数,并且在表的.frm文件中保存“数字-字符串”映射关系的“查找表”。表结构的列不能过多,一般限制在32个左右。

2022-11-14 21:35:05 250

原创 读《高性能MySQL》笔记---MySQL架构

默认情况下,每个客户端连接都会在服务器进程中拥有一个线程,该连接的查询只会在这个单独的线程中执行,该线程驻留在一个内核或者CPU上核心或者CPU中运行。服务器会负责缓存线程,因此不需要为每一个新建的连接创建或者销毁线程。MySQL提供了一个API,支持线程池,可以使用池中少量的线程来服务大量的连接。资源上的读锁是共享的,或者说是相互不阻塞的,多个客户端可以同时读取同一个资源而互不干扰。写锁则是排他的,一个写锁既会阻塞读锁也会阻塞其他的写锁,这是出于安全策略的考虑,只有这样才能确保在特定的时间点只有一个客户端

2022-11-14 16:30:07 1054

原创 Go语言类库-sync

通道并不是Go支持的唯一的一种并发同步技术。而且对于一些特定的情形,通道并不是最有效和可读性最高的同步技术。本文下面将介绍sync标准库包中提供的各种并发同步技术。相对于通道,这些技术对于某些情形更加适用。sync标准库包提供了一些用于实现并发同步的类型。这些类型适用于各种不同的内存顺序需求。对于这些特定的需求,这些类型使用起来比通道效率更高,代码实现更简洁。

2022-11-09 22:10:00 960

原创 Go语言类库-context

context,中文译作“上下文”,准确说它是 goroutine 的上下文,包含 goroutine 的运行状态、环境、现场等信息。是一种并发安全在 goroutine 之间传递上下文信息,包括:取消信号、超时时间、截止时间、k-v 等的类型。

2022-11-09 15:10:14 309

原创 Go语言类库-errors

题外话:PathError结构体有error字段,说明这个结构体的Err属性是实现了error接口的类型的对象,于是就会有error接口的方法,所有PathError的对象也会有error接口的方法,也就是说PathError实现了error接口。这里New方法实际上是返回的是一个实现了error接口的类型的变量,这里是errorString结构体变量。能知道错误发生了,但是无法看到他内部到底是什么,不知道具体类型是什么。这样做的不好的地方是自定义的错误和使用错误的包之间形成了依赖关系,代码不够优雅。

2022-11-06 19:28:16 423

原创 defer函数的实践和原理

编译器会把 go 代码中 defer 语句翻译成对 deferproc 函数的调用;deferproc 函数通过 newdefer 函数分配一个 _defer 结构体对象并放入当前 goroutine 的 _defer 链表的表头;在 _defer 结构体对象中保存被延迟执行的函数 fn 的地址以及 fn 所需的参数;返回到调用 deferproc 的函数继续执行后面的代码。func x() {

2022-11-04 11:54:02 1063

原创 Go语言数据结构-图

图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V, E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。线性表和树可以看做特殊的图。线性表中我们把数据元素叫元素,树中将数据元素叫结点,在图中数据元素,我们则称之为顶点(Vertex)线性表可以没有元素,称为空表;树中可以没有节点,称为空树;但是,在图中不允许没有顶点(有穷非空性)线性表中的各元素是线性关系,树中的各元素是层次关系,而图中各顶点的关系是用边来表示(边集可以为空)。

2022-10-27 19:12:30 843

原创 Go语言数据结构-堆

堆是完全二叉树,且根节点比子节点都大的二叉树称为大根堆;反之称为小根堆。堆的英文是heap;heapSize = 节点个数。

2022-10-27 19:07:13 708

原创 Go语言数据结构-二叉树

二叉树是一种数据结构,它是由 n(n≥1) 个有限节点组成一个具有层次关系的集合。根节点:最上面的节点;叶子节点:左右子节点都为nil的节点。每一个子树,左节点比根节点小,右节点比根节点大的二叉树,二叉树的节点无重复值。如果二叉树中除了叶子结点,每个结点的度都为2,则此二叉树称为满二叉树。如果二叉树中除去最后一层节点为满二叉树,且最后一层的结点依次从左到右分布,则此二叉树被称为完全二叉树。对于任何一个子树来说,左树高度和右树高度差不超过1。

2022-10-27 00:32:44 860

原创 Go语言数据结构-链表

linked list,由一系列结点node(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。我们常说的链表,结构有单向链表、双向链表和环形链表。

2022-10-27 00:29:38 659

原创 Go语言数据结构-队列

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列本身是有序列表,数组或链表实现,若使用数组的结构来存储队列的数据,则队列数组的声明如上图, 其中 maxSize 是该队列的最大容量。队列增加数据时候 rear增加;队列消费数据时候 front改变。

2022-10-25 23:41:08 708

原创 Go语言数据结构-栈

栈是一种先入后出的有序列表。限制了线性表中元素的插入和删除只能在线性表的同一端进行。允许插入和删除的一端,称为栈顶(Top),另一端为固定的一端,称为栈底(Bottom)。

2022-10-24 18:46:20 620

原创 陶辉Nginx核心100讲笔记

陶辉Nginx核心100讲笔记

2022-10-17 23:18:57 1542

原创 PHP依赖注入和控制反转(DI,IoC)

PHP依赖注入和控制反转(DI&&IoC)User: Jeremy.KeTime: 2019/6/25 3:321 理论分析1.1 概念依赖注入和控制反转是对同一件事情的不同描述,从某个方面讲,就是它们描述的角度不同。(1)依赖注入是从应用程序的角度在描述,可以把依赖注入,即:应用程序依赖容器创建并注入它所需要的外部资源;(2)而控制反转是从容器的角度在描...

2019-06-25 05:46:37 3509

原创 读中国通史的简注(周朝开始)

=周=周文王 周武王 周成王周公摄政首都 宗周镐京(西安) 成周洛邑(河南洛阳)分王制和宗法制 周礼周穆王 好大喜功 犬戎部落矛盾周幽王 褒姒 烽火戏诸侯周平王迁都洛邑 东周郑国 河南新郑市 郑庄公 强大=春秋=周平王东迁到周元王元年共249年齐(淄博):管仲截杀公子小白(齐桓公)齐桓公拜管仲为相 挟天子以令诸侯北上救燕燕庄公越国相送 齐桓公割地予燕齐攻...

2019-06-24 12:58:07 1017

原创 CI CD(gitlab ci来实现)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4fIcLeXQ-1668671555828)(https://github.com/jeremyke/PHPBlog/raw/master/Pictures/20190606173440.png)]安装步骤设置gitlab安装源安装访问2. 本地安装gitlab CI安装Docker安装gitlab ci runner设置Docker权限(将gitlab-runner用户添加到doc

2019-06-23 19:13:59 699

原创 PHP常用六大设计模式

单例模式特点:三私一公:私有的静态变量(存放实例),私有的构造方法(防止创建实例),私有的克隆方法(防止克隆对象),公有的静态方法(对外界提供实例)应用场景:程序应用中,涉及到数据库操作时,如果每次操作的时候连接数据库,会带来大量的资源消耗。可以通过单例模式,创建唯一的数据库连接对象。<?phpclass Singleton{ private static $_inst...

2019-04-03 17:05:22 19373 5

原创 关于Docker

什么是Docker?Docker是一个容器化平台,它以容器的形式将您的应用程序及其所有依赖项打包在一起,以确保您的应用程序在开发,测试或生产的任何环境中无缝运行。Docker容器,将一个软件包装在一个完整的文件系统中,该文件系统包含运行所需的一切:代码,运行时环境,系统工具,系统库等可以安装在服务器上的任何东西。这可以保证软件始终运行相同,无论其环境如何。Docker特点轻量,在一...

2019-02-25 19:02:46 192 1

原创 让Swoole完美支持ThinkPHP5

TP5的运行机制任何请求都会经过tp5的入口文件,载入框架的配置文件,启动进程,然后处理请求。在这个index.php的入口文件中,可以看到,它先定义的APP_PATH这个常量,然后引入的框架的启动文件start.php,那我们就去看下start.php这个文件做了些什么。在这里,它先加载了基础文件base.php,然后启动框架run,这个时候就开始处理请求了。常规的nginx,Apa...

2018-12-17 19:29:21 12043 6

原创 Web服务器(Nginx,Apache)和I/O模型

Nginx工作原理常用配置特点分析Apache工作原理常用配置特点分析Nginx+Apache搭建高性能服务器集群工作原理

2018-12-11 18:42:38 787

原创 正向代理和反向代理

什么是正向代理?正向代理(forward proxy) ,一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并制定目标(原始服务器),然后代理向原始服务器转发请求并将获得的内容返回给客户端,客户端才能使用正向代理。我们平时说的代理就是指正向代理。上图解释:客户端向目标服务器发送请求,由于目标服务器被墙了,这个时候可以通过不受限制的(中间服务器)代理服务...

2018-12-10 13:00:39 149

转载 Redis配置详解

##redis配置详解[转自:http://www.cnblogs.com/joshua317/p/5635297.html]# Redis configuration file example.## Note that in order to read the configuration file, Redis must be# started with the file path a...

2018-12-10 12:02:18 137

原创 CPU,进程,线程间的执行关系

名词解释(个人理解)CPU计算机的中央处理器,一般为多核(即:多个同样功能的设备)。认同一个事实:单核CPU,在某个特定的时间点(微观时间上),只能处理一个线程。进程程序关于某个数据集合上的一次运行活动,是一个过程的定义。也就是说程序运行时(进程),系统就会分配给他独立的资源(CPU和内存),所以说:系统进行资源分配和调度的独立单位。线程线程是进程的的一个实体,也就是说具体执行程序的劳...

2018-12-09 01:59:36 1391 4

原创 php的运行原理,浅析web server和PHP的通信

PHP运行原理外部请求来到web server(nginx/apache/IIS),web服务器判断请求是静态页面是PHP请求,如果是静态页面,直接根据路径拿到html文件,返回给前端;如果是PHP请求,就需要把这个请求交给PHP处理。问题来了,web server 如何把这个请求交给php呢?我们需要定义一种通信协议,是的两者之间可以通信。这个通信协议就是CGI。CGI定义:公共网管。是w...

2018-12-07 11:34:19 644

原创 初识RPC

什么是RPC?RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层【参考下图】。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。网络数据传输...

2018-11-25 17:33:44 156

原创 swoole5-使用swoole管理进程,毫秒计时器和异步读取文件

swoole管理进程小案例:修改某个进程的名字?未改之前案例代码&lt;?php//修改进程名称swoole_process::name('php_process_newname');sleep(1000);修改后小案例:创建一个子进程,把其名字设置为worker-process?案例代码&lt;?php/** * Created by PhpStorm. * U...

2018-11-21 11:46:21 951

原创 swoole4-swoole创建Mysql连接池

一 .什么是mysql连接池场景:每秒同时有1000个并发,但是这个mysql同时只能处理400个连接,mysql会宕机。解决方案:连接池,这个连接池建立了200个和mysql的连接,这1000个并发就有顺序的共享这连接池中的200个连接。这个连接池能够带来额外的性能提升,因为这个和mysql建立连接的这个过程消耗较大,使用连接池只需连接一次mysql。连接池定义:永不断开,要求我们的...

2018-11-20 17:43:54 4022

原创 swoole3-搭建websocket服务器

websocket服务器的事件事件名作用HandShake在websocket客户端连接websocket服务器时,需要给websocket客户端发送握手响应open已经和websocket客户端握手成功后,触发这个事件message这个websocket服务器收到这个websocket客户端发送的消息时触发close当这个websocket服务器和...

2018-11-20 13:28:44 679

原创 swoole2-用swoole搭建http服务器

一.线程和进程的模型启动swoole的时候会启动Manager进程和Master进程。对于Manager进程,用于管理Worker进程(我们业务层的逻辑代码一般放在这里)和Task进程(用于在某个特定的时间或者条件下执行的代码)。对于Master进程,用于底层的开发,后面详细介绍.二.swoole执行过程(1)swoole支持的常用的事件列表事件名称作用onSt...

2018-11-19 20:27:15 1841

Go八股文大全,面试宝典

Golang八股文大全,面试必备

2023-03-03

空空如也

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

TA关注的人

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