- 博客(246)
- 资源 (10)
- 收藏
- 关注

原创 晚明最后的辉煌-朝鲜之役
发表此文一是爱好,二是为了让更多的人了解这段历史。如果你也爱好历史、爱好明史,欢迎留言交流。目录概述背景内容此役大明悍将尽出、八万天兵血洒三千里河山。天朝以“王师水陆并驱,正奇互用,爰分四路”的实力和“舳舻付于烈火,海水沸腾,戈甲积于高山,氛浸净扫”的激烈斗争打击了倭寇的嚣张气焰及“遂兴荐食之志,窥我内附之邦”的狂妄野心,发出了“于戏,我国家仁恩浩荡,恭顺者无困不援;义武奋扬,...
2020-08-29 15:22:05
1760
原创 Creating index ‘PRIMARY‘ required more than ‘innodb_online_alter_log_max_size‘ bytes of
在释放一个数亿记录的表时报该错重新调整:set global innodb_online_alter_log_max_size=1073741824;128是默认值,将其调大即可。说明:innodb_online_alter_log_max_size是MySQL 5.6.6新加入的一个动态全局参数,用以指定对InnoDB表进行在线DDL操作时,所使用的临时日志文件的最大大小(以字节为单位,默认128M),在创建索引或者使用ALTER语句修改表时会使用该临时文件。该文件记录了DDL操作
2021-01-01 13:02:45
38
原创 解决go float64取值出现科学计数法
解决办法:将该变量类型换成string即可。另附:float64-->string: s:= strconv.FormatFloat(f,'E',-1,64)各类型转换方式详见https://lan6193.blog.csdn.net/article/details/100172848
2020-12-21 11:07:44
236
原创 动态创建goroutine和channel
动态的创建需求一般应用于动态的数据量、动态的时间等,比如我这里遇到的可能是数十万、百万左右的数据量推送请求。可以采取的方式比如按数据量来判断,以十万数据量为一个小单位,十万数据量对应一个channel、一个读goroutine以及一个写goroutine,因为每次推送的目标数量不定但都是比较大的,因此采取动态创建的方式达到较优的并发执行目的,整体goroutine的数量也是可控的。其它能想到的业务应用背景如:每天的数据在第二天凌晨进行加载同步,数据量都很大,那么可以根据数据量来决定goroutine和c
2020-12-20 17:56:55
65
原创 es大数据量分页实践
工作中用到了,经过实践探索,总结下来备忘。如有帮到你,欢迎点赞收藏哦!也欢迎各位看官提出意见和建议。目录问题产生背景方式问题产生背景从es拉取数据时,因为数据量过大,导致查询出来不是想要的所有数据。查询语法中如果不指定size则返回10条记录;指定size后获取的最高数据量是65536,超过65536条就会报错:如果数据量远远大于65536呢?只查询65536条数据的话显然不是全额数据量,这里就需要采用分页了。方式1,基于from + size ,该策略最大查询10000
2020-12-01 12:56:05
162
原创 报错mysql affected rows error: 2
基于 "github.com/go-sql-driver/mysql"使用InsertOne()手写原生SQL replace into 执行插入时报错:mysql affected rows error: 2这时err!=nil,不用慌。经过试验,这实际上插入成功了,只是err不为空,因此可作排除判断,避免当做报错来处理。...
2020-11-20 17:31:34
160
原创 go并发之美·redis篇·接口幂等性设计实现
随风随浪飘荡随着一生里的浪你我在重叠的那一刻顷刻各在一方...简单说下幂等性背景:1,支付页面有个支付按钮,用户本次订单是10元,点了支付后发现没反应,连续又点了3次有了反应(有反应不是因为需要点多次),最后网络等因素干扰解除后支付完毕时发现支付了40元。2,领奖页面,某某通过postman等工具频繁发起请求领奖尝试一次领多个奖励,如一次连续发送1000个请求给某个账号领取,实际上每个人只允许领一次。在基于鉴权通过的情况下,我们要做的就是不论是什么手段发来的请求,只操作第一个有效
2020-10-06 20:57:49
483
原创 go并发之美·redis篇·实现实时排行榜
国庆假期第五天快结束了。今天你够浪了么?个人原创,欢迎阅读~初始化其clientimport ( "context" "github.com/go-redis/redis")var Rdb *redis.Clientfunc InitClient() (err error) { Rdb = redis.NewClient(&redis.Options{ Addr: "localhost:6379", Password: "", DB:
2020-10-05 21:29:01
400
原创 go并发之美·多个操作的分发及限流
缘分随风飘荡缘尽此生也守望你我在凝望那一刻心中有泪飘降...code is graceful , thoughts are precious.今天又萌生一个想法,动手来实现下看看!模拟进行多个操作的分发及限流:模拟许多人在火车站窗口办理相关事情的情景。我们假设窗口分为三类A\B\C:买票窗口、改签/退票窗口、老弱病残孕爱心窗口,每种有多个窗口受大厅大小限制,A、B每个窗口排队最多5人,C类窗口最多排队3人,总有很多人在排队,可以想象下A类下面共3个窗口,即排队最多15人B类
2020-10-02 22:42:31
279
原创 go并发之美·B操作伴随A操作(B和A同步)
时维九月,序属三秋。潦水尽而寒潭清,烟光凝而暮山紫。地势极而南溟深,天柱高而北辰远。人的思想是无限的,想法是很多的,我们每天都能碰到很多事情,也能想到很多事情。平时习惯于在桌面创建临时文件,接下来又会常常修改,大多数最后下来就成了必备的、常查看的文件,而桌面上的东西又经常会删除,备用性文件留在桌面上不太安全。今天想到了这个情景,结合在本地登录WPS时,本地修改后能同步到云端,备份新文件,这才有了这篇博文,于此,想写点代码趁机实现下我的想法。有了想法就准备行动,当自己能驾驭代码完成一件事、实现自己的想法
2020-10-02 13:46:20
259
原创 php学习笔记
本地环境搭建下载安装xampp,下载地址:https://www.apachefriends.org/download.html安装好即可,安装好后控制面板如图:可直接使用,也可修改阿帕奇和mysql端口(不占用80、443、3306等),修改端口方法可参考这位仁兄的文章:https://blog.csdn.net/qing666888/article/details/81914389写的挺详细。将写好的php项目放在htdocs目录下:使用时直接点相应服务后面的start,如此处开
2020-09-30 14:25:51
248
原创 go并发日记·常用并发场景中的并发控制思路与方案
以下涉及讨论的情景均建立在代码中进行了并发的基础上。控制阻塞问题来了:为什么要阻塞?这个问题比较基础,因为代码中你虽然使用go关键字创建了goroutine,但实际上绝大对数情况下执行最快的还是main线(主线程),这时候其他地方你写的再多也是场景1:使用了goroutine来进行并发,希望持续进行不退出思路:使用select{}阻塞、for循环阻塞场景2:使用了goroutine来进行并发,希望执行完任务后退出思路:1,使用select{}阻塞(监听ch,逻辑执行完后给ch写入数
2020-09-26 21:42:33
334
原创 基于3个goroutine交替顺序打印自然数
姿势1:三个chan,分别对应type Data struct { Name string Num int}func main() { chA := make(chan Data) chB := make(chan Data) chC := make(chan Data) // 分别用A、B、C标识3个goroutine go func() { for i := 1; ; { var data0 = Data{Name: "A", Num: i} chA <
2020-09-12 10:10:02
436
原创 mysql表某列是int(11) unsigned类型,基于gorm拿到的int类型字段的数据全是0的问题
背景:mysql表某列是int(11) unsigned类型,基于gorm手写sql拿到的数据是一个全是0,sql大致长下面这样:sql="select appid xxxx" 即查出来的应该是id的一个数组基于gorm框架使用DB.Raw(sql, startTime, endTime).Find(&idList).Error来获取值,并用[]int64接收获取到的id列表,拿到的idList长度对着(db中查出的数量为277,idList长度也是277),但是值全是0。经过一番...
2020-09-08 23:31:07
523
原创 commands out of sync. did you run multiple statements at once
执行gorm.open时提示,原因是库名写错了
2020-09-08 13:06:20
671
原创 go去除字符串中的\
上代码:var x = `\`func RemoveX(str string) string { var res string for i := 0; i < len(str); i++ { if string(str[i]) != x { res = res + string(str[i]) } } return res}
2020-09-08 13:03:46
560
原创 解决Uncaught SyntaxError: Invalid or unexpected token
基于axios给后端发请求时报的错,问题出在了标点符号上:原因就是多了一个逗号。。。如下图,干掉它就完事了
2020-09-04 13:19:45
1781
原创 nodejs中如何调用其他js文件的函数
两个目录,下面各一个js文件:func.js中需要调用obj_func.js中的两个函数。func.js文件:var objFunc = require('../object/obj_func') // 目录名/文件名objFunc.fff(1,6)objFunc.func(2,1)即使用require引入其他的js文件(写文件的相对路径)obj_func.js文件定义了两个函数func、fff:var func = function (a, b) { c
2020-09-04 13:19:23
595
原创 Vscode配置远程Linux文件/工程同步
背景:nodejs工程,运行时需要连接远程数据库,而数据库地址是本地访问不了的,但在另一台自己能连接的Linux机器上是可以访问的,IDE工具用的vscode,因此要用一种手段来同步这台机器上的目录达到写代码、正常运行等操作。点击vscode左侧此处安装插件,搜索remote,安装remote ssh,想切换到中文的话可以安装个Chinese:安装后点击右侧这个设置按钮,勾选箭头所指的:添加远程host连接,下图按步骤操作,第三步时输入如下:ssh root@IP -p 端口...
2020-08-27 18:42:41
667
转载 Linux下搭建&配置nodejs+npm环境
以下亲测没问题。大家放心操作。1,下载cd /usr/local/wget https://npm.taobao.org/mirrors/node/v12.16.1/node-v12.16.1-linux-x64.tar.xz2,解压&重命名tar -xvf node-v12.16.1-linux-x64.tar.xzmv node-v12.16.1-linux-x64nodejs3,设置软连接 或 环境变量(永久)ln -s /usr/local/n...
2020-08-27 18:41:41
400
原创 git新建本地分支出现fatal: Not a valid object name:错误
原因是待创建的分支还没有更新到本地执行git fetch,然后继续新建分支操作即可成功。
2020-08-27 18:41:06
400
原创 go两数相除得到预期小数并保留相应位数
1,保留小数以fmt.Sprintf来实现,转为字符串后再以strconv.ParseFloat来转为浮点数。2,先将要操作的数转换为浮点数再进行相除操作。操作如下:func main() { var a int = 3 var b int = 7 fmt.Println(a / b) // 结果为0,不符合预期 num0, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", a/b), 64) // 保留2位小
2020-08-27 18:40:41
1031
原创 cannot find package “xxx“ in any of的解决方案
目录提示找不到的是工程内部自定义的包名提示找不到的是第三方库的包名这个问题遇到频率还是比较高,这次总结出来,希望能让更多的人脱离苦海。提示找不到的是工程内部自定义的包名今天出了个奇怪的事情,编译项目提示cannot find package "包名" in any of 其中提示找不到的包名是工程内已有的。接连提示了好几行类似的信息。我在本地开发时goland中使用插件与指定远程Linux机器进行了同步,目的即本地修改了的可以同步到Linux机器上,并在Linux下...
2020-08-25 13:49:47
1878
原创 死磕row.Cells undefined (type *xlsx.Row has no field or method
当开始写这篇文章时,终于松一口气了。目录问题描述与排查过程解决方案问题描述与排查过程接手了以前同事开发的项目,编译项目报错如下:提示xlFile.Sheet[readInfo.SheetName].Rows undefined (type *xlsx.Sheet has no field or method Rows)row.Cells undefined (type *xlsx.Row has no field or method Cells)rows[0].Cells
2020-08-20 19:16:38
589
原创 按map的key或value的顺序获取map中的数据
map存放数据本身是无序的,我们不能直接对map本身的存储结构进行直接操作,因此可在输出上做手脚。func main() { m := make(map[int]string) m[1] = "A" m[5] = "B" m[2] = "B" m[3] = "C" m[4] = "A" for k, v := range m { fmt.Println(k, v) // 多次运行,每次输出的都是key无序的 } // 输出map中的数据,按key排序 count := l
2020-07-28 22:26:56
908
原创 合并两个有序数组
目录题目解决题目给你两个有序整数数组nums1 和 nums2,请你将 nums2 合并到nums1中,使 nums1 成为一个有序数组。说明:初始化nums1 和 nums2 的元素数量分别为m 和 n 。你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,5,6], n = 3输出:[1,2,2,3,...
2020-07-28 21:24:34
589
原创 合并两个有序单链表为一个有序链表
代码实现func merge2List(list1 *ListNode, list2 *ListNode) *ListNode { node1,node2 := list1,list2 res := new(ListNode) current := res for node1 != nil && node2 != nil { if node1.Data < ...
2020-07-28 21:22:14
963
原创 redash平台查询最近七天内的数据并将查询结果导出到文件
查询6月17日截止的前面七天的数据,核心语句:select * from ods.mongodb_库名_表名where appid= 'wxef05f6e4a0fe9349' and cdate = '20200617' and mstyle = 2 and ct > 1591760553 order by ct desc查询时间戳很简单,地址https://tool.lu/timestamp/ 输入下七天前的时间即可查出准确时间戳。(如有更好的办法欢迎留言讨论)如果要在结果中...
2020-06-18 13:09:08
441
原创 对象数组中按对象的指定某个字段排序
筚路蓝缕,以启山林。抚有蛮夷,以属华夏。不鸣则已,一鸣惊人。 ——《左传`宣公十二年》问题背景今天遇到一个现象,因部分因素形成了信息列表infoList数组,该数组内每个元素是一个Info对象,Info有一个属性LoginTi...
2020-06-09 20:05:40
798
原创 分别以google.golang.org/grpc和net/rpc简单理解RPC
筚路蓝缕,以启山林。抚有蛮夷,以属华夏。不鸣则已,一鸣惊人。——《左传`宣公十二年》rpc:远程过程调用,是一个思想,一个概念。核心是分布式应用间通信,屏蔽不同语言之间的关联,解耦(个人认为)。net/rpc包是一个go自带的rpc实现方式,可...
2020-06-01 09:56:13
1235
原创 gopher:操作下protobuf
目录数据类型的对应表实践的一个例子它的优势及特点这里不赘述了,网上一大堆相关说明。数据类型的对应表.proto Type C++ Type Java Type Go Type PHP Type double double double float64 float float float float float32 float int32 int32 int int32 intege
2020-06-01 00:55:13
1254
原创 电脑版微信同时登录多个微信账号
微信图标上右键属性,复制微信的启动路径,如图:新建一个文本文档,后缀名改为.bat,内容如下:即start+空格+复制的路径,需要登录多少个微信账号就写多少行,保存,双击这个文件执行:登录即可。...
2020-05-31 22:40:49
996
原创 搭建protobuf+gRpc环境
protobuf:类似于json,xml等,常用于通信协议、数据存储。rpc:远程过程调用,是一个概念、一个思想。可基于socket、系统自带的管道技术、HTTP等多种方式进行实现。gRpc:rpc的一种实现。通过Netty Channel作为数据通信。序列化、反序列化基于Protobuf。前提,需要拉取的库:// 谷歌开源的gRpc库go get -u google.golang.org/grpc// protobuf的编译器插件protoc-gen-gogo get -u .
2020-05-31 22:39:47
856
原创 五月随笔
人生若只如初见,何事秋风悲画扇。一切的瞬间,一切珍贵的人和事都太美好,在这个繁华的世界,难以忘却却难以回忆。感慨颇多,写点什么吧。岁月不居,时节如流。虚岁已是24岁,已经度过人生的24个年头,现在是什么处境?来北漂快两年了(一年11个月),两载光阴如此之快,人的一生又有多少个两年呢?酸甜苦辣,历历在目。收获了什么,又失去了什么?曾经因什么而痛苦,因什么而自信,因什么而自卑?曾经对自己的期许几何,如今有没有实现,如今是否是自己当初期待的那个样子?曾几何时,为了生活漂泊..
2020-05-18 11:41:59
1268
3
原创 Failed to load kernel module ip_vs with modprobe.
k8s启用ipvs模式操作过程中,kube-proxy容器的日志发现有如下报错:W0421 03:57:59.336805 9679 proxier.go:493] Failed to load kernel module ip_vs with modprobe. You can ignore this message when kube-proxy is running inside...
2020-04-24 11:16:00
1051
原创 go并发日记·多goroutine并发安全的操作共享变量
千里之行,始于足下。// 多个协程并发安全的操作共享变量:允许多个goroutine操作变量,但是在同一个时刻最多只有一个goroutine在操作共享变量。// 背景设计:三个人共同抢票,抢完一次(只要还能抢到)还可继续抢,直到没票。var tickets = 15 // 剩余15张票var lock sync.Mutexvar wait sync.WaitGroupvar co...
2020-04-24 11:15:46
1712
1
原创 go并发日记·避免goroutine泄漏/实现协程可控
千里之行,始于足下。目录goroutine内部逻辑来触发控制结束goroutine方式1方式2方式3外部条件触发控制结束goroutine多个协程,某个goroutine逻辑内部报错需要停止时,需要所有goroutine都结束多个协程,其中某协程需要停止时不影响其他协程goroutine内部逻辑来触发控制结束goroutine实际背景:逻辑报错了需要停止任务...
2020-04-16 19:48:26
783
2
原创 去除字符串前后空格 go
实现func DeletePreAndSufSpace(str string) string { strList := []byte(str) spaceCount, count := 0, len(strList) // 去除字符串开头的所有空格 for i := 0; i <= len(strList)-1; i++ { if strList[i] == 32 {...
2020-04-15 15:04:55
1980
1
原创 linux查找包含指定文件名的文件位置/找包含指定内容的文件位置/找文件中的指定内容
通过具体/模糊文件名找文件位置1,找名为ump-api-error.log的文件在什么位置,通过-name指定文件名[root@ump03 ~]#find / -name ump-api-error.log/var/log/httpd/ump-api-error.log2,找文件名前缀是ump-api-er的文件在什么位置,名字后面的我记不清了,用*匹配[root@...
2020-04-14 16:21:54
2017
原创 Harbor镜像同步
准备两台有docker的机器,我这里是192.168.103.180和192.168.103.59。1,安装docker-compuse我这里一开始下载的是1.25.4版本的,但是问题太多,最终选择和其他环境一样的版本1.23.2。果断pip uninstall卸载掉并执行scp直接将其他机器的docker-compuse发到这两个机器下了。2,下载并启动harbor地址h...
2020-04-13 11:15:12
1751
2
基于MVC的管理系统代码(增删改查分页一应俱全哦)
2020-05-29
基于MVC的管理系统代码(增删改查一应俱全)
2020-03-28
go-swagger.zip
2020-01-20
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝