- 博客(28)
- 收藏
- 关注
原创 kafka(一)
文章目录前言消息队列什么是消息队列MQ为什么使用消息队列消息队列的流派有Broker的MQ重Topic轻Topic无Broker的MQ安装使用场景基本概念kafka的安装安装包下载重要配置修改启动kafka生产者和消费者发送消息消费消息单播消息多播消息查看消费组主题和分区主题topic基础概念创建topic查看topic列表查看topic详细信息分区partition基础概念创建多分区topic日志文件内容集群搭建新增配置启动kafka检查是否搭建成功副本概念参考文献前言仅为个人笔记,欢迎交流指正。建议
2022-04-13 18:04:37
2872
1
原创 Go 源码包RWMutex
文章目录前言源码包源码包地址基础定义读加解锁写加解锁参考文献前言读写锁类比于互斥锁,锁的粒度更小了。互斥锁,我们知道,一个资源被一把互斥锁,锁住了,另外的goroutine,在锁定期间,必定不能操作。读写锁就不同了:写锁需要阻塞写锁:一个协程拥有写锁时,其他协程写锁定需要阻塞写锁需要阻塞读锁:一个协程拥有写锁时,其他协程读锁定需要阻塞读锁需要阻塞写锁:一个协程拥有读锁时,其他协程写锁定需要阻塞读锁不能阻塞读锁:一个协程拥有读锁时,其他协程也可以拥有读锁源码包源码包地址src/sync/r
2022-04-11 17:51:13
242
原创 Go 源码包Mutex
文章目录前言源码包源码地址基础定义加锁解锁参考文献前言在高并发场景下,势必会涉及到对公共资源的竞争。当对应场景发生时,我们经常会使用 mutex 的 Lock() 和 Unlock() 方法来占有或释放资源,互斥锁就是并发控制的一个基本手段,是为了避免竞争而建立的一种并发控制机制。简单来说就是控制并发源码包源码地址mutex 的源码主要是在 src/sync/mutex.go文件里基础定义// 锁实例type Mutex struct { state int32 // state记
2022-04-06 14:10:52
578
原创 Zookeeper理解与集群搭建
文章目录前言介绍简介Zookeeper持久化机制Zookeeper特性安装与部署节点znode介绍Zookeeper如何保存数据znode节点信息znode结构znode类型Zookeeper怎么实现分布式锁zk中锁的种类zk中如何上读锁zk中如何上写锁羊群效应(惊群效应)Watch机制权限设置zookeeper集群集群角色介绍集群搭建创建4个节点的文件夹创建myid文件,并设值新增4个zoo.cfg配置文件启动4台zookeeper服务连接Zookeeeper集群ZAB协议什么是ZAB协议ZAB协议定义的
2022-03-04 13:55:52
232
原创 Go 发送QQ邮件
文章目录前言发送到腾讯企业邮箱发送到QQ邮箱前期准备代码前言个人笔记,欢迎指正go使用代码发送邮件到QQ邮箱或腾讯企业邮箱需要引用包go get gopkg.in/gomail.v2发送到腾讯企业邮箱package mainimport ( "gopkg.in/gomail.v2" "log")func main() { sender := "luoqiang@qiye.com" //发送者腾讯企业邮箱账号 password := "pwd123456" //发
2022-02-26 19:44:29
1340
原创 布隆过滤器 (BloomFilter)
文章目录布隆过滤器简介应用场景实现原理如何选择哈希函数个数和布隆过滤器长度优缺点Go语言实现布隆过滤器简介布隆过滤器(Bloom Filter) 是由 Howard Bloom在1970年提出的二进制向量数据结构,它具有很好的空间和时间效率,被用来检测一个元素是不是集合中的一个成员,即判定 “可能已存在和绝对不存在” 两种情况。如果检测结果为是,该元素不一定在集合中;但如果检测结果为否,该元素一定不在集合中,因此Bloom filter具有100%的召回率。应用场景垃圾邮件过滤防止缓存穿透爬
2022-02-10 17:41:44
330
原创 阅读笔记 - MySQL Change Buffer
文章目录前言MySQL - Change Buffer什么是Change BufferChange Buffer原理为什么针对非唯一索引页Change Buffer好处适合使用场景相关参数参考文献前言仅为个人笔记,欢迎指正MySQL - Change Buffer什么是Change Buffer在InnoDB中,当对应的数据不存在与Buffer Pool中时,为了避免大量的随机磁盘I/O可能带来的性能瓶颈,InnoDB 在Buffer Pool 中划分出一部分内存,称为Change Buffe
2021-12-27 16:17:05
979
原创 实现一个二叉搜索树(Binary Search Tree)
文章目录定义代码实现一、Github代码地址二、节点三、树实现接口四、4种遍历方式五、搜索六、删除结尾定义二叉搜索树(Binary Search Tree),又名二叉排序树(Binary Sort Tree),它是一种数据结构,支持多种动态集合操作,如 Search、Insert、Delete、Minimum 和 Maximum 等,二叉查找树相比于其他数据结构的优势在于查找、插入的时间复杂度较低,均为O(log n)。若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值;若任意节点
2021-11-02 15:18:18
265
原创 Go二维码生成
前言Go语言生成二维码使用到的库二维码库 go get github.com/skip2/go-qrcode图像处理 go get github.com/nfnt/resize效果展示普通二维码带icon的二维码代码普通二维码func main() { content := "这是二维码内容" //二维码内容 fileName := "output.png" //输出文件名 fileSize := 256 //二维码大小 //生
2021-09-01 17:24:44
657
原创 Linux Shell
文章目录什么是Linux Shell ?概念Shell 基础shell 指令查看 - 当前shell版本查看 - 有哪些Shell版本切换shell版本创建shell脚本文件bash描述环境配置文件zsh描述环境配置文件zsh引用bash配置oh-my-zsh什么oh-my-zsh ?oh-my-zsh功能有哪些安装oh-my-zsh安装失败,被墙解决方案什么是Linux Shell ?概念操作系统的接口分类两类: CLI: command line interface 命令行接口,常见的有: sh
2021-08-06 18:12:12
448
原创 Go 关于Map的底层实现
Go map的底层实现什么是map:由一组对组成的抽象数据结构,并且同一个key只会出现一次 map的模型源码地址:src/runtime/map.go map的实现方式:Go采用哈希查找表方式实现map,并且使用链表方式解决哈希冲突 map的主要数据结构有:哈希查找表: 在go语言中,map是由多个桶(buckets)组成的,每个桶(buckets)里又由多个hmap组成(bmap就是用来存放数据),当将数据存入map时,底层会使用哈希函数得到数据的key的哈希值。此时再通过这哈希值的高8.
2020-09-21 20:33:03
490
转载 什么是单点登录(SSO)
一、什么是单点登录?单点登录的英文名叫做:Single Sign On(简称SSO)。在初学/以前的时候,一般我们就单系统,所有的功能都在同一个系统上。所有的功能都在同一个系统上后来,我们为了合理利用资源和降低耦合性,于是把单系统拆分成多个子系统。拆分成多个子系统比如阿里系的淘宝和天猫,很明显地我们可以知道这是两个系统,但是你在使用的时候,登录了天猫,淘宝...
2019-05-29 11:07:27
3275
转载 【Beego】Filter 过滤器中条件查询不生效的小坑
前言:刚接触beego,最近在ORM中碰到一个条件查询不生效的小坑,经过不断的google终于找到了一篇解决方案的文章,所以在此copy原文章在此记录一番。如果需要看原文请拉倒最下方。在beego中使用ORM做一些查询操作,一般会用到下面这样的代码o := orm.NewOrm()user := new(User)var users []Userqs = o.Query...
2019-05-16 10:06:59
3051
原创 CentOS7 搭建GitLab
一、简介 GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现...
2019-04-01 16:57:08
424
转载 CentOS7 搭建Git服务器
目录一、在服务器上创建一个新用户二、创建一个Git仓库三、在服务器端打开RSA认证四、在客户端创建SSH key五、把步骤四生成的公钥导入服务器六、在客户端clone远程git仓库七、禁止用户git通过shell进行登录八、结束语 - 初始化master分支一、在服务器上创建一个新用户1.添加git用户adduser git2.更改密码...
2019-03-29 18:03:17
200
转载 【Golang】rune数据类型
在学习golang基础的时候,发现有个叫rune的的数据类型,当时不理解这个类型的意义。曾百度过但没过多久又忘了,导致再次碰到时又想不起来,故转载一个博客记录下以此加深印象。查询,官方的解释如下:// rune is an alias for int32 and is equivalent to int32 in all ways. It is// used, by conventio...
2019-03-20 15:35:55
243
转载 golang几种post请求方式
转自:https://www.cnblogs.com/mafeng/p/7068837.htmlGet 请求 //get请求可以直接http.Get方法,非常简单。func httpGet() { resp, err := http.Get("http://www.01happy.com/demo/accept.php?id=1") if err != nil ...
2019-01-18 14:19:19
2540
原创 Go语言 - 广度优先算法(走迷宫)
前言:最近在慕课网看了个视屏学习广度优先算法,通过这个算法来计算出走出迷宫的最短路径,因此在此记录来加深自己对广度优先算法的理解。目录 一、什么是广度优先算法?广度优先算法能做什么?二、代码实现三、最终结果一、什么是广度优先算法?广度优先算法能做什么?广度优先算法(Breadth-First Search),同广度优先搜索,又称作宽度优先搜索,或横向优先搜索,简称B...
2018-11-22 14:22:31
984
原创 Centos7 搭建lnmp (Nginx + MySQL5.7 +PHP7.1)
目录准备:yum的安装一、安装Nginx二、安装MySQL 5.7三、安装PHP 7.1四、PHP 关联 Nginx五、测试MySQL六、恭喜你!!!准备:yum的安装yum update 一、安装Nginx1.安装Nginx最新源yum localinstall http://nginx.org/packages/centos/7/n...
2018-11-08 17:19:39
541
转载 SmartGit 过期
Windows 上 SmartGit 试用30天过期解决方法 问题:打开SmartGit时发现体验时间过了并弹框提示如下,许可证书过期了。【you commercial smartGit eveluation period ended.please provide the license file you've received by e-mail after purchase】...
2018-11-05 14:26:26
1128
原创 Beego下载和安装
【一】Beego的下载和安装安装前需注意:1.您需要安装 Go 1.1+ 以确保所有功能的正常使用。2.在安装Beego前,要先将 $GOPATH/bin 添加到系统环境变量中。开始安装下载安装beego和bee(注意:beego和bee是两个概念,beego是框架,bee是命令工具)1.下载和安装beego,下载安装成功后我们会在 GOPATH 的 src/githu...
2018-11-01 18:13:41
6123
4
原创 Golang time包的基本使用
获取现在的时间//标准时间nowTime := time.Now().Format("2006-01-02 15:04:05") // 2018-10-25 10:59:40//时间戳nowTime := time.Now().Unix() // 1540437645 标准时间转成时间戳//方法一//注意:这样转出来的时间戳为UTC时间,UTC的时间戳比...
2018-10-25 11:37:39
306
原创 纸牌类游戏JS判断类型
纸牌类游戏判断牌类型牌组定义如下牌面值(除10求整) 方片 梅花 红桃 黑桃 3 31 32 33 34 4 41 42 43 44 ...
2018-09-05 12:04:52
1187
原创 Linux Centos 重置Mysql密码
目录不知道密码的情况下知道密码的情况下 不知道密码的情况下 设置数据库免密码登陆 找到mysql配置文件:my.cnf 修改配置文件,在【mysqld】模块添加:skip-grant-tables 保存退出 使配置生效 service mysqld restart //重启mysql配置服务 ...
2018-08-30 18:32:58
218
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人