自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(403)
  • 资源 (1)
  • 收藏
  • 关注

转载 goland依赖一直飘红解决 MAC GOLANG

golang依赖飘红难受把go modules 打开,然后evironment里的值设置为下图点击apply,ok 就解决了另外还要记得要给项目生成一个go.mod文件go mod init xxxgo mod tidy 就可以了

2021-04-22 18:05:52 2019

原创 电话号码的字母组合

题目给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/解题var phoneMap map[string]string = map[string]string{ "2":"abc", "3":"def", "4":"gh

2021-04-20 19:08:40 206

原创 Elasticsearch 学习(todo)

1、Elasticsearch简介Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎,无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。但是,Lucene只是一个库。想要发挥其强大的作用,你需使用Java并要将其集成到你的应用中。Lucene非常复杂,你需要深入的了解检索相关知识来理解它是如何工作的。Elasticsearch也是使用Java编写并使用Lucene来建立索引并实现搜索功能,但是它的目的是通过简单连贯的RE

2021-04-20 15:08:48 238

原创 wrk学习

1、简介wrk 是一款针对 Http 协议的基准测试工具,它能够在单机多核 CPU 的条件下,使用系统自带的高性能 I/O 机制,如 epoll,kqueue 等,通过多线程和事件模式,对目标机器产生大量的负载。PS: 其实,wrk 是复用了 redis 的 ae 异步事件驱动框架,准确来说 ae 事件驱动框架并不是 redis 发明的, 它来至于 Tcl 的解释器 jim, 这个小巧高效的框架, 因为被 redis 采用而被大家所熟知。2、优势、劣势优势:劣势:wrk 目前仅支持单机压测

2021-04-19 19:52:56 206 1

原创 JWT学习

1、简介`Json web token (JWT)`, 是为了在网络应用环境间传递声明而执行的一种基于`JSON`的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的`单点登录(SSO)场景`。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。2、JWT 的几个特点(1)JWT 默认是不加密,但也是可以加密的。生成原始

2021-04-19 15:58:12 134

原创 go 数据库迁移工具sql-migrate

migrate 软件https://github.com/rubenv/sql-migrate 下载安装go get -v github.com/rubenv/sql-migrate/...教程:https://github.com/rubenv/sql-migrate 使用sql-migrate 命令\$ sql-migrate --helpusage: sql-migrate [--version] [--help] <command> [<args>]A

2021-04-16 14:45:56 1010

原创 golang中生成读取二维码

skip2/go-qrcode 生成二维码github地址:https://github.com/skip2/go-qrcodepackage mainimport qrcode "github.com/skip2/go-qrcode"import "fmt"func main() { err := qrcode.WriteFile("https://github.com/skip2/go-qrcode", qrcode.Medium, 256, "qr.png") if err != n

2021-04-15 17:35:16 264

原创 apollo下载、安装与使用

安装java SDK访问Oracle官网 https://www.oracle.com/index.html 下载javaSDK参考连接:https://www.jianshu.com/p/194531d106ae安装Appollohttps://github.com/ctripcorp/apollo/wiki/Quick-Start导入sql语句source /your_local_path/sql/apolloportaldb.sqlsource /your_local_path/sql/

2021-04-15 15:42:54 1825

原创 go kafka流式处理

goka框架:https://blog.csdn.net/studyhard232/article/details/88557962https://studygolang.com/articles/24483https://www.ctolib.com/lovoo-goka.htmlpackage mainimport ( "context" "fmt" "log" "os" "os/signal" "syscall" "github.com/lovoo/goka" "githu

2021-04-15 12:08:54 392

转载 Golang 中使用 JSON 的小技巧

1、临时粘合两个structtype BlogPost struct { URL string `json:"url"` Title string `json:"title"`}type Analytics struct { Visitors int `json:"visitors"` PageViews int `json:"page_views"`}json.Marshal(struct{ *BlogPost *Analytics}{po

2021-04-14 16:11:25 177

原创 gin 兼容字符串整型

1、概述Gin 框架中,处理 JSON 格式的参数绑定时,默认采用的标准包 encoding/json,然而标准包不能满足我们的一些要求,比如兼容字符串整型、PHP空数组、时间格式等。jsoniter ( json-iterator )是一款快且灵活的 JSON 解析器Jsoniter 是最快的 JSON 解析器。它最多能比普通的解析器快 10 倍之多,独特的 iterator api 能够直接遍历 JSON ,极致性能! 0 内存分配!这样的 iterator 你绝对没有用过github地址:h

2021-04-14 16:00:21 420

原创 《深入理解kafka核心设计与实现原理》读书笔记

基础篇主题:主题是一个逻辑上的概念,它还可以细分为多个分区,一个分区只属于单个主题,很多时候也会把分区称为主题分区(Topic-Partition)。同一主题下的不同分区包含的消息是不同的,分区在存储层面可以看作一个可追加的日志(Log)文件,消息在被追加到分区日志文件的时候都会分配一个特定的偏移量(offset)。offset 是消息在分区中的唯一标识,Kafka 通过它来保证消息在分区内的顺序性,不过 offset 并不跨越分区,也就是说,Kafka 保证的是分区有序而不是主题有序。分区:Ka

2021-04-14 15:36:50 180 2

原创 二叉搜索树节点最小距离

二叉搜索树节点最小距离https://leetcode-cn.com/problems/minimum-distance-between-bst-nodes//** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ import "math"func minDiffInBST(roo

2021-04-13 17:50:07 62

原创 最大数

最大数给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。https://leetcode-cn.com/problems/largest-number/import ( "sort" "strconv" "strings")type Compare []stringfunc (c Compare) Len() int{ return len(c)}func (c Compar

2021-04-12 17:33:33 109

原创 跳跃游戏

跳跃游戏给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。https://leetcode-cn.com/problems/jump-game/func canJump(nums []int) bool { pos := 0 // 最远的距离 for i,item := range nums{ if i <= pos { if i+ite

2021-04-12 16:48:08 66

原创 买卖股票的最佳时机

买卖股票的最佳时机给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/func maxProfit(prices []int)

2021-04-12 15:51:48 77

原创 岛屿类问题的通用解法、DFS 遍历框架

岛屿的最大面积https://leetcode-cn.com/problems/max-area-of-island/func maxAreaOfIsland(grid [][]int) int { max := 0 for x,item := range grid { for y := range item { tmp := getIslandArea(grid,x,y) if tmp > max {

2021-04-09 16:47:31 85

原创 回溯算法

// todo

2021-04-07 17:43:04 85

转载 动态规划

概念动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。基本思想与策略基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有可能达到最优的局部解,丢弃其他局部解。依次解决各子问题,最后一个子问题就是初始问题的解。由于动态规划解决的问题多数有重叠子问题这

2021-04-07 17:22:41 138

转载 分治算法

// todo

2021-04-07 17:13:00 92

原创 贪心算法

// todo

2021-04-07 17:12:07 95

原创 go读取csv文件

package mainimport ( "encoding/csv" "fmt" "os")const ( // 文件路径 filePath = "source.csv" // 处理过后新文件路径 newFilePath = "dest.csv")func main(){ // 绝对路径 fs, err := os.Open(filePath) if err != nil { fmt.Println(fmt.Sprintf("can not open the f

2021-04-06 18:33:14 1027

原创 《Redis 设计与实现》阅读

1、资料如何阅读 Redis 源码?Redis 设计与实现redis3.0源码2、读后感// 待续

2021-03-31 19:05:23 147

转载 gorm添加数据库排他锁,for update

适用于先读后更新的数据竞争场景,且应该将加锁操作放到事务中,防止锁被自动释放func UpdateUser(db *gorm.DB, id int64) error { tx := db.Begin() defer func() { if r := recover(); r != nil { tx.Rollback() } }() if err := tx.Error; err != nil { re

2021-03-31 18:33:41 893

原创 《Redis 深度历险: 核心原理和应用实践》读后小结

基础https://lioncat.blog.csdn.net/article/details/107006707https://lioncat.blog.csdn.net/article/details/106931908redis命令中心数据结构https://blog.csdn.net/weixin_39684228/article/details/113315662分布式锁使用 setnx(set if not exists) 指令,只允许被一个客户端占坑。先来先占, 用 完了,再调用

2021-03-31 17:57:07 74

转载 Yapi直接运行接口

下载https://github.com/xiuxiuing/cross-request安装https://cloud.tencent.com/developer/article/1517980

2021-03-31 13:28:07 406

原创 go一些小的坑

1、gin 路由/aa/bb/aa/:id两个路由会出现冲突2、web参数传递前段传的是json,需要按字符串接收后,再进行解码(json.Unmarshal())3、遍历指针切片for _,item := range []*int{tmpItem := item.....}go中一切处理都是复制,item接收的地址指向的空间不断变化,导致item的值都是切片的最后一个值,需要用临时变量处理4、mysql group bymysql5.7以后默认禁用全量group by如果一

2021-03-29 14:21:41 69

转载 kafka学习记录

简介kafka是一个分布式消息队列。具有高性能、持久化、多副本备份、横向扩展能力。生产者往队列里写消息,消费者从队列里取消息进行业务逻辑。一般在架构设计中起到解耦、削峰、异步处理的作用。kafka对外使用topic的概念,生产者往topic里写消息,消费者从读消息。为了做到水平扩展,一个topic实际是由多个partition组成的,遇到瓶颈时,可以通过增加partition的数量来进行横向扩容。单个parition内是保证消息有序。每新写一条消息,kafka就是在对应的文件append写,所以性能非

2021-03-19 13:12:28 114

原创 记录 mac下载sentry

1.下载安装docker很多种方法:brew:https://www.jianshu.com/p/9142187552db桌面:https://www.docker.com/products/docker-desktop2.下载安装sentry有一些文章是说需要通过命令生成密钥,目前已有 install.sh 脚本,所以简化了配置过程,不需要手动调整密钥,快结束的时候会让你输入 邮箱+密码,来作为登陆 sentry 的管理员账号。git clone https://github.com/ge

2021-03-18 19:12:05 173

原创 基于 CentOS 7 搭建异常监控 Sentry --踩坑日记

安装sentry需要2核,尽可能多的空间1、下载docker(1)安装docker依赖慢,超时添加Docker 镜像源加速镜像,通过修改daemon配置文件/etc/docker/daemon.json来使用加速器https://cloud.tencent.com/document/product/1207/45596?from=information.detail.%E8%85%BE%E8%AE%AF%E4%BA%91%E5%8A%A0%E9%80%9Fdocker(2)启动docker时,

2021-03-18 17:47:15 838

转载 内存管理设计

内存管理内存管理系统和模块在操作系统以及编程语言中都占有着重要的地位,任何资源的使用都离不开申请和释放两个动作,内存管理中的两个重要过程就是内存分配和垃圾回收,内存管理系统如何利用有限的内存资源为尽可能多的程序或者模块提供服务是它的核心目标。内存分配内存分配器是内存管理系统中的重要组件,它的主要职责是处理用户程序的内存申请。虽然内存分配器的职责非常重要,但是内存的分配和使用其是一个增加系统中熵的过程,所以内存分配器的设计与工作原理相对比较简单,我们在这里介绍内存分配器的两种类型。内存分配器只包含线性

2021-03-16 19:12:36 359

转载 数据库连接池

1. 为什么要使用连接池数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。 一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完都关闭连接,这样造成系统的性能低下。数据库连接池的解决方案是在应用程序启动时建立足够的数据库连接,并讲这些连接组成一个连接池(简单说:在一个“池”里放了好多半成品的数据库联接对象),由应用程序动态地对池中的连接进行申请、使用和释放。对于多于连接池中连接数的并发请求,应该在请求队列中排队等待。并且应用程序可以根据池中连

2021-03-16 18:29:30 257

转载 服务端主动关闭,客户端继续写,会发生什么?

1、四次挥手下图显示了一次典型的TCP四次挥手的过程,以及主动关闭方和被动关闭方的状态变化。在图中是客户端主动断开了连接,这里只是举个例子,服务端一样可以主动断开连接。为什么是四次挥手,因为如果只进行了1、2次。由于TCP是全双工的,可以处于Half-Close状态,此时就是处于Half-Close状态,客户端到服务器的通道已经关闭,服务器到客户端的通道还没关闭,所以需要第三次和第四次来完全关闭连接。客户端主动关闭如果客户端主动关闭连接,那就是正常的关闭了。首先客户端发起关闭连接的请求,服务端收到

2021-03-16 18:18:41 2775

转载 BPF过滤语法

Wireshark抓包过滤器语法设置1. 抓包过滤器BPF语法(Berkeley Packet Filter)——基于libpcap/wincap库,在抓包的过程中过滤掉某些类型的协议,不抓取过滤掉的协议。(建议在流量特别大的情况下使用)1.1 语法说明类型Type: host、net、port方向Dir: src、dst协议Proto: ether、ip、tcp、udp、http、ftp逻辑运算符: &&与、||或、!非1.2 例子src host 192.168.1.1

2021-03-16 13:34:24 788

转载 MacOS下netstat和lsof

1、netstat和lsofNetstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。lsof(list open files)是一个列出当前系统打开文件的工具。在终端下输入lsof即可显示系统打开的文件,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。1.1netstat各个参数-a (

2021-03-14 22:25:24 1676

转载 Goland如何断点调试Debug

第一步:进入编辑模式第二步:开始进行编辑第三步:就可以进行调式了

2021-03-14 22:01:58 822

原创 go技术栈

redigo简单使用:https://blog.csdn.net/wangshubo1989/article/details/75050024连接池:https://studygolang.com/articles/26061gorm简单使用:https://www.bookstack.cn/read/gorm-cn-doc/database.mdhttps://www.liwenzhou.com/posts/Go/gorm/https://www.jianshu.com/p/e9a60d

2021-03-09 13:39:19 356

原创 mac mongo下载安装

1.下载MongoDB所需要的二进制文件可以通过 官网下载https://www.mongodb.com/download-center/enterprise2.解压下载的文件tar -zxvf mongodb-macos-x86_64-4.2.1.tgz3.设置PATH为了方便运行,设置path还是要好一点: 打开bash配置文件 vi ~/.bash_profile在配置文件里面添加 export PATH=<mongodb的安装目录>/bin:$PATH 如expo

2021-03-09 13:18:26 212

转载 Go依赖模块版本之Module避坑使用详解

Goland 提示 Unresolved reference 错误解决1,在goland中新建 go项目,重新选择项目所在文件夹2,在terminal 里运行go mod init 项目名称go mod vendorgo mod tidyModule避坑使用详解参考链接:https://www.cnblogs.com/sunsky303/p/10710637.html...

2021-03-07 12:37:21 259

转载 go mod tidy报错verifying module: invalid GOSUMDB: malformed verifier id

环境:golang1.14,设置export set GO111MODULE=on【开启此项】新建golang项目或者从其它项目迁移到go mod环境下go mod init [域名/组名/项目名]添加依赖或移除不需要的依赖go mod tidy查看依赖图go mod graph重点来了:出错信息,如下图解决方式:查看golang 环境发现GOSUMDB=“on”,修改此项go env -w GOSUMDB=“sum.golang.org”再次执行go mod

2021-03-07 11:06:35 2426

空空如也

空空如也

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

TA关注的人

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