自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 企业微信授权的时候,提示{\“errcode\“:50001,\“errmsg\“:\“redirect_uri unauthorized, hint: [170494028642939213599

授权接口:https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo。原因是企业微信的Secret 需要重新获取,才可以解决,据说是微信的bug,他们的缓存问题。

2024-01-11 10:41:47 604

原创 php接收快手平台消息推送aes解密步骤

快手消息推送,php代码实现接收和aes解密的步骤。

2022-08-16 16:05:10 769 1

原创 支付宝周期扣款(支付后签约)业务功能总结(php+golang)

支付宝周期扣款逻辑、遇到的问题整理

2022-08-12 15:28:31 4388 2

原创 php实现导出百万级数据方法

<?php //让程序一直运行 set_time_limit(0); //设置程序运行内存 ini_set('memory_limit', '128M'); ob_clean(); ob_end_clean(); $fileName = '测试导出数据'; header('Content-Encoding: UTF-8'); header("Content-type:application/vnd.ms-excel;charse.

2022-05-25 11:08:30 674

原创 php中,new实例化调用方法和self::调用方法调用的区别

php中,new实例化调用方法和self::调用方法调用的区别

2021-12-09 17:57:01 889

原创 mongodb分页排序问题 Sort exceeded memory limit of 104857600 bytes, but did not opt in to external sorting.

错误信息:Sort exceeded memory limit of 104857600 bytes, but did not opt in to external sorting. Aborting operation. Pass allowDiskUse:true to opt in.错误原因:MongoDB:排序超出了内存限制的104857600字节laravel操作mongodb分页遇到的问题"msg": "Sort exceeded memory limit of 1.

2021-12-08 21:25:41 5345

原创 laravel使用mongodb的时候提示Authentication failed,但是在客户端连接又没问题,账号密码也没有错。解决如下:

问题如上,在laravel中提示Authentication failed,然后我以为是密码错误,但是数据库却又是又这个用户的,然后我的navicat又可以连接原因如下:要去laravel的 config/databases.php 文件中增加配置,如图...

2021-09-08 16:14:29 868

原创 go连接mysql遇到dial tcp xxxx:1111: socket: too many open files和 写日志遇到Fail to OpenFile :open xxx

这是由于文件打开太多,导致的问题1、dial tcp 81.71.50.199:1111: socket: too many open files2、2021/08/27 15:12:46 Fail to OpenFile :open /Users/twj/Documents/go_www/wwwlogs/more_go_script/log20210827.log: too many open files先查看pid,mac需要去活动监视器,linux需要以下命令netstart -

2021-08-27 17:49:03 1252

原创 go get 不了,就使用 go.mod中的replace来引入远程包(需要把远程包下载在本地)

大概就是:1、我遇到了 go get 不到包的情况2、需要用 go.mod 的replace 来解决因为go get 不了远程包,然后需要下载远程包再通过 replact来引入远程包的问题。(重点,主题)说一下我的案例,我需要下载腾讯tpns的go sdk包地址:https://cloud.tencent.com/document/product/548/58319选择go就会进入下图页面然后我尝试使用 go get 去下载go get git.code.te...

2021-08-24 17:41:58 4361

原创 go build 成不同环境的方法:mac、linux、windows

修改你的 go env环境变量,如下:1、Mac下编译Linux, Windows平台的64位可执行程序:$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64$ CGO_ENABLED=0 GOOS=windows GOARCH=amd642、Linux下编译Mac, Windows平台的64位可执行程序:$ CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 $ CGO_ENABLED=0 GOOS=windows GOA

2021-08-05 10:25:14 14309 2

原创 go的 gopath模式和mod模式的包下载位置,解决包标红,引入不了的问题。

gopath模式,需要关闭mod模式,命令如下:go env -w GO111MODULE=off然后执行 go get (你要下载的包)go get github.com/gin-gonic/gin 会下载在你的gopath下面的$gopath/src中,当然你的项目也是在这个$gopath/src文件中的编辑器需要配置项目中就可以引用了go mod 的包下载go env -w GO111MODULE=ongo get gi...

2021-08-04 10:35:20 1886 2

原创 laravel框架的rpc应用到项目中

RPCRPC(Remote Procedure Call Protocol)——远程过程调用协议,RPC将原来的本地调用转变为调用远端的服务器上的方法,给系统的处理能力和吞吐量带来了近似于无限制提升的可能。在OSI网络通信模型中,RPC跨域了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。RPC架构一个完整的RPC架构里面包含了四个核心的组件,分别是Client,Client Stub,Server以及Server Stub,这个Stub可以理解为存根。客户端.

2021-06-18 16:32:54 1311 1

原创 使用golang写个简单的协程池

大致架构

2021-05-31 11:24:19 434 1

原创 秒杀商品的一些思路分享,redis的链表、mq、mysql排他锁

运用的技术1、redis链表(预库存)2、rabbitMq(记录秒杀成功的订单数据)3、php两个方案1、mysql 开启事务,生成排他锁????2、redis链表+Mq (推荐)方案一:mysql开启事务,生成排他锁tp5.1框架代码了解tp5.1的两个数据库方法setInc():将数字字段值增加setDec():将数字字段值减少通过事务实现排他锁,可以防止超卖public function order(Request $req.

2021-04-22 19:03:10 337

原创 来聊聊跨域的问题,和我对跨域的理解

可能存在跨域浏览器限制。 跨域:不同域就会报跨域,比如端口不同,协议不同,比如前端端口是8080,ajax请求了后端8081的接口。 XHR(XMLHttpRequest)请求,如果发出去是XHR请求,也就是说发送的不是XHR就算跨域也不会报错,因为发送xhr浏览器会去限制。以上三个同时满足就可能会产生跨域下面我们通过代码来模拟一下跨域,我用php和jq来写前端代码 a.html<!doctype html><html lang="en"&g...

2021-04-20 15:47:08 226

原创 golang操作mongodb,curd操作整理

包go get -u gopkg.in/mgo.v2文档位置https://pkg.go.dev/gopkg.in/mgo.v2#Collection.UpdateAll首先解释一下bson.M和bson.D的用法D:一个BSON文档,这个类型应该被用在顺序比较重要的场合(言外之意就是有序的),比如说mongodb的命令。 M:一个无序的map。它除了无序之外和D是一样的(可以理解为map和bson是可以转换)。底层代码// M is a convenien...

2021-03-31 17:25:18 574

原创 依赖注入,ioc容器,php反射

IoC:IoC 容器,也可以称为服务容器,这个是laravel框架的核心思想php反射:ReflectionClass() 也就是这个类,这个类,他里面封装类很多方法,通过这里面的方法,你可以反射出 另一个类的参数,构造方法,形参,受保护的变量等等,甚至连注释都能反射获取到依赖注入:所谓依赖,就是a class 依赖 b class 所谓注入,就是把 b class 放到a class 中,然后又把 b 存储在a 中的一个受保护变量中,这就是依赖注入。看看下面这段代码就是依赖注入依赖注入...

2021-03-08 21:14:31 200

原创 管道设计模式,模仿laravel中间件的大概思路

管道设计模式,模仿laravel中间件的大概思路需要了解这两个函数的特性call_user_func :https://www.php.net/manual/zh/function.call-user-func.phparray_reduce :https://www.php.net/manual/zh/function.array-reduce.php<?phpinterface Middleware{ public static funct...

2021-03-08 20:45:39 132

原创 mysql sql 省市县三级联动数据结构表和省市县数据

省市县三级联动数据,我最近一直在寻找这些sql,发现全部都是要收费的,百度找了很久都找不到,找到的又不够齐全,最后我通过朋友那边获取到sql,现在我分享出来给各位。CREATE DATABASE `p31`;CREATE TABLE `p31_areas`( -- 主键 `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, -- 父级ID `parent_id` INT UNSIGNED NOT NULL DEFAULT '0.

2021-03-03 10:56:28 1282 4

原创 elasticsearch

es和mysql的对比两个都是查1000条数据,前者0.007 后者(InnoDB)0.125---未完待续

2021-02-28 13:56:41 73

原创 用golang实现广度优先搜索算法

迷宫文件maze.in 文件6 50 1 0 0 00 0 0 1 00 1 0 1 01 1 1 0 00 1 0 0 10 1 0 0 0我来解释一下这个maze.in文件1是墙壁,不可以走,0是未探索的点现在是要通过走0一直走到终点,起始坐标是(0,0)终点坐标是(5,4)我们需要走到每一个点,然后探索周围的点是不是一堵墙,也就是1,如果不是,就要在探索的点中+1左图为迷宫图,右图为最终执行结果上代码maze.go 文件,这里的i...

2021-02-12 11:48:45 454

原创 如果golang没有代码提示,也就是没有依赖,需要设置go root ,也就是安装目录

看见很多人说设置代理,代理到cmd执行go env -w GOPROXY=https://goproxy.io,direct但是这样还是没有依赖,而且代码提示也没有,这样很难开展工作其实还少了一步,还需要设置golang的安装目录设置完之后,依赖有了,代码提示也有了...

2021-01-24 12:35:49 564

原创 通过docker,nginx镜像来搭建反向代理

安装nginx docker镜像搭建nginxdocker pull nginx使用nginx镜像来创建nginx容器实例docker run --name nginx-test -p 9090:80 -d nginx执行上面的一步骤这里,我遇到一个问题报错如下: 如果你没有遇到,可以忽略我的解决方案Docker之WARNING: IPv4 forwarding is disabled. Networking will not work.这时候,我就去配置网

2021-01-18 21:24:01 386

原创 自学计划:我对goland的数据结构总结

goland的数据类型整型、浮点型、布尔类型、字符串、数组(array)、切片(slice)、映射(map)、结构体(struct)、接口(interface{})、指针整型整型分别有以下带u的都是无符号的意思int int8 int16 int32 int64 uint8 uint16 uint32 uint64func main() { // 整型 int := 1 var ints int8 = 3 var uints uint8 = ...

2020-12-03 22:08:07 247

原创 自学计划:我的docker的学习笔记

目录docker简介网站版本要求查看自己的内核docket三大要素镜像容器仓库docket安装下面给大家看我安装的例子:docker启动、重启、关闭、查看状态、查看版本docker启动 重启docker服务关闭docker 查看是否启动成功查看版本设置镜像加速器步骤:docker的底层原理docket的命令帮助命令docket version 查看版本docket info 查看详细信息...

2020-12-02 10:48:23 245

原创 自学计划:docker简介、下载

docker简介为什么会有docker:多个部署的时候,安装完第一个环境,直接打包成镜像,复制粘贴的形式到各个服务器。网站仓库:https://hub.docker.com/官网:https://www.docker.com/版本要求docker 运行在centos 7上,要求系统64位,系统内核3.10以上 docket运行在centeof-6.5或者跟高版本的centos上,要求系统64位,系统内核版本为2.6.32-431或者更高版本查看自己的内核...

2020-12-02 10:47:30 188

原创 自学计划:docket的帮助命令、镜像命令、容器命令、守护式容器

目录帮助命令docket version 查看版本docket info 查看详细信息docket --help 语句帮助镜像命令docket images 列出本地主机上的镜像docker search 某个XX镜像名字docker pull 下载某个XX镜像名字docker rmi 某个镜像名字 ID1 删除单个2 删除多个3 全删除容器命令拉取镜像1 docker pull centos新建并启动容器2 docker run [.

2020-12-02 10:47:16 334

原创 自学计划:docker启动、重启、关闭、查看状态、查看版本、设置阿里云镜像

目录docker启动、重启、关闭、查看状态、查看版本docker启动 systemctl start docker service docker start重启docker服务systemctl restart docker sudo service docker restart关闭docker systemctl stop docker service docker stop查看是否启动成功systemctlstatusdocker 查看状态 docke...

2020-12-02 10:46:20 634

原创 自学计划:docker的容器数据卷、数据卷容器

是什么?先来看看docker的理念将运用与运行的环境打包形成容器运行,运行可以伴随着容器,但是我们对数据的要求希望是持久化的 容器之间希望有可能共享数据为什么呢,docker容器产生的数据,如果不通过doker commit生成新的镜像,使得数据做为镜像得一部分保存下来,那么当容器删除后,数据自然也就没有了,为了能够保存数据在docker中我们使用卷能干嘛?卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过union fil...

2020-12-02 10:45:48 115

原创 自学计划:docker 镜像; commit 创建一个自己的镜像(twj/tomcat)

1 从 hup 上 下载 tomcat 镜像到本地并成功运行docker run -it -p 8888:8080 tomcat参数-p 主机端口:docker容器端口 主机端口是暴露给别人看的,docker容器端口是真实端口-P 随机分配端口i 交互t 终端2在浏览器访问,进入docker 的 tomcat 容器203.195.164.205:8888故意删除容器中的文件[root@VM-0-12-centos ~]# docker exec...

2020-12-02 10:44:18 135

原创 自学计划:docker镜像案例

base 镜像案例(scratch)docker hub 中 99%的镜像都是通过在base镜像中安装和配置需要的软件构建出来的自定义镜像案例 mycentos背景:因为我们容器,是精简版的centos 所以是不支持vim 和ifconfig的,现在我要自定义一个镜像具备以下的功能登陆后的默认路径 vim编辑器 查看网络配置ifconfig支持hub墨尔centos镜像什么情况不支持vim 不支持ifconfig 默认路径 /...

2020-12-02 10:43:45 128

原创 自学计划:DockerFile文件的一些参数总结

DockerFile解析是什么dockerfile是用来构建docker镜像的构建文件,是由一系列命令和参数构成的脚本注意点:文件没有后缀,名字就是Dockerfile 命令约定全部使用大写,如RUN,ADD,FROM 第一条命令必需是FROM,作用是指定在哪个基础镜像上创建镜像。 注释以#形状构建三步骤1 编写dockerfile文件2 dockk build3 docker run文件长什么样子的?# volume testFROM centosVOLU

2020-12-02 10:42:13 158

原创 自学计划:docker 常用安装;centos、redis、mysql、推送centos到远程阿里云镜像仓库

总体步骤搜索镜像拉取镜像查看镜像启动镜像停止镜像移除镜像安装tomcatdocker hub 上面查找tomcatdocker search tomcat从docker hub 上拉取tomcat 镜像到本地docker pull tomcatdocker images 查看是否有拉取 tomcatdocker images使用tomcat镜像创建容器 (也叫运行容器)docker run -it -p 8080:8080 tomcat

2020-12-02 10:41:28 479

原创 研究计划:gzip 压缩模块的研究

分享三个工具网站测速工具http://pagespeed.webkaka.com/网站地区测速工具http://www.webkaka.com/webCheck.aspx网站gzip测试工具http://pagespeed.webkaka.com/youhua/gzip/gzip简单的说,gzip 压缩是在一个文本文件中找出类似的字符串,并临时替换他们,使整个文件变小。这种形式的压缩对 web 来说特别适合,因为 HTML 和 CSS文件通常包含大量的重复字符串,例如空.

2020-08-26 23:51:27 225

原创 研究计划:nginx 按日期做日志切割 && nginx 重写模式

一 计划任务 && sh脚本做日志切割crontab -e 计划任务*/1 * * * * sh /data/wwwlogs/runlog/runlog.shrunlog.sh 脚本#! /bin/bash# 日志源文件位置LOGPATH=/data/wwwlogs/test/error-test.log# 存放位置BASEPATH=/data/wwwlogs/runlog/$(date -d yesterday +%Y%m)#echo $BASEPATH

2020-08-25 17:21:10 161

原创 解决问题:ngxin 交替出现404 和200的问题

nginx 一个页面中,404 和 200交替出现一个页面时候,一会儿正常200 一会儿404个人总结:是因为改了配置文件,然后重启NGINX 但是NGINX的子进程没有完全清空导致后面 旧进程的配置还没有更新,还在用旧的配置,重启NGINX的新进程,用的是新配置所以才会有时候404 有时候200下图中,我kill nginx的master 那些worker进程还存在的后面发现主进程清除但是很多子进程没有清除再执行killall ...

2020-08-22 00:34:48 2689

原创 遇到问题:解决NET::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK)问题

右键查找请求的数据第一种情况:发现是JSON数据太长导致截断了,所以服务器处理不了第二种情况:数据太多,太长了,然后nginx需要增大fastcgi缓冲区大小查看报错日志 nginx的 error.log2020/07/23 11:43:27 [crit] 20556#20556: *643901 open() "/opt/nginx/fastcgi_temp/9/42/0000002429" failed (13: Permission d...

2020-07-23 13:45:26 1540

原创 研究计划:避免foreach嵌套foreach的方法

列举一下,日常业务中,我们会有订单表,订单商品表。现在有这么一个需求,在订单表的数据中,追加订单商品表数据代码如下:$order = [ ['id' => 1, 'status' => 1, 'order_dsn' => '订单号', 'time' => '下单时间'], ['id' => 2, 'stat...

2020-05-06 10:00:21 480

原创 研究计划:mysql left join 和 laravel 的 with 预加载

代码上,有大量的left join, 这时候我是想着通过mysql索引和laravel的with预加载来优化下面给大家看看没用预加载时候的样子public function list(Request $request){ $rows = $request->rows ?? 20; $page = is_numeric($request->page ...

2020-04-30 00:44:06 1358

原创 研究计划:单例设计 实现 RabbitMQ封装类

1 入口// 需要推送的数据,扔进工厂,开始进入推送逻辑Goods::shareGoodsPush([ 'sku' => $insertData['sku'] ?? '', 'name' => $insertData['name'] ?? '', 'price' => $insertData['...

2020-04-28 17:24:34 636

空空如也

空空如也

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

TA关注的人

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