自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

水木米

关注移动互联网

  • 博客(473)
  • 收藏
  • 关注

转载 Go中的channel

当写协程完成工作之后,close数据管道,读协程对数据管道 intChan的数据读完之后,就向退出管道 exitChan 写入一个 true,close掉;通道 ch 是可以进行遍历的,遍历的结果就是接收到的数据。这句代码显示:channel其实和指针一样,本身存放在一个内存单元中,有它的地址,而它的值是一个 int类型的地址。定义 interface类型的空接口,可以接收任意类型的数据,但是在取出来的时候,必须断言!//在遍历时,如果channel已经关闭,则会正常遍历数据,遍历完后,就会退出遍历。

2022-09-15 16:27:11 504

转载 3000帧动画图解MySQL为什么需要binlog、redo log和undo log

先看一条SQL如何入库的:这是一条很简单的更新SQL,从MySQL服务端接收到SQL到落盘,先后经过了MySQL Server层和InnoDB存储引擎。在MySQL”分析需求,实现方案“的过程中,还夹杂着内存操作和磁盘操作,以及记录各种日志。他们到底有什么用处?他们之间到底怎么配合的?MySQL又为什么要分层呢?InnoDB里面的那一块Buffer Pool又是什么?我们慢慢分析。MySQL为什么要分为Server层和存储引擎两层呢?这个问题官方也没有给出明确的答案,但是也不难猜,简单来说就是为了“解耦”。

2022-06-15 14:53:10 277

转载 Kubernetes 入门&进阶实战-转

本文组织方式:1. K8S 是什么,即作用和目的。涉及 K8S 架构的整理,Master 和 Node 之间的关系,以及 K8S

2022-06-13 21:11:10 435

转载 常见容错机制:failover、failfast、failback、failsafe

1.failover:失效转移Fail-Over的含义为“失效转移”,是一种备份操作模式,当主要组件异常时,其功能转移到备份组件。其要点在于有主有备,且主故障时备可启用,并设置为主。如Mysql的双Master模式,当正在使用的Master出现故障时,可以拿备Master做主使用2.failfast:快速失败从字面含义看就是“快速失败”,尽可能的发现系统中的错误,使系统能够按照事先设定好的错误的流程执行,对应的方式是“fault-tolerant(错误容忍)”。以JAVA的快速失败为例,当多个线程对

2022-05-26 11:09:52 1487

原创 服务幂等-架构设计

一,业务场景:业务场景一:用户重复下单业务场景二:用户重复支付业务场景三:用户转帐重试二,什么是幂等:幂等的定义:幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。在数学中,幂等用函数表达式就是:f(x) = f(f(x))。比如求绝对值的函数,就是幂等的,abs(x) = abs(abs(x))。在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执

2022-05-26 11:00:55 349

原创 MySQL教程之concat以及group_concat

本文中使用的例子均在下面的数据库表tt2下执行:一、concat()函数1、功能:将多个字符串连接成一个字符串。2、语法:concat(str1, str2,...)返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null。3、举例:例1:select concat (id, name, score) as info from tt2;中间有一行为null是因为tt2表中有一行的score值为null。例2:在例1的结果中三个字段id,n.

2020-11-06 09:42:48 320

原创 PHP依赖注入(DI)和控制反转(IoC)的理解

首先依赖注入和控制反转说的是同一个东西,是一种设计模式,这种设计模式用来减少程序间的耦合,鄙人学习了一下,看TP官网还没有相关的文章,就写下这篇拙作介绍一下这种设计模式,希望能为TP社区贡献一些力量。首先先别追究这个设计模式的定义,否则你一定会被说的云里雾里,笔者就是深受其害,百度了N多文章,都是从理论角度来描述,充斥着大量的生涩词汇,要么就是java代码描述的,也生涩。不管怎么样,总算弄清楚一些了,下面就以php的角度来描述一下依赖注入这个概念。先假设我们这里有一个类,类里面需要用到数据库连接

2020-10-09 14:52:50 302

原创 nginx热部署升级

1、将旧nginx文件换成新的nginx二进制文件(注意备份);2、想master进程发送USR2信号;3、master进程修改pid文件名,加后缀.oldbin;4、master进程用新nginx文件后启动新master进程5、向老master进程发送WINCH信号,关闭老worker进程;6、回滚:向老master发送HUP信号,向新master发送QUIT;...

2020-05-13 15:13:32 227

原创 内存对齐

#include <stdio.h>int main(void) { struct str{ int b; char* a; }; union zval{ int b; str stra; int c; }; ...

2020-01-02 16:12:44 194

原创 内存溢出和内存泄漏的区别

1.1内存溢出:(Out Of Memory---OOM)系统已经不能再分配出你所需要的空间,比如你需要100M的空间,系统只剩90M了,这就叫内存溢出例子:一个盘子用尽各种方法只能装4个果子,你装了5个,结果掉倒地上不能吃了。这就是溢出。比方说栈,栈满时再做进栈必定产生空间溢出,叫上溢,栈空时再做退栈也产生空间溢出,称为下溢。就是分配的内存不足以放下数据项序列,称为内存溢出。说白了就是...

2019-12-30 21:00:14 186

转载 最新版本sublime text3注册码

—– BEGIN LICENSE —– TwitterInc 200 User License EA7E-890007 1D77F72E 390CDD93 4DCBA022 FAF60790 61AA12C0 A37081C5 D0316412 4584D136 94D7F7D4 95BC8C1C 527DA828 560BB037 D1EDDD8C AE7B379F

2018-01-25 16:02:57 3953 1

转载 极其强大的Web调试、代{过}{滤}理抓包工具charles

官方主页:  https://www.charlesproxy.com/下载正版原版程序:https://www.charlesproxy.com/assets/release/4.2/charles-proxy-4.2-win64.msihttps://www.charlesproxy.com/assets/release/4.2/charles-proxy-4.

2018-01-23 11:03:46 1199

转载 15个程序员需要知道的Chrome扩展

现在大多数程序员会选择谷歌Chrome浏览器作为主要的浏览器。下面我要为各位Web开发人员介绍的是15个最好的谷歌Chrome浏览器扩展。1. Web Developer支持Chrome的Web Developer扩展,允许你通过添加一个小工具栏来使用不同的工具。官方网站:https://chrome.google.com/webstore/

2018-01-20 11:53:47 8727

原创 mac 常用软件

xcodeUML gliffyphp phpstormhomebrew 包管理工具命令行的用iterm2代替系统原生的(终极 Shell | MacTalk-池建强的随想录),然后切换shell为zsh,并安装oh my zshserver推荐使用nginxmysql客户端推荐用navicat(收费的,很贵),支持所有主流数据库。有个开源的叫Sequel Pro(Seq

2018-01-19 21:38:35 1256

转载 10 款超级实用的Chrome 黑科技插件

总所周知,IE浏览器市场份额曾经占据了PC端半壁江山,如今谷歌推出的Chrome浏览器已经遥遥领先的登上了杠把子的位置,IE的市场份额在全球仅排行第三。毋庸置疑,Chrome浏览器已经成为了全球最受欢迎、用户量最多的浏览器,深受程序员的喜爱。国内知名浏览器没有一个不使用Chromium(Chrome的工程版或称实验版)内核进行开发,可想而知Chrome浏览器的强大,虽然国产浏览器如360、qq浏览

2018-01-19 17:12:49 35974 2

转载 InnoDB recovery详细流程

InnoDB如果发生意外宕机了,数据会丢么?对于这个问题,稍微了解一点MySQL知识的人,都会斩钉截铁的回答:不会!为什么?他们也会毫不犹豫的说:因为有重做日志(redo log),数据可以通过redo log进行恢复。回答得很好,那么InnoDB怎样通过redo log进行数据的恢复的,具体的流程是怎样的?估计能说清楚这个问题的人剩的不多了,更深入一点:除了redo log,InnoDB在恢复过

2017-11-28 18:04:36 1227

转载 Otter入门简介

前言:最近接了一个新的需求,需要在伦敦机房做一个数据同步方案,同步到北京。因为之前搭建过公网之间的同步,一是延迟比较大,另一个是因为同步经常会断。临时解决方案就是搭建一个多源复制,隔断时间全量一次数据到北京机房,但是这个传输时间也是个头疼的问题 一、Otter简介1.1  otter是什么?Ottter是由阿里开源的一个数据同步产品,它的最初的目的是为了解决

2017-11-27 11:23:11 30962 2

转载 今日头条Go建千亿级微服务的实践

今日头条当前后端服务超过80%的流量是跑在 Go 构建的服务上。微服务数量超过100个,高峰 QPS 超过700万,日处理请求量超过3000亿,是业内最大规模的 Go 应用。Go 构建微服务的历程在2015年之前,头条的主要编程语言是 Python 以及部分 C++。随着业务和流量的快速增长,服务端的压力越来越大,随之而来问题频出。Python 的解释性语言特性以及其落后的多进程服务模

2017-11-27 11:20:44 548

转载 PHP日志扩展SeasLog学习

文章来源于:开源中国社区http://www.oschina.net/p/seaslog附1:PECL项目主页http://pecl.php.net/package/SeasLog附2:GitHub项目主页https://github.com/Neeke/SeasLogSeasLogYet a log extension for PHP.A effective,fa

2017-10-30 16:57:40 513

转载 Mysql源代码分析系列(1): 编译和调试--转载

拖了很久了Mysqld源代码分析从今天开始吧,随着我阅读的进度推进,我会写一些文章记录自己的心得,但是不保证一定会写。其实也不保证一定有时间来完整的阅读所有的代码。阅读代码的目的有如下几点:通过了解Mysql的架构,学习大型系统软件的体系结构,希望自己在工作的时候也能应用到其中的一些技术通过阅读代码,能够更好的理解Mysql的使用,也能做更深入的应用,比如性能调优,加入自己需要的功能和模块

2017-10-29 23:00:59 584

转载 MySQL select实现原理

工作中需要借鉴MySQL对于select的具体实现,在网上搜了很久,几乎都是介绍原理的,对于实现细节都没有介绍,无奈之下只得自己对着源码gdb。结合以前对于sql解析的了解,对mysql select的具体实现有了大致的了解,总结一下。如果要gdb单步调试,需要在编译MySQl时加上debug选项,参见这篇博客.编译好以后就可以用gdb启动了。如果希望mysql运行时有日志输出,可以指定输出文件

2017-10-29 22:46:29 1999

转载 mysql中SQL执行过程详解

mysql执行一个查询的过程,到底做了些什么:客户端发送一条查询给服务器;服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段。服务器段进行SQL解析、预处理,在优化器生成对应的执行计划;mysql根据优化器生成的执行计划,调用存储引擎的API来执行查询。将结果返回给客户端。    实际上mysql执行的每一步都比较复杂,具体的过程如下:

2017-10-29 22:45:10 13298

转载 内容分发平台个性化推荐系统经验简单总结

推荐在电商和互联网应用中已经应用的非常广泛,相比于根据query进行主动的搜索,推荐是更加被动的由系统自动推出商品给用户。搜索的意图比较明显,直接由query给出,而推荐需要计算猜测用户的意图,根据用户历史数据和当前行为,基于各种模型推荐合适的商品,提升用户体验,提高转化率。不过近些年来,搜索和推荐在底层模型和技术方面越来越趋于融合,利用机器学习的方式来改进搜索和推荐的质量,像搜索排序LTR等等。

2017-10-27 16:55:21 2898

转载 Grafana安装配置介绍

Grafana介绍Grafana是一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为数据源。Grafana主要特性:灵活丰富的图形化选项;可以混合多种风格;支持白天和夜间模式;多个数据源。安装GrafanaCentOS系列使用Y

2017-10-27 11:38:53 2155

转载 Jira+Confluence+Fisheye+Crucible安装步骤清单

我在之前的这些文章中介绍了看板的一些理论和实践方法。Jira作为一个需求缺陷的项目管理工具,在敏捷开发和看板系统方面的功能也是非常的强大。于是最近自己也试着使用Jira以及Jira周边的各种插件系统,搭建了一个学习用的项目管理框架。其中包括:Jira用于需求缺陷管理Confluence作为知识库FishEye作为代码查看工具Crucible作为代码Review工具配合J

2017-10-27 11:34:04 4541 1

转载 用lua扩展你的Nginx(写的非常好)

一. 概述Nginx是一个高性能,支持高并发的,轻量级的web服务器。目前,Apache依然web服务器中的老大,但是在全球前1000大的web服务器中,Nginx的份额为22.4%。Nginx采用模块化的架构,官方版本的Nginx中大部分功能都是通过模块方式提供的,比如Http模块、Mail模块等。通过开发模块扩展Nginx,可以将Nginx打造成一个全能的应用服务器,这样可以将一些功能在前

2017-10-27 11:19:06 3998

转载 数据库事务的四大特性以及事务的隔离级别

本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别。  如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:⑴ 原子性(Atomicity)  原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响

2017-10-27 11:14:13 303

转载 简析运维监控系统及Open-Falcon

前言监控系统,可以从运营级别(基本配置即可),以及应用级别(二次开发,通过端口进行日志上报),对服务器、操作系统、中间件、应用进行全面的监控,及报警,对我们的系统正常运行的作用非常重要。1、开源还是商用?十大云运维监控工具横评http://www.oschina.net/news/67525/monitoring-tools2、Zabbix、

2017-10-27 11:05:30 563

转载 GitLab使用总结

代码管理一直用svn,git的分支管理认为是最好的,尝试用用。一.GitLab简介GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本

2017-10-27 10:53:32 409

转载 使用Jenkins进行持续集成

上次介绍了开源项目如何利用Travis CI进行持续集成,但是如果你的项目不是开源项目,用Travis Pro就需要交钱了。如果不想交钱,可以自己搭建CI环境,利用Jenkins CI进行持续集成。首先,我们从Jenkins官方网站https://jenkins.io/下载最新的war包。虽然Jenkins提供了Windows、Linux、OS X等各种安装程序,但是,这些安装程序

2017-10-27 10:44:59 593

转载 使用netstat检测及监测网络连接

Linux上的web服务每天都要面临成千上万的连接,这些连接都是要遵循TCP协议的,这都是众所周知的(至于TCP协议,这里就不在过多的介绍,不懂的同学可以自己搜索,友好多)。既然都是TCP协议连接,那就不得不面临一个网路最大的安全问题,DOS攻击及DDOS攻击,这些攻击是没有办法抹除的,因为这是针对TCP协议本身的一个设计缺陷儿造成的。所以,这就要求运维人员,时刻监测系统安全,是否处于被DOS攻击

2017-10-26 10:45:11 571

转载 巴菲特的人生财富课

【职场新人法则】 对于刚走出学校大门的新人来说,不论你是否觉得自己很特别,或者是智商比他人高还是低。这些都不是最重要的事情。 重要的是你开始的态度:你如何付诸行动,如何充满激情和精力充沛的做事情。 不论你是不是喜欢做,自己都要信心十足。有信心的人,可以把所有的经历,转换成一生受用不尽的财富。 比如说去学习公开讲演。如果你自信,你就能学会,然后,你的一生都会享有这种资

2017-10-25 11:03:11 504

转载 oh-my-zsh小记

入坑前言其实一开始让我转zsh我是拒绝的,因为OS X默认的bash相对来说已经相当强大了,但是受不了oh-my-zsh诱人的界面,于是今天就花时间装上体验了一把,再然后就是我来这里安利了

2017-10-25 10:36:18 279

转载 一行 Shell 通过 Nginx access 日志实时统计单台机器QPS

# 实时统计 ## 方式一tail -f access.log | awk -F '[' '{print $2}' | awk 'BEGIN{key="";count=0}{if(key==$1){count++}else{printf("%s\t%d\r\n", key, count);count=1;key=$1}}' ## 方式二tail

2017-10-24 15:42:26 10927

转载 Nginx Sticky的使用及踩过的坑(nginx-sticky-module)

#什么是Sticky?# 为了理解Sticky的工作原理,我们可以先考虑一个问题:负载均衡怎么做?DNS解析,在域名解析时分配给不同的服务器IP;IP Hash,根据客户端的IP,将请求分配到不同的服务器上;cookie,服务器给客户端下发一个cookie,具有特定cookie的请求会分配给它的发行者。Sticky就是基于cookie的一种负载均衡解决方案,通过co

2017-10-24 15:34:57 2001

转载 爽快:用vim的方式操作浏览器

首先声明,这篇博客的废话比较多,如果您希望筛选重要信息的话,那么就是:用vim的方式操作chrome或firefox。此外无他。安装的话分别点下面的第一个和第二个链接就可以了。缘起今天看了一篇博文,是介绍有关在命令行下工作的好处的。对于在命令行下工作的好坏,是仁者见仁,智者见智了。我觉得在管理方面虽好,但是在平常的娱乐和上网方面肯定不是很舒服的。可是一直一来,我是非常希望能

2017-09-04 10:57:50 3490

转载 linux下Samba的安装和配置

1、Samba,是在Unix上实现SMB(Server Message Block)的一个工具套件。而SMB通常是windows用来实现共享的,包括文件和打印机等。而Unix上装上SMB,则使得Unix能够和 windows连接在一起,实现两者的资源互通。2、Samba在Centos下安装命令:rpm -qa | grep samba  检查是否安装yum install sa

2017-08-28 19:12:58 5503

转载 机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)

前言:  找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据挖掘之类,且又对其非常感兴趣的话,可以考虑考虑该岗位,毕竟在机器智能没达到人类水平之前,机器学习可以作为一种重要手段,而随着科技的不断发展,相信这方面的人才需求也会越来越大。  纵观IT行业的招聘岗位,机器学习之类的岗位还是挺

2017-08-28 15:16:34 2743

转载 php中使用apcu实现共享数据

apcu前身是apc,大家知道apc缓存分为系统缓存和用户缓存,他们的区别是什么呢?1、系统缓存是指PHP执行时增加缓存,减少php文件的反复检查和编译,从而达到系统加速的效果。 2、用户缓存是指,php代码中将数据写入缓存,是用户写入的数据,通过key和value的键值方式插入和读取。这种数据叫做用户缓存。php5.5以后,opcache将代替apc做为php加速的位

2017-08-26 10:41:33 1984

转载 Codis集群的搭建与使用

一、简介  Codis是一个分布式的Redis解决方案,对于上层的应用来说,连接Codis Proxy和连接原生的Redis Server没有明显的区别(不支持的命令列表),上层应用可以像使用单机的Redis一样使用,Codis底层会处理请求的转发,不停机的数据迁移等工作,所有后边的一切事情,对于前面客户端来说是透明的,可以简单的认为后边连接是一个内存无限大的Redis服务。Cod

2017-08-23 10:46:16 452

空空如也

空空如也

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

TA关注的人

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