自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 etcd相关

1.ETCD集群容器化部署。4.ETCD服务注册与发现。3.ETCD分布式选举。2.ETCD分布式锁。

2023-07-31 18:54:07 88

原创 golang 云原生部署项目

4.创建service对外公开应用程序接口。2.定义k8s应用程序载体pod.3.为应用程序配置健康检查机制.1.应用程序容器镜像制作。

2023-07-31 15:39:48 93

原创 docker 常用操作命令

查找docker iamge 下产生的不用的镜像资料。删除所有多余的不用的镜像。

2023-03-23 16:00:46 135

原创 请用go实现一个百万并发的短信推送系统

上面的代码创建了一个包含100个goroutine的goroutine池,每个goroutine会从消息队列中读取消息并发送短信。在主函数中,我们将1000000个短信推送请求发送到消息队列中。并发处理能力:需要使用高性能的并发处理机制,例如使用goroutine和channel等Go语言内置的机制来实现。消息队列:在系统中使用消息队列来处理短信推送请求。使用消息队列可以将短信推送请求异步处理,从而提高系统的吞吐量和响应速度。短信网关:需要接入可靠的短信网关服务提供商,以确保短信推送的可靠性和稳定性。

2023-03-15 15:59:26 411

原创 PHP使用 Redis批量删除过期数据

快速批量插入或者删除Redis里面的key

2022-12-01 17:52:57 560

原创 RabbitMQ之Docker安装

RabbitMQ之Docker安装正在上传…重新上传取消​飞哥分类:学习笔记创建时间:2021/03/02 14:56字体皮肤最后修改于:2021/03/02 19:4401、Docker安装RabbitMQ1-1、虚拟化容器技术—Docker的安装(1)yum 包更新到最新 > yum update (2)安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的 > yum in...

2022-01-08 23:54:40 1129

原创 thinkphp6 消息队列(queue)使用方法

安装composer require topthink/think-queue配置配置文件位于config/queue.php公共配置[ 'default'=>'sync' //驱动类型,可选择 sync(默认):同步执行,database:数据库驱动,redis:Redis驱动//或其他自定义的完整的类名]创建任务类单模块项目推荐使用app\job作为任务类的命名空间 多模块项目可用使用app\module\job作为任务类的命名空间 也...

2021-12-06 15:30:24 4344

原创 swoole进程详解

开启一个swooleserver 之后swoole 的各种配置

2021-08-31 22:18:03 104

原创 试题索引设计

$mapping = [ 'index' => 'question_index', "body" => [ "mappings" => [ "properties" => [ "question_id" => [ "type" => 'integer', ], .

2021-08-30 14:11:07 108

原创 GuzzleHttp使用

一、简介Guzzle是一个PHP的HTTP客户端,用来轻而易举地发送请求,并集成到我们的WEB服务上。接口简单:构建查询语句、POST请求、分流上传下载大文件、使用HTTP cookies、上传JSON数据等等。 发送同步或异步的请求均使用相同的接口。 使用PSR-7接口来请求、响应、分流,允许你使用其他兼容的PSR-7类库与Guzzle共同开发。 抽象了底层的HTTP传输,允许你改变环境以及其他的代码,如:对cURL与PHP的流或socket并非重度依赖,非阻塞事件循环。 中间件系统允

2021-08-30 14:04:44 1134

原创 基于swoole做并发处理方案调研

一、需求背景题库服务,自动判题逻辑处理耗时较长,每张试卷也会包含多道题目,若采用同步处理,耗时时间会成倍增加,需要改为并行异步处理。二、实现功能同时最高并发1000个请求做异步处理三、基于go实现// +build ignorepackage mainimport ( "fmt" "time")type Req struct { ID int `json:id`}type Resp struct { I

2021-08-30 14:02:27 159

原创 可视化接口管理平台yapi本地部署

一、安装依赖环境1、安装MongoDB,添加管理员用户,开启auth验证,添加yapi集合及用户db.createUser({ user: "root", pwd: "xxxxxx", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })db.createUser({ user: "yapi", pwd: "xxxxxx", roles: [{ role: "readWrite", db: "yapi" }] })2、 安装nod

2021-08-30 13:59:15 244

原创 课程索引数据映射-ES

{ "course" : { "mappings" : { "properties" : { "adviser" : { "type" : "keyword", "null_value" : "NULL" }, "brand" : { "type" : "keyword", "null_value" : "NULL" }, .

2021-08-30 13:57:27 83

原创 Elasticsearch安装文档-linux

1、安装JDKroot@deepin:~# apt-get updateroot@deepin:~# apt-get install default-jdkroot@deepin:~# java --version2、安装elasticsearchroot@deepin:~# wget https://mirrors.huaweicloud.com/elasticsearch/7.5.2/elasticsearch-7.5.2-amd64.debroot@deepin:~# dpk..

2021-08-30 13:56:50 88

原创 Lumen中启用session

Lumen框架已经剔除了session的默认支持,但是我们仍然可以自己添加session功能。团队开发的项目使用的Lumen框架,有时因为项目需要支持session,虽然官方建议需要session功能时可以使用强大的Laravel框架,但是对我小项目确实有点大材小用了。因为喜欢Laravel的优雅,所以我在小项目中都会把Lumen做为项目的首选。下面就来一步步找回“丢失”的session吧!注册SessionServiceProvider打开bootstrap/app.php,在相应位置添.

2021-08-30 13:56:20 225

原创 kafka安装部署文档

1、环境准备安装Kafka之前,先确认是否已安装java和zookeeper2、下载kafkawget http://mirrors.hust.edu.cn/apache/kafka/2.4.1/kafka_2.12-2.4.1.tgz3、解压安装root@ceshi:/usr/local# tar -zxf kafka_2.12-2.4.1.tgzroot@ceshi:/usr/local# mv kafka_2.12-2.4.1 kafka4、修改server.prope.

2021-08-30 13:55:48 172

原创 jenkins安装部署文档

1、安装 JDK 与 jenkins 服务# 1)安装 JDK[root@gitlab:~/rpms]# rpm -ivh jdk-8u251-linux-x64.rpm[root@gitlab:~/rpms]# java -versionjava version "1.8.0_251"Java(TM) SE Runtime Environment (build 1.8.0_251-b08)Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08

2021-08-30 13:55:15 100

原创 gitlab数据备份与恢复

1、安装依赖sudo yum install -y curl policycoreutils-python openssh-serversudo systemctl enable sshdsudo systemctl start sshdsudo firewall-cmd --permanent --add-service=httpsudo firewall-cmd --permanent --add-service=httpssudo systemctl reload firewalld

2021-08-30 13:54:51 116

原创 使用Laravel的表单验证器

1、使用默认的验证信息$rules = [ 'phone' => 'required'];$validator = Validator::make($request->all(), $rules);if ($validator->fails()) { $message = $validator->errors()->first(); return new JsonResponse(['code' => '10501', 'msg' =&

2021-08-30 12:10:49 219

原创 阿里MySQL规约

一、建表规约【强制】表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是unsigned tinyint( 1 表示是,0 表示否),此规则同样适用其他数据库建表。 说明:任何字段如果为非负数,必须是unsigned。 【强制】表名、字段名必须使用小写字母或数字;禁止出现数字开头,禁止两个下划线中间只出现数字。数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考虑。 正例:getter_admin,task_config,level3_name 反例:G..

2021-08-30 12:09:50 119

原创 日志服务日志查询语法

1、日志索引日志服务索引包括全文索引和字段索引。全文索引:对日志全文内容开启索引,默认的索引会查询日志中所有Key对应的内容,只要有一个命中,就会被查询到。 字段索引:为特定的Key配置索引,配置字段索引后,可以通过查询特定Key的内容,缩小查询范围。2、查询语句格式对采集到的日志数据进行实时查询分析时,需要输入查询分析语句(Query)。由查询语句(Search)和分析语句(Analytics)两个部分组成,查询和分析语句之间通过 |进行分割。$Search |$Analytics...

2021-08-30 12:06:46 843

原创 hyperf基于consul的服务注册与发现

一、安装consul1、访问 Consul 的官网:https://www.consul.io2、Consul 下载页:https://www.consul.io/downloads.html3、安装 Consulwget https://releases.hashicorp.com/consul/1.6.1/consul_1.6.1_linux_amd64.zipunzip consul_1.5.1_linux_amd64.zip -d /usr/local/bin// 编辑 /etc

2021-08-30 12:06:14 659

原创 阿里日志系统服务端日志信息及SDK使用

服务端共有日志字段如下:字段 含义 level 日志级别(debug, info, warn, error) time 日志生成时间(2019-10-30 11:30:30) timestamp unix时间戳,精确到秒 request_method 请求方法,GET、POST等 request_scheme 服务协议,http或https http_host 请求域名 client_agent 客户端agent clien

2021-08-30 12:05:35 377

原创 hyperf与微服务

框架初衷尽管现在基于 PHP 语言开发的框架处于一个百家争鸣的时代,但仍旧未能看到一个优雅的设计与超高性能的共存的完美框架,亦没有看到一个真正为 PHP 微服务铺路的框架,此为 Hyperf 及其团队成员的初衷。Hyperf 是基于 Swoole 4.3+ 实现的高性能、高灵活性的 PHP 协程框架,内置协程服务器及大量常用的组件,性能较传统基于 PHP-FPM 的框架有质的提升。Hyperf官方文档:https://doc.hyperf.io/#/微服务架构一、微服务架构介绍微服务架构

2021-08-30 12:04:24 530

原创 协程工作原理

协程协程(Coroutine)在执行过程中可中断去执行其他任务,执行完毕后再回来继续原先的操作。可以理解为两个或多个程序协同工作。协程特点在于单线程执行。优势一:具有极高的执行效率,因为在任务切换的时候是程序之间的切换(由程序自身控制)而不是线程间的切换,所以没有线程切换导致的额外开销(时间浪费),线程越多,协程性能优势越明显。优势二:由于是单线程工作,没有多线程需要考虑的同时写变量冲突,所以不需要多线程的锁机制,故执行效率比多线程更高。常利用多进程(利用多核)+协程来获取更高的性能。迭

2021-08-30 12:03:28 151

原创 swoole进程结构

1、进程的基本知识什么是进程,所谓进程其实就是操作系统中一个正在运行的程序,我们在一个终端当中,通过php,运行一个php文件,这个时候就相当于我们创建了一个进程,这个进程会在系统中驻存,申请属于它自己的内存空间系统资源并且运行相应的程序对于一个进程来说,它的核心内容分为两个部分,一个是它的内存,这个内存是这进程创建之初从系统分配的,它所有创建的变量都会存储在这一片内存环境当中一个是它的上下文环境我们知道进程是运行在操作系统的,那么对于程序来说,它的运行依赖操作系统分配给它的资源,操作系统的一些

2021-08-30 12:00:49 117

原创 swoole高性能原理

1、 swoole是什么?Swoole 是 PHP 的协程高性能网络通信引擎,使用 C/C++ 语言编写,提供了多种通信协议的网络服务器和客户端模块,使 PHP 开发人员可以编写高性能的异步并发 TCP、UDP、Unix Socket、HTTP,WebSocket 服务。Swoole 可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。使用 PHP + Swoole 作为网络通信框架,可以使企业 IT 研发团队的效率大大提升。官方定义:面向生产环境的

2021-08-30 11:59:51 364

原创 openresty获得不到数据的时候

local name = ngx.req.get_body_file()local f = io.open(name,"r")data = f:read("*a")data = cjson.decode(data)inBody = data['inBody']reqHeader = data['reqHeader']--logger:log('req_Header', reqHea...

2019-07-30 08:42:01 249

转载 函数调用加括号与不加括号的区别

最近钻研JS的时候遇到了一些问题,实话说JS真的是一门很强大的语言,还需继续修炼。今天分享的一点知识是:JavaScript 函数调用时带括号和不带括号的区别!!!例子说明: 例1.function init(){    。。。。。。}window.onload = init;例2:function fun(){    return 5}var a=funvar b=

2017-12-09 23:14:00 9287 1

原创 strong对象,替换 replace,将字符串1转化为字符串2

//创建一个字符串对象 var obj_str = new String("ABCDEFGCHIJKLCMN"); //返回给我们替换后的字符串// console.log(obj_str.replace("CDE","aaa")); //原字符串为发生改变 console.log(obj_str); //字符串1 替换成 字符串2 的内容

2017-12-04 13:23:50 584

原创 string对象,substr和substing截取的案例。

//普通创建字符串方式, 但是我们可以把它当做字符串对象来看待 var str = "abcdefghijklmn"; //创建一个字符串对象 var obj_str = new String("ABCDEFGHIDJKLMND"); //从设置的截取开始截取(包括当前位置),第二参数截取多少个字符// console.log(obj_str.subst

2017-12-04 13:20:25 698

原创 String对象,indexof和lastindexof查找字符串位置

//普通创建字符串方式, 但是我们可以把它当做字符串对象来看待 var str = "abcdefghijklmn"; //创建一个字符串对象 var obj_str = new String("ABCDEFGHIDJKLMND"); console.log(obj_str); // 返回子字符串在字符串对象中第一次出现的位置(从0开始计算),不

2017-12-04 13:19:12 1482

原创 String对象的创建

//定义一个字符串 var str1 = "abc"; var str2 = 'ABC'; //定义字符串对象 var obj_str1 = new String("defg123123123123"); //强行转换函数 非字符串类型,强行转换为字符串,字符串类型原样输出 var obj_str2 = String("DEF");//

2017-12-04 13:11:57 158

原创 for循环结构小案例

for(var w=1; w<=8; w++){ for( var i=1; i<=20; i++){ document.write('*'); }document.write(''); } for(var p=1; p<=10; p++){ for( var y=1; y<=10; y++){ document.write('*');

2017-12-04 00:26:22 1158

原创 js99乘法表

for(var w=0; w<5; w++){ for(var e=0; e<5; e++){ document.write("*"); } document.write(''); } document.write(''); for(var w=1; w<=9; w++){ for(var e=1; e<=w; e

2017-12-04 00:24:35 2325

原创 循环结构

循环结构// var a = 1;// document.write(a);// while(a < 10){// document.write(a);// a++;// }//// document.write("结束");//while 先执行条件判断,如果成立,则执行循环体,然后再去判断条件,如果再次成

2017-12-04 00:15:20 135

原创 顺序结构

顺序结构// var a = 1;// alert(a);//// //单分支结构 = == === != !== ! && ||// if( true ){// var b = 2;// alert(b);// }////// var c = 3;// alert(c);

2017-12-04 00:14:38 148

原创 obhect创建的两种方法

// var obj=new Object;// obj.name="冯冰洁";// obj.sex="女";// //console.log( obj);// obj.chi=function(){// alert('吃吃吃');// }// obj.chi();// // console.log(name);// // var name="李四";

2017-12-04 00:12:42 244

原创 数据类型强制转换

--> //function fu(){ //var fun= document.getElementById("wa"); //把获取的标签对象赋予了fun //然后用fun.加上Body标签里面的属性名比如value,name等等都可以获取倒并且改变里面的值。 //console.log(fun); //获取到了“wa”这个对象, /

2017-12-04 00:11:02 518

原创 html所有标签超详细概述

HTML1.html由浏览器去解析,存在兼容性问题2.html文件的后缀名可以是 .html 或 .htm3.它是一个标记语言,并非编程语言标签1.标签是由尖括号包围的关键词比如 2.标签分为单标签和双标签 3.标签之间可以相互嵌套,切记不准许穿插嵌套 属性 1. 2.所有关于样式的属性,我们均可以不去记忆,有单独的

2017-11-23 00:43:02 2433

空空如也

空空如也

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

TA关注的人

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