- 博客(123)
- 收藏
- 关注
原创 RabbitMQ 简介
文章目录什么是消息中间件点对点模式发布订阅模式消息中间件的作用解耦异步通信流量削峰引入消息队列的优缺点RabbitMQRabbitMQ 的特点可靠性灵活的路由集群联合高可用的队列多协议广泛的客户端可视化管理工具追踪插件系统RabbitMQ是目前非常热门的一款消息中间件,凭借其高可靠、易扩展、高可用及丰富的功能特性受到越来越多公司的青睐。什么是消息中间件消息(Message)是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串、 JSON 等,也可以很复杂,比如内嵌对象。消息队列中间件,也可
2022-04-19 14:52:36
3294
原创 学习 Elasticsearch 一定要清楚的问题
什么是搜索?搜索就是从一堆事物中仔细查找,直到找到我们想要的东西。比如我们说想寻找任何的信息的时候,就会用百度,然后输入关键字去搜索一下,然后期望通过这个关键字得到对应的信息。什么是结构化搜索?结构化搜索是指有关探询那些具有内在结构数据的过程。比如日期、时间和数字都是结构化的:它们有精确的格式,我们可以对这些格式进行逻辑操作。比较常见的操作包括比较数字或时间的范围,或判定两个值的大小。在结构化查询中,我们得到的结果总是非是即否,要么存于集合之中,要么存在集合之外。结构化查询不关心数据的相关度
2022-02-10 14:19:22
1524
原创 Linux 设置环境变量
临时添加环境变量PATH# 可通 过export 命令,如:export PATH=$PATH:/usr/local/go/bin将 /usr/local/go/bin 目录临时添加到环境变量中,这种方式重启之后将会失效所有用户永久添加环境变量:# 编辑/etc/profile文件 vim /etc/profile # 文件末尾添加:export PATH=$PATH:/usr/local/go/bin# 刷新环境变量source /etc/profile注意:Linux
2021-11-18 18:40:00
1834
原创 GOPATH 与 Go 的依赖管理 Go Mod
依赖管理工具使用 PHP 作为开发语言的同学都知道,最初引用外部类库包时需要一个个下载,然后再一个个手动导入;如果使用的外部类库中还有引用的类库万一没在包里,还得去找对应的类库包,然后再导入,非常麻烦;幸好后来有了 composer,所有的类库包都是集中式管理的,在一个地方就可以找到并一键下载引用,极大地方便了类库包的引用。在 Go 语言中,第三方依赖的管理工具经过了一个漫长的发展过程。在 Go 1.11 发布之前 govendor、dep 等工具百花齐放。直到 Go mod 出现,开始一统天下。在这
2021-11-14 18:01:42
971
原创 使用 Vscode 开发 Go
安装go插件启动vscode选择插件->搜go选择Go for Visual Studio Code插件点击安装即可。如图:安装Go语言开发工具包在Go语言开发的时候为我们提供诸如代码提示、代码自动补全等功能。Windows平台按下Ctrl+Shift+P,Mac平台按Command+Shift+P,这个时候VS Code界面会弹出一个输入框,如下图:我们在这个输入框中输入>go:install,下面会自动搜索相关命令,我们选择Go:Install/Update Tools这个命令
2021-11-11 18:50:30
2365
原创 Go 开发环境安装
Go 语言支持以下系统LinuxFreeBSDMac OS X(也称为 Darwin)Windows安装包下载地址为:https://golang.google.cn/dl/。这里采用Windows版本,开始傻瓜式下一步安装。安装完成后需要配置一下环境变量,默认情况下 .msi 文件会安装在 c:\Go 目录下。将 c:\Go\bin 目录添加到 Path 环境变量中;创建Go的工作目录(源代码目录)添加到 GOPATH环境变量中。GOPATH 目录约定有三个子目录:src 存
2021-11-07 15:44:27
388
原创 TP6使用 think-queue 来实现普通队列和延迟队列
###TP6 队列TP6 中使用 think-queue 可以实现普通队列和延迟队列。think-queue 是thinkphp 官方提供的一个消息队列服务,它支持消息队列的一些基本特性:消息的发布,获取,执行,删除,重发,失败处理,延迟执行,超时控制等队列的多队列, 内存限制 ,启动,停止,守护等消息队列可降级为同步执行消息队列实现过程1、通过生产者推送消息到消息队列服务中2、消息队列服务将收到的消息存入redis队列中(zset)3、消费者进行监听队列,当监听到队列有新的消息时,获
2021-10-26 18:23:28
4669
转载 php-fpm 运行模式
fpm的实现就是创建一个master进程,在master进程中创建并监听socket,然后fork出多个子进程,这些子进程各自accept请求,子进程的处理非常简单,它在启动后阻塞在accept上,有请求到达后开始读取请求数据,读取完成后开始处理然后再返回,在这期间是不会接收其它请求的,也就是说fpm的子进程同时只能响应一个请求,只有把这个请求处理完成后才会accept下一个请求,这一点与nginx的事件驱动有很大的区别,nginx的子进程通过epoll管理套接字,如果一个请求数据还未发送完成则会处理下一个
2021-09-18 22:02:02
597
转载 一次php请求过程图解
一个php页面的请求过程说明(1) 在本机浏览器中输入网址:my.test.com,请求被发送到hosts文件指定的192.168.100.142:80,即我本机虚拟机的80端口;(2) 监听192.168.100.142:80的nginx接收到此次请求,由于这是一次Http请求,所以nginx的核心模块会把它交给Http模块来选择合适的Handler模块。(3) 经过请求初始化与请求解析,确定请求/{rootPath}/yii/frontend/web/index.php页面的内容。由于这是一个p
2021-09-18 21:59:24
648
转载 使用企业微信群机器人实现生产告警
如何使用群机器人消息类型及数据格式文本类型markdown类型图片类型图文类型文件类型模版卡片类型文本通知模版卡片图文展示模版卡片消息发送频率限制文件上传接口如何使用群机器人在终端某个群组添加机器人之后,创建者可以在机器人详情页看的该机器人特有的webhookurl。开发者可以按以下说明a向这个地址发起HTTP POST 请求,即可实现给该群组发送消息。下面举个简单的例子.假设webhook是:https://qyapi.weixin.qq.com/cgi-bi.
2021-09-02 15:12:14
2360
2
转载 Linux 日志切割滚动工具logrotate
日志切割、滚动需求的背景日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到。对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题,如果不及时处理,当日志文件把服务器的硬盘资源占满时,服务器就会宕机。除此之外,处理一个单个的庞大日志文件也常常是件十分棘手的事,为了节省空间和方便整理,可以将日志文件按时间或大小分成多份,删除时间久远的日志文件,这样有利于我们查看。这就是通常说的日志滚动 (log rotation)。logrotate 介绍刚
2021-08-28 11:39:31
907
原创 线上日志怎么打印?一篇告诉你正确的日志规范
文章目录日志概述为什么要记录日志?日志打印规范记录日志的基本原则日志文件命名日志滚动日志的级别日志的格式什么时候该打印日志日志的可读性日志的性能占用磁盘空间其它注意项日志概述日志就是记录程序的正常或者异常行为,或者用户发生的操作、操作的流程、结果等。为什么要记录日志?我们平时在写程序代码过程中,一般会把主要精力集中在功能实现上,然后自测代码的时候,可以通过多种手段调试、定位问题,往往会忽视日志的重要性。然而在功能上线后一旦发生异常,第一件事就是要弄清楚当时发生了什么,用户当时做了什么操作,数据是怎
2021-08-22 12:30:26
3021
转载 PHP运行模式
SAPI所谓 PHP 运行模式, 其实指的是 SAPI (Server Application Programming Interface,服务端应用编程端口 )。SAPI 为 PHP 提供了一个和外部通信的接口, PHP 就是通过这个接口来与其它的应用进行数据交互的。针对不同的应用场景, PHP 也提供了多种不同的 SAPI ,常见的有:apache、apache2filter、apache2handler、cli、cgi、embed 、fast-cgi、isapi 等等。[外链图片转存失败,源站可能
2021-08-20 15:48:46
217
原创 在docker的PHP镜像中安装Swoole
安装 swoole# 先进入docker的PHP镜像docker exec -it php# 尝试安装swoole,如果失败,会生成安装目录docker-php-ext-install swoole# 1.获取swoole安装包地址:https://pecl.php.net/package/swoole#2. 解压swoole安装包tar –zxvf swoole-4.6.6.tar#3. 将解压出来的安装包copy到php容器docker cp /home/swoole php:
2021-08-16 13:23:25
1303
原创 docker 搭建lnmp环境
文章目录安装 dockerdocker 安装 nginxdocker 安装 phpdocker 搭建 mysqldocker 搭建 redis安装 docker使用 yum 命令进行安装:yum -y install docker在启动之前我们需要修改docker的镜像源:vim /etc/docker/daemon.json{ "registry-mirrors": ["https://ftnejmh3.mirror.aliyuncs.com"]}完成后运行 systemctl
2021-08-12 16:11:50
389
原创 Swoole 核心概念
Swoole 是一个使用纯 C 语言编写的(Swoole 4 开始逐渐改为通过 C++ 编写),基于异步事件驱动和协程的并行网络通信引擎,为PHP提供高性能网络编程支持。可以看到,这段介绍 swool 的话中包含了很多关键词,如事件、异步、协程、并行、网络通信引擎等。那这些关键词分别是什么意思呢?什么是事件?某一刻发生的动作可以称之为事件,比如:js 中的鼠标和键盘点击事件什么是异步方式?在介绍异步方式之前,先了解一下同步、异步、阻塞以及非阻塞的概念。同步机制和异步机制网络通信中的同步机制和异
2021-07-24 10:28:20
255
原创 Swoole 安装
注意:安装 Swoole 的前提是系统环境中已经安装好 PHP,并且版本要满足swoole的要求编译安装下载 swoole 源码,并解压缩https://github.com/swoole/swoole-src/releaseshttps://pecl.php.net/package/swoolehttps://gitee.com/swoole/swoole/tags开始编译tar -zxvf /usr/local/test.tar.gzcd swoole-src-4.5.6
2021-07-07 17:23:25
736
2
原创 Swoole 介绍
什么是 SwoolSwoole 是一个使用纯 C 语言编写的(Swoole 4 开始逐渐改为通过 C++ 编写),基于异步事件驱动和协程的并行网络通信引擎,为PHP提供高性能网络编程支持。Swool的特点Swoole 是运行在PHP下的一个extesion扩展,实际上与普通的扩展不同。普通的扩展只是提供一个库函数。而 Swoole 扩展在运行后会接管PHP的控制权,进入事件循环。当IO事件发生后,swoole会自动回调指定的PHP函数。Swoole 底层内置了异步非阻塞、多线程的网络IO服务器。PH
2021-07-05 16:04:49
1621
4
原创 Elasticsearch 核心概念
文章目录索引(Index)类型(Type)文档(Document)节点(Node)集群(Cluster)分片(shard)Near Realtime(NRT)索引(Index)每个 Index 里面存放多个类型,类似数据库;es 7版本以后,每个索引里面只能有一个默认类型,_type索引中包含一堆有相似结构的文档数据,比如可以有一个客户索引,商品分类索引,订单索引,每个索引中都存放这对应文档;一个index包含很多document,一个index就代表了一类类似的或者相同的document;比如说
2021-06-26 10:55:09
209
4
原创 Elasticsearch 介绍
文章目录什么是Elasticsearch?Elasticsearch 的功能有哪些?Elasticsearch 的特点是什么?Elasticsearch 的应用场景有哪些?为什么不使用数据库查询?为什么要使用 Elasticsearch?Elasticsearch 很快Elasticsearch 具有分布式的本质特征Elasticsearch 包含一系列广泛的功能Elastic Stack 简化了数据采集、可视化和报告过程Elasticsearch 支持哪些编程语言?Elasticsearch 支持哪些文本
2021-06-22 16:37:28
273
转载 Nginx 负载均衡
文章目录负载均衡概述负载均衡的优点负载均衡策略内置策略扩展策略负载均衡内置变量负载均衡健康检查负载均衡参数配置负载均衡默认轮询方式加权轮询方式最小连接数方式IP hash 方式fair方式负载均衡概述负载均衡是将客户端请求分摊到多个服务器上执行,从而提高服务的可用性和响应速度,带给用户更好的体验。对于Web应用,通过配置负载均衡,可以将一台服务器的工作扩展到多台服务器中执行,提高整个网站的负载能力。其本质采用一个调度者,保证所有后端服务器都将性能充分发挥,从而保持服务器集群的整体性能最优,这就是负载均衡
2021-06-05 17:13:01
741
原创 Nginx 配置 HTTPS
文章目录HTTP 与 HTTPSHTTPS介绍SSL介绍安装 Nginx 的 SSL 模块自签名证书openssl创建证书申请证书下载证书到本地上传证书到服务器修改配置文件设置HTTP请求自动跳转HTTPS(可选项)重启 Nginx错误解决方案验证是否安装成功HTTPS 其他优化优化CPU消耗使用HSTS优化安全性其他安全优化优化总结示例HTTP 与 HTTPS超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息, HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截
2021-06-05 08:26:26
214
转载 Nginx缓存详解
nginx缓存什么是缓存?缓存的基本概述缓存的基本思想是利用客户端访问的时间局限性,将客户端访问过的内容做一个副本,在一定时间内存放到本地,当改数据下次被访问时,不必连接到后端服务器反复去查询数据,而是由本地保存的副本响应数据。保存在本地的这些副本具有一个过期时间,超过该时间将会更新。判断一个副本数据是否为过期数据的办法有很多,可以使用保留时间来判断,也可以使用数据完整度来判断。许多Web服务器还具有校验功能,就是当某些副本数据过期以后,先向后端服务器发送校验请求,后端服务器对这些数据进行校验
2021-06-03 16:00:30
7837
转载 Nginx 跨域
原文地址文章目录一 跨域概述1.1 同源策略1.2 跨域简介1.3 跨域处理流程二 CORS介绍2.1 CORS实现2.2 请求类型三 Nginx跨域配置3.1 配置语法2.2 配置示例三 跨域配置环境准备3.1 Nginx02环境预设3.2 Nginx03环境预设四 简单请求跨域4.1 单域名配置4.2 单域名确认验证4.3 多域名配置方法一4.4 方法一确认验证4.5 多域名配置方法二4.6 方法二确认验证4.7 多域名配置方法三4.8 方法三确认验证五 复杂请求跨域5.1 复杂请求5.2 复杂请求配
2021-06-02 22:01:42
564
转载 Nginx 中 rewrite 配置详解
文章目录前言指令执行顺序指令详解if 指令return 指令rewrite 指令rewrite_log 指令set 指令uninitialized_variable_warn 指令前言nginx 通过 ngx_http_rewrite_module 模块支持 URI 重写、支持 if 条件判断,但不支持 else。rewrite 只能放在 server { } 、 location { } 、 if { } 中,并且只能对域名后边的除去传递的参数外的字符串起作用,例如http://aaa.com/a/
2021-06-01 17:22:37
2269
转载 什么是JWT?JWT详解
原文地址文章目录什么是 JWT起源传统的session认证基于session认证所显露的问题基于token的鉴权机制JWT 的原理JWT长什么样?JWT的构成HeaderplayloadsignatureBase64URLJWT 的使用方式JWT 的几个特点使用 JWT 的例子什么是 JWTJWT 即 Json web token,是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519)。该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。J
2021-06-01 10:29:39
1509
转载 Nginx 中 location 块配置详解
原文链接文章目录前言nginx文件结构配置 location 块location 语法location匹配命令解释location匹配顺序案例分析案例 1案例 2案例 3案例 4案例 5案例 6其他location配置相关匹配问号后的参数location URI结尾带不带 /命名 locationlocation 实际使用建议前言location 指令是 nginx 中最关键的指令之一,location 指令的功能是用来匹配不同的 URI 请求,进而对请求做不同的处理和响应,这其中较难理解的是多个 l
2021-05-31 23:34:18
14684
原创 Nginx 配置文件详解(二)
文章目录http 块配置引入文件设置Nginx访问日志格式及存放路径设置连接方向设置 TCP 相关设置 gzip 相关设置客户端相关设置fastcgi相关其它http 块配置引入文件在浏览器中可以显示的内容有HTML、XML、PNG、GIF及Flash等种类繁多的文本、媒体等资源,浏览器为区分这些资源,需要使用MIME Type。换言之,MIME Type是网络资源的媒体类型。Nginx服务器作为Web服务器,必须能够识别前端请求的资源类型。#包含其他的配置文件,可以放在配置文件的任何地方,但是要注
2021-05-26 23:26:50
788
原创 Nginx 配置文件详解(一)
文章目录Nginx 配置文件内容Nginx 配置文件基本结构Nginx 配置文件详细信息全局块配置配置运行 Nginx 服务器用户(组)配置 worker processes 相关配置 ssl 相关配置错误日志存放路径及级别配置PID文件存放路径及名称配置锁文件event 块配置配置事件驱动模型配置网络连接相关Nginx 配置文件内容默认的nginx服务器配置文件都存放在安装目录 conf 中,主配置文件名为 nginx.conf,下面我们来看看nginx的配置文件内容和一些基本的配置方法。以下是一个
2021-05-23 23:05:24
5482
1
原创 启动Nginx、重启Nginx、停止Nginx与Nginx开机自启
文章目录启动Nginx停止nginxservice 服务脚本Nginx 开机自启启动Nginxnginx安装完成后,切换到nginx安装目录中的sbin目录(如果在执行 ./configure 没有指定额外的参数,则sbin目录为默认目录,否则切换到自定义目录),通过执行该目录下nginx编译后的二进制文件即可启动程序。cd /usr/local/nginx/sbin/nginx./nginx执行上面的操作后,成功启动nginx,程序是没有任何提示的。我们可以使用ps命令查看nginx的运行状态
2021-05-17 21:47:48
19579
2
转载 ./configure、make、make install 命令详解
原文地址文章目录基本信息详细解释configure 命令make 命令make insatll 命令扩展说明基本信息./configure 是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。make 是用来编译的,它从 Makefile 中读取指令,然后编译。make install 是用来安装的,它也从Makefile中读取指令,安装到指定的位置。注意:AUTOMAKE和AUTOCONF是非常有用的用来发布C程序的东西。
2021-05-16 10:51:35
693
原创 Nginx 安装
文章目录Nginx 安装使用 yum 方式安装1. 添加 yum 源2. 安装 Nginx卸载 Nginx编译安装编译环境准备1. 安装 make2. 安装 g++4. 安装 zlib5. 安装 ssl6. 安装 NginxNginx 安装使用 yum 方式安装1. 添加 yum 源# Nginx 不在默认的 yum 源中,可以使用 epel 或者官网的 yum 源,本例使用官网的 yum 源。sudo rpm -ivh http://nginx.org/packages/centos/7/noa
2021-05-14 08:10:28
509
4
原创 Nginx 介绍
文章目录Nginx 介绍反向代理负载均衡动静分离其它Nginx 介绍Nginx是俄罗斯人Igor Sysoev编写的轻量级Web服务器,它的发音为 [ˈendʒɪnks] 。它不仅是一个高性能的HTTP和反向代理web服务器,而且也是电子邮件(IMAP/POP3/SMTP)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。反向代理反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服
2021-05-13 23:20:44
1983
1
转载 使用Xshell连接Linux虚拟机
原文地址检查Linux虚拟机的网络连接模式,确保它是NAT模式。在VMware workstation里,点击菜单栏上的【编辑】–>【虚拟网络编辑器】,打开下方的虚拟网络编辑器。选择VMnet8(NAT模式),取消勾选【使用本地DHCP服务…】(若勾选,会设置动态IP)。在下图中,点击NAT设置记住上图中的子网IP范围,如上图所示表示虚拟机在192.168.44.0~192.168.44.255范围内。注意:上图中192.168.44.2为网关地址,192.168.4
2021-05-12 10:50:41
3820
转载 不用FTP工具也能上传、下载文件?Linux rz、sz命令了解一下
原文地址文章目录概述检查是否已经有该命令安装lrzsz包查看上传下载路径rz、sz命令的用法操作演示概述对于Linux服务器来说,通常我们是通过一些ssh工具进行远程访问连接的,而对于经常使用它的人来说,少不了将文件上传下载到服务器。如何能够快速的同服务器进行文件的交互尤为重要。不然每次都打开单独的ssh客户端或者ftp很是浪费时间。今天,我们就来介绍一下linux系统下的rz、sz命令。运行命令rz、sz要比FTP容易很多,而且服务器不需要另开FTP服务即可完成。sz:将选定的文件发送(send
2021-05-11 17:23:49
967
转载 Git 常用命令
参考文章文章目录修改配置建立仓库将本地目录转换为仓库克隆远程仓库拉取远程仓库的更新增加/删除文件代码提交操作分支将本地分支推送到远程仓库拉取远端分支到本地删除本地分支删除远程分支标签操作创建标签共享标签删除标签检出标签查看信息远程同步撤销其它修改配置# 配置分为 local、global、system 三种层级# 显示当前的Git配置$ git config --list $ git config --list --local # 查看当前仓库的配置,其它用法如 --global等# 设置提
2021-05-09 09:02:51
134
转载 Git 的 Fast Forward 和 no fast foward
原文地址目录Fast forward 概述强制禁用 Fast forward 模式的具体方法Fast Forward 和 no fast foward 合并模式对比分支策略小结Fast forward 概述通常,合并分支时,如果可能,Git会用Fast forward模式。举例来说,开发一直在 master 分支进行,但忽然接到了一个新的需求,于是新建了一个 dev 的分支,并在其上进行一系列提交,完成时,回到 master 分支,此时,master 分支在创建 dev 分支之后并未产生任何新的 c
2021-05-09 08:25:16
2232
转载 Git 分离头指针
通常,我们工作在某一个分支上,比如 master 分支。这个时候 master 指针和 HEAD 指针是一起前进的,每做一次提交,这两个指针就会一起向前挪一步。但是在某种情况下(例如 checkout 了某个具体的 commit),master 指针 和 HEAD 指针这种「绑定」的状态就被打破了,变成了分离头指针(detacged HEAD)状态。有时你在切换分支时,输了一个 commit 信息Git 提示你现在处于“分离头指针状态”,你可以查看、并且做些代码调试,还可以提交他们,在这种状态下,如
2021-04-24 18:53:47
2327
转载 Linux环境安装Git
原文地址文章目录yum 安装从GitHub上下载最新的源码编译后安装安装步骤yum 安装在 Linux 上是有 yum 安装 Git,非常简单,只需要一行命令:yum -y install git输入 git --version 查看Git是否安装完成以及查看其版本号 :注意:yum 安装的 git 被安装在/usr/libexec/git-core目录下从GitHub上下载最新的源码编译后安装yum安装这么简单,为什么还要学从 github 上下载最新的源码编译后安装呢?刚才输入gi
2021-04-14 22:40:32
152
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人