自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux的基本入门命令详解

3.1.1 登录LINUX终端两种终端仿真器:1、GNOME桌面的GHOME Terminal ; 2、KDE桌面的Konsole Terminal远程连接终端工具: Xshell , CRT 。后期会教你安装。例1:通过tty命令看到当前所属的虚拟终端 [root@iZ2ze71uizyvln1trljsglZ /]# tty /dev/pts/1注:shift+ctrl+N ...

2019-03-18 22:12:32 184

原创 redis哨兵+主从+redis集群

一、redis哨兵+主从的问题假设我们在一台主从机器上配置了200G内存,但是业务需求是需要500G的时候,主从结构+哨兵可以实现高可用故障切换+冗余备份,但是并不能解决数据容量的问题,用哨兵,redis每个实例也是全量存储,每个redis存储的内容都是完整的数据,浪费内存且有木桶效应。为了最大化利用内存,可以采用cluster群集,就是分布式存储。即每台redis存储不同的内容。Redis...

2019-03-17 23:03:10 176

原创 swoole同步、异步、心跳机制和粘包

swoole同步、异步、心跳机制和粘包这是一篇学习swoole简单入门的方法,能更容易、快速的掌握swoole的基本知识1、swoole同步机制swoole的同步与http的同步一样,都会形成消息阻塞。需要等待服务端返回消息才会继续执行下一步操作:$client = new swoole_client(SWOOLE_SOCK_TCP,SWOOLE_SYNC); //`第一个参数代表...

2019-03-17 14:56:05 492

原创 dnmp,mac快速搭建php集成环境神器

在浏览器中访问http//localhost或https//localhost(自签名HTTPS演示)就能看到效果,PHP代码在文件./www/localhost/index.php。最近在mac上搭建集成环境的时候,先是用phpstudy,下载后发现缺少很多依赖,如果要去安装依赖还需要编译。内置完整PHP扩展安装命令默认安装pdo_mysql、redis、xdebug、swoole等常用热门扩展,拿来即用。源代码、MySQL数据、配置文件、日志文件都可在Host中直接修改查看。...

2022-07-27 21:38:39 1968

原创 golang 依赖注入 dig详解

dig库是一个为go提供依赖注入(dependencyinjection)的工具包,基于reflection实现的。在项目中会涉及到很多对象,它们之间的依赖关系可能是这样的对象D的创建依赖于对象B和对象C对象B和对象C的创建依赖于对象A}如果在很多地方都需要用户D对象,有两个方法从别的地方传一个D对象过来利用NewD重新生成一个新的D对象。...

2022-07-22 11:12:22 750

原创 grpc UnimplementedServer 实战

微服务架构中,由于每个服务对应的代码库是独立运行的,无法直接调用,彼此间的通信就是个大问题gRPC可以实现微服务,将大的项目拆分为多个小且独立的业务模块,也就是服务,各服务间使用高效的protobuf协议进行RPC调用,gRPC默认使用protocolbuffers,这是google开源的一套成熟的结构数据序列化机制(当然也可以使用其他数据格式如JSON)可以用protofiles创建gRPC服务,用message类型来定义方法参数和返回类型其实是这样子滴//第一种方法。...

2022-07-21 14:24:26 661

原创 面试被问go的内存模型,怎么回答

golang面试经常被问到内存模型,不知道怎回答。不知道面试官考察什么。今天就带你来了解golang内存模型指定了一系列条件,在这些条件下,可以保证在协程中对变量的读取操作可以观察到其他协程对同一变量写操作的结果,这就是go内存模型。虽然这些都是go开发中一般都知道的常识,但是我们还是需要了解,为什么会这样,为什么需要这样?在面试过程中问go的内存模型,就只要抓住happenbefore来回答就好。...

2022-07-19 14:10:27 338

原创 徒手撸个btree,Go数据结构与算法-BTree

B树是一种平衡的多路查找树。树,可广泛用于磁盘访问。M阶树顺序的B树最多可以有m-1个键和M个子树。使用B树的主要原因之一是它能够在单个节点中存储大量键,并且通过保持树的高度相对较小来存储大键值。......

2022-07-17 17:10:34 509

原创 协程间的三种通信方式,你学会了吗?

golang中要想灵活运用协程来解决问题,协程间的通信一定要掌握。这里列举了3种方式。sync.waitgroup 其实也应该掌握

2022-07-14 16:32:04 945

原创 go并发编程(一)

for-select模式一、在通道上发送迭代变量二、无限循环等待停止

2022-07-07 12:39:01 67

原创 go 常见面试题

用 select 和

2022-07-05 07:52:36 706

原创 kafka 如何避免重复消费

1、kafka是通过offset来标记消费的。默认情况下,消费完成后会自动提交offset,避免重复消费。Kafka消费端的自动提交逻辑有一个默认的5秒间隔,也就是说在5秒之后的下一次向Broker拉取消息的时候提交。所以在Consumer消费的过程中,应用程序被强制kill掉或者宕机,可能会导致Offset没提交,从而产生重复提交的问题。2、Kafka里面有一个Partition Balance机制,就是把多个Partition均衡的分配给多个消费者。Consumer端会从分配的Partition里面去消

2022-06-13 11:33:59 8080 5

原创 go 令牌桶算法

go 令牌桶算法

2022-06-13 11:21:42 194

原创 golang泛型初探,怎么定义切片,map,channel

go泛型初探

2022-04-17 11:58:11 1953

原创 go 爬虫避坑实战

header缺少cookie类似51job爬不下来,爬取的时候会指向一个拖拽认证的页面爬取的中文字符乱码了func ConvertToString(src string, srcCode string, tagCode string) string { srcCoder := mahonia.NewDecoder(srcCode) srcResult := srcCoder.ConvertString(src) tagCoder := mahonia.NewDecoder(tagCode)

2022-03-14 17:41:22 580

原创 go 限制并发数

go通过channel限制goroutine的并发数func main() { listconlimit := make(chan bool, 10) // 新建长度为10的管道 for n := 1; n <= 4000; n++ { // 启动4000个协程 listconlimit <- true // 管道写入,缓冲为10,写满10就阻塞 go func(n int) { defer func() { <-listconlimit }() //释

2022-03-12 22:25:16 967 2

原创 go实现分布式爬虫1

go爬虫初探1go爬虫先了解go的"net/http"包https://www.cnblogs.com/mafeng/p/7068837.html这里先学习一下go的get和post请求,具体就是请求数据,然后获取返回的resp,分析resp获取你想要爬取的东西具体代码可到 https://gitee.com/longshuai/go-reptile 这里下载爬虫初探u := fmt.Sprintf(`https://movie.douban.com/top250?start=%d`, 0)

2022-03-12 14:50:53 1742

原创 go channel 有哪些应用?

channel 用于停止信号的场景还是挺多的,经常是关闭某个 channel 或者向 channel 发送一个元素,使得接收 channel 的那一方获知道此信息,进而做一些其他的操作。任务定时

2022-01-20 14:47:03 544 2

原创 goim 源码分析(一) comet

goim 源码分析(一) comet启动comet服务new comet server我们再来看一下开启websocket服务启动comet服务今天就来看看comet怎么开启服务,然后怎么去控制buckt,room和在线人数的new comet serversrv := comet.NewServer(conf.Conf)func NewServer(c *conf.Config) *Server { s := &Server{ //1 c: c, roun

2022-01-19 13:01:53 2069

原创 goim 徒手搭建

goim搭建基于docker安装kafka和rediszookeeperversion: '3.1'networks: default: external: name: zookeeper_networkservices: zoo1: image: zookeeper restart: always container_name: zoo1 hostname: zoo1 ports: - 2181:2181 v

2022-01-16 18:16:38 1640

原创 mysql安装5.6问题集

https://www.cnblogs.com/wajika/p/6559411.html

2020-01-14 15:00:59 195

原创 lnmp编译安装

1、基于CentOS7.4源码编译安装得lnmp系统环境CentOS 7.4系统最小化安装,只安装了一些常用包(vim、lirzs、gcc*、wget、bash-completion)nginx版本1.14.0mysql版本5.7.20php版本7.2.61.1 下载网络yum源[root@centos7_4 ~]# wget http://mirrors.aliyun.com/re...

2019-10-24 14:09:21 225

原创 删除nginx方法

比较靠谱的解决办法是:root权限下载命令行敲入如下命令:rm -rf /etc/nginx/rm -rf /usr/sbin/nginxrm /usr/share/man/man1/nginx.1.gzapt-get remove nginx*原理就是删除关联文件以及文件夹。然后执行 reboot重启...

2019-08-27 11:02:41 160

原创 nginx访问白名单配置

在日常运维工作中,会碰到这样的需求:设置网站访问只对某些ip开放,其他ip的客户端都不能访问。可以通过下面四种方法来达到这种效果:1)针对nginx域名配置所启用的端口(比如80端口)在iptables里做白名单,比如只允许100.110.15.16、100.110.15.17、100.110.15.18访问.但是这样就把nginx的所有80端口的域名访问都做了限制,范围比较大![root@c...

2019-08-23 14:57:24 1928

原创 nginx优化

令牌桶算法算法思想是:令牌以固定速率产生,并缓存到令牌桶中;令牌桶放满时,多余的令牌被丢弃;请求要消耗等比例的令牌才能被处理;令牌不够时,请求被缓存。漏桶算法算法思想是:水(请求)从上方倒入水桶,从水桶下方流出(被处理);来不及流出的水存在水桶中(缓冲),以固定速率流出;水桶满后水溢出(丢弃)。这个算法的核心是:缓存请求、匀速处理、多余的请求直接丢弃。相比漏桶算法,令牌桶算...

2019-08-23 14:35:20 80

原创 nginx日志配置

nginx access日志配置access_log日志配置access_log用来定义日志级别,日志位置。语法如下:日志级别: debug > info > notice > warn > error > crit > alert > emerg语法格式: access_log path [format [buffer=size] [gzip...

2019-08-23 11:22:43 753

转载 MySql数据库:数据查重、去重的实现

数据库的查重去重是java面试经常会被问到的问题,下面讲讲怎么实现这些,因为本人能力有限,所以只管实现,不考虑效率问题;假设有一个表user,字段分别有id–nick_name–password–email–phone,分情况如下(注意删除多余记录时要创建临时表,不然会报错):单字段(nick_name)查出所有有重复记录的所有记录select * from user where nick...

2019-04-27 22:08:49 1435 1

转载 mysql字段没设置默认值,插入语句没设置字段值报错的解决方法

在mysql5.1的时候,我们设计数据表可能忘记给某个字段一个默认值,比如int型数据就给0,varchar类型数据就给空字符串,float类型就是0.0,datetime就是0000-00-00 00:00:00,但php写入数据到表时这个字段也可能没有给值,这时候数据库会自动根据数据类型填充空值。但是,当这段php代码放到mysql5.6上运行时,就经常报错了,典型提示如下:ERROR 1...

2019-04-25 18:37:58 1874

转载 php不分版本远程上传图片

如果一定要兼容不同版本的PHP,参考以下写法:if(empty($urlinfo[‘host’])){tmpname=dirname(tmp_name=dirname(tmpn​ame=dirname(file[‘tmp_name’]).’/’.file[′title′].′.′.file[&#x27;title&#x27;].&#x27;.&#x27;.fil...

2019-04-24 10:18:00 127

转载 计算距离

//根据经纬度计算附近商家距离 /* @param $lng,经度* @param $lat,纬度* @param $distance 计算的距离* @param $sort 根据距离排序*/function NearStore(lng,lng,lng,lat,distance,distance,distance,sort){sql=&quot;select...

2019-04-09 17:41:37 191 1

空空如也

空空如也

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

TA关注的人

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