自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 资源 (5)
  • 问答 (2)
  • 收藏
  • 关注

原创 Phystrix使用说明

配置文件参数说明// 错误率errorThresholdPercentage => 30,// 所有请求满10个requestVolumeThreshold => 10,// 再次尝试一次间隔sleepWindowInMilliseconds => 600000,所有请求满10个, 错误率达到30%, 在断路器开启,且持续时间60秒未来60秒内所有请求直接走 降级流程, 60秒后再次尝试一次// 快照的有效期healthSnapshotIntervalInMill

2022-02-28 17:19:40 589

原创 生产/消费和订阅/发布,消息/事件/任务的一些区别

以前我经常搞不清生产/消费和发布/订阅的区别。消息和事件的区别。因为在我看来这几种模式的行为都差不多。今天就把这几个区别稍微理一下。生产/消费举个例子:小明的妈妈给小明织了件毛衣,小明把毛衣穿在身上生产者:小明妈妈产品:毛衣消费者:消费者代码如下生产者 = new 生产者()消费者 = new 消费者()产品 = 生产者->生产产品()消费者->消费(产品)从上述代码中能看到3个角色生产者,具有生产产品的方法消费者,具有销售产品的方法产品由此可以提取出两

2022-02-27 01:30:18 990 1

原创 设计模式结构型和行为型的感悟-续

es6中有个 Promise 对象。只要接触过的都知道他是一个行为行的模式,我认为他是责任链。但是我现在想说一个观点,抛开Promise的场景,注意力放在他的结构上。并且稍微变换下Promise对象。假设如下:let p = Promise.resolve()p.then(x=>x).then(x=>x)# 开始变换p.then(x=>p).then(x=>p)这样就永远返回p对象了。接着继续变换p.then(x=>{ p.手 = 机械手 return.

2022-01-13 03:54:03 219

原创 控制台输入避免中文乱码的小技巧

这是从lumen框架里面找出来的## Symfony\Component\Console\Helper\QuestionHelper$ret = '';$cp = setIOCodepage();while (false !== ($char = fgetc($multiLineStreamReader))) { if (\PHP_EOL === "{$ret}{$char}") { break; } $ret .= $char; }resetI

2021-11-29 15:21:23 407

原创 设计模式结构型和行为型的区分方式的感悟

我一直想写一些关于设计模式的东西。我很确信一点:用设计模式编写代码,反之使用代码也肯定可以反推设计模式。我对什么时候是行为,什么时候是结构,如何区分总理解不透彻这次稍微有点感悟,就记录下来下面代码只能看到使用了控制反转,使用这个代码来演变成设计模式.class B{ so();}class A{ b B; so(){b.so()} A(B)}main(){ a = new A(new B) a.so()}例1:# 添加interface C{ so();}.

2021-11-23 14:49:34 438

原创 有人问我100订单,循环读取数据库快,还是一次性拉取快

简略说明一下:订单表总共有100条订单记录,需要读取这100条数据,关联商品(商品≤100)并返回。在不连表的情况下,是循环100次查100次快。还是一次性读取所有记录,然后程序匹配快。【现实里这种写法是很普遍的】我不假思索,肯定是一次性读取所有,然后程序匹配快,最直观的就是io问题。今天突发奇想,想总结下快在哪些地方数据库理由1:因为B+的叶子节点是一个连表结构,所以遍历所有叶子节点的复杂度是O(1);理由2: 走索引需要回表,一次性查所有省去了回表的步骤;理由3: 特殊情况,可

2021-11-23 01:13:08 1494

转载 正则表达式的几个特殊匹配

正则表达式 (?:pattern)、(?=pattern)、(?!pattern)、(?<=pattern)和(?<!pattern)

2021-11-22 13:10:12 106

原创 负载过高排查思路

负载排查思路脑图

2021-09-09 16:33:11 174

原创 Avl树梳理

AVL树总所周知二叉搜索树会出现一些极端情况,影响查询效率。为了解决这个问题,就需要把对极端的情况进行调整,优化查询, 比如:为了实现右图,就需要增加一个旋转功能,我们那它命名为旋转,向右转叫做右旋,向左就叫左旋。public avlNode leftRate(avlNode node) { avlNode right = node.right; node.right = right.left; right.left = node; return right;}

2021-08-14 23:08:59 112

原创 红黑平衡梳理

主要是对红黑的平衡进行梳理,帮助手写红黑树红黑树的原则:每个节点或者是黑色,或者是红色。根节点是黑色。每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!]如果一个节点是红色的,则它的子节点必须是黑色的。从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。以下都是错误示范注意以下几个约定测试网址:https://www.cs.usfca.edu/~galles/visualization/RedBlack.htmlnil

2021-08-10 15:31:19 342

原创 以编程的思路来讲mvcc

脏读事务1 更改数据a的值为B,但没有提交, 其他事务读取a的值是B, 那么这就是脏读不可重复读事务1 第一次读取数据a的值是A,修改成C,提交事务。事务2 第一次读取数据a的值是A,在事务2提交以后重新读取数据a的值是C,这种情况叫不可重复读幻读事务1 查询数据A不存在, 然后事务2, 插入了数据A, 这时候事务1再插入数据A, 会提示数据已存在,不能插入。 这就是幻读从Read committed到 Read read思路要达到这样的目的:处于事务中的查询,只能.

2021-07-29 01:06:04 110

原创 记5.7mysql开启MTS失败

问题:数据库偶尔有延迟问题, 经常对业务造成困扰。环境:mysql5.7,mycat目标:开启MTS结果:开启失败,还原之前配置失败原因:: General error: 1785 Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, a

2021-07-24 07:25:08 624

原创 记一次服务器内存被写满,变得异常卡顿的事故

还原下现场:某天下午, 运营反馈说网页打开很卡。经过排查发现服务器内存被写满,除了内存被写满以后, 其他都是正常的。内存大部分都是被usedcache并没有占用多少处理方案:首先紧急释放内存使用命令echo 3 > /proc/sys/vm/drop_caches在我的理解上, 内存是会自动回收的。但是这次很明显是并没有回收内存引起的。所以花了点时间研究了一下内存的回收机制:Linux 内存回收机制这篇文章给了我很多引发, 特别感谢大神, 让我理解了以前很多不理解的东西

2021-04-26 19:41:11 462

原创 小公司持续集成CI搭建方案系列-ansible同步代码

简介用到的工具jenkins:持续集成工具ansible: 任务下发工具git: 原生git仓库同步文件类型:*.swf,*.svg,*.css,*.gif,*.htm,*.html,*.jpeg,*.jpg,*.json,*.map,*.md,*.min,*.mp4,*.php,*.png,*.ttf,*.txt,*.vue,*.woff,*.xml,*.woff2,*.wxml,*.wxss,*.yml简单流程:jenkins ==调用–> ansible ==下发任务–>

2021-02-03 18:56:18 251

原创 小公司持续集成CI搭建方案系列-jenkins安装ansible

安装jenkins插件自动安装ansibleapt-get updateapt-get upgradeapt-get install software-properties-common -yapt-get install ansible -y上面就是基本配置设置免密登录设置密钥ssh key

2021-02-03 18:55:57 135

原创 git-hooks触发构建任务

公司原因目前使用的是原始的git仓库, 并没有用gitlab等。所以hoos要自己做配置很简单的, 但这只是个开始, 利用这个可以做很多东西, 比如说代码检查等等。。。# 服务器仓库目录下创建 post-receive#!/bin/bash# 接收后挂钩从stdin中以形式获取参数<oldrev> <newrev> <refname>。# 由于这些参数来自标准输入,而不是命令行参数,因此需要使用read代替$1 $2 $3。# 后收到钩可以接收多个分支一.

2021-01-29 20:13:50 380

原创 记录app反编译的学习过程

反编译X宁app过程总结准备工作下载010Editor下载最新的apktool 要同时下载脚本和jar包,重命名为apktool.jar下载最新的dex2jar下载最新的JD-GUI从模拟器里面导出 framework-res.apk 。使用adb链接模拟器,然后在 /system/framework 下找到这个文件,复制到apktool同一个目录, 执行 ./apktool.bat if framework-res.apk反编译直接反编译报错,提示无法解压xml, 说明 Andr

2021-01-10 11:29:58 293

原创 fastdfs笔记整理-坑记录(三)

磁盘空间配置导致 tracker 无法启动解决方案:指定固定的剩余空间, 不要按%配置reserved_storage_space = 20G定义的日志文件不会手动创建, 导致 storage或者tracker或者nginx 无法启动例如mod_fastdfs.conf 我定义了如下日志文件: log_filename=/var/fastdfs/mod_fastdfs/mod_fastdfs.logfastdfs 不会自动创建这个文件的, 必须手动创建报错也没这方面的提示, 这问题..

2020-08-06 18:45:21 264

原创 fastdfs笔记整理-openresty集成fastdfs(二)

nginx 安装 fastdfs 客户端1. 下载wget https://openresty.org/download/openresty-1.17.8.1.tar.gzwget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.22.zipyum install gd gd-devel -y2. 编译export DESTDIR=mkdir -p /alidata/server/openresty/fast

2020-08-06 15:53:09 707

原创 fastdfs笔记整理-集群搭建(一)

约定安装目录 /alidata/server/fastdfstracker_server 端口 22122storaged_server 端口 23000存储路径 /alidata/fastdfs/图片存储示例:/alidata/fastdfs/storage/store/data/00/00/wKgBZl8MGjmAafdZAAhyUjfU0mo770.pnghttp://192.168.1.102:22080/group1/M00/00/00/wKgBZl8MGjmAafdZAAhy

2020-08-06 15:33:46 154

原创 谷歌浏览器《计时功能》--整理

参考链接:谷歌浏览器开发文档-需科学上网请求生命周期的主要阶段:对应图的解释:MDN PerformanceTiming可使用下面查看:performance.getEntriesByType(‘resource’).filter(item => item.name.includes(“css”))谷歌面板说明Queuing请求优先级请求被搁置以等待即将释放的不...

2020-04-26 11:48:09 513

原创 中/小公司防ddos方案

首先强调一下是(中)小公司,买不起高防的那种。。。很多云服务商提供了N个G的基础防护,ddos攻击都是20个G以上的前提条件一定是在使用与服务基础架构一定满足,不满足的话请满足这样子的架构下面ddos攻击场景架构改造核心思路是 网关接口可用并实现lvs的动态切换, 从而快速切换入口, 使服务可用。攻击也是需要成本的, 并不会持续攻击。 如果要求高的话, 还是买高防比较合适...

2020-04-20 13:11:26 335

原创 快速了解kafka

安装3台虚拟机master 1台 (1核1g20g硬盘)192.168.133.240node 2 台 (1核1g20g硬盘)192.168.133.241, 192.168.133.242系统版本: CentOS Linux release 7.5.1804 (Core)jdk 11.0.2zookeeper 3.6.0kafka_2.13-2.4.1# 安装方式# 1. ...

2020-04-20 01:15:24 265

原创 快速简单的了解k8s

k8s 是什么?官方解释:Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。这个问题可能很多人都有,所以我先说下我对k8s的理解:k8s可以自动部署docker容器k8s具有弹性伸缩功能, 能根据使用情况扩展和收缩容器规模k8s提供了容器间的负载...

2020-03-26 12:07:41 563

原创 LVS负载均衡补充(keepalived)

在上一篇 快速理解LVS负载均衡 中, 快递公司使用 “快递小哥” 微信小程序实现了 业务的均衡负载之后, 成功优化了业务,使快递点得到最大化利用。但是运营过程, 用户也反馈了,一些问题:快递小哥 有时候打不开。【经过排查, 发现是服务器故障引起的】偶尔有快递站点的无法提供服务,但还是分配快递过去了。【比如说:站点网络问题,停电等不可抗力】针对上述两个问题, 领导决定做出以下几点优...

2020-03-11 12:08:17 498

原创 分布式系統架构基础知识(1)-ACID到CAP和BASE【重写】

分布式系統概念:一个组件(硬件或者软件)分布在网络上的系统,组建之间通过传递消息进行通信和动作协调特点:分布式:分布式系统中的计算机分布情况,会根据实际情况来分布对等性:分布式系统中的就算计没有主/从之分, 所有节点都是对等的。并发性缺乏全局时钟:每一台计算机都有物理时钟, 但可能出现偏差故障独立性:进程可能出异常所有计算机都有可能出现故障,网络故障更詳細的分...

2020-02-09 17:27:34 164

原创 Redis相关知识汇总(五)集群应用

单实例有以下几个痛点单点故障容量有限并发这三个问题引出了, 微服务的 (AKF 原则)[https://baijiahao.baidu.com/s?id=1632326446570197886&wfr=spider&for=pc]主从/主备主从和主备的概念是有区别的主从, 一主,N个从, 从负责读取, 主负责读写主备,一主,N个备,备机不负责任务,主要任务...

2020-02-05 14:42:12 220

原创 Redis相关知识汇总(四)单实例场景下的应用

第一章说了, redis这类db的出现, 是为了解决访问数据库过慢的问题数据库慢就是两种情况:1. 读慢, 2. 写慢读上图是最基本的redis读数据流程但是这时候会出现一个问题, 设置缓存数据以后, val如果不删除, client会一直会读取缓存, 所以这时候会加入一个set timeout的操作这样做表面上解决了大部分情况的读取速度的情况, 但是又有3种并发情况:击穿: ...

2020-02-05 14:26:39 112

原创 Redis相关知识汇总(三)数据类型之hash和set

hash我感觉hash没啥好说的, 直接上图就好了,内部就是一个dict。值得注意的地方, hash是有限制的:redis.confhash-max-ziplist-value 64 // ziplist中最大能存放的值长度hash-max-ziplist-entries 512 // ziplist中最多能存放的entry节点数量...

2020-01-31 18:03:45 544

原创 Redis相关知识汇总(二)数据类型之string和list

说数据类型之前, 优先说两个对象1.typedef struct redisObject { // 类型 unsigned type:4; // 编码 unsigned encoding:4; // 对象最后一次被访问的时间 unsigned lru:REDIS_LRU_BITS; /* lru time (relative to s...

2020-01-23 00:02:52 278

转载 干货 | 记一个真实的排障案例:携程Redis偶发连接失败案例分析(转载)

问题描述生产环境有一个Redis会偶尔发生连接失败的报错。报错的时间点,客户端IP并没有特别明显的规律。以下是客户端报错信息。过一会儿,报错会自动恢复。CRedis.Client.RExceptions.ExcuteCommandException:Unable to Connect redis server: ---> CRedis.Third.Redis.RedisException...

2020-01-19 23:32:54 193

原创 Redis相关知识汇总(一)

首先普及一下前置知识:常用的数据库有3种,关系型 如 Oracle,MySQL,Microsoft SQL Server,PostgreSQL内存型 如 Redis, Memcacheddocument 如 MongoDB内存存储和磁盘存储的区别, 都知道内存比磁盘快, 那么具体快多少, 下面给出对比资料(大体的对比)寻址时间:启动位置到达所要求的读/写位置所经历的全部时间...

2020-01-18 21:32:41 221

原创 快速理解LVS负载均衡

首先我们说说LVS要解决的问题场景:顺风在北京建立了一个快递点,每天能处理50个人寄快递,由于快递需求增加每天要处理150个人, 如下图:为了解决这个问题, 顺风快递又在北京建立了2个快递点,他们的规划是这样子的如图:但实际使用上发现结果是这样子的为了解决分配不均的问题, 领导决定建立一个营业中心,用户打电话给营业中心,统一分配快递由哪个快递点处理上面就是lvs的第一种工作模式:【...

2020-01-12 01:04:58 482

原创 快速理解TCP/IP参考模型

这里有介绍什么是OSI参考模型?TCP/IP参考模型TCP11种状态TCP三次握手中SYN,ACK,Seq含义传输层首先通过一张图来快速理解一下tcp的3次握手和4次分手理解了上图之后,再看下一张普通的tcp通信(实际上是http)截图红圈标注的请无视, 因为并不是统一而连接三次握手(红色长方形)58051(系统随机分配一个端口)请求80(服务器) ------ 状...

2020-01-09 23:23:11 432

原创 phpstrom的xdebug调试补坑

首先引用一篇博客,写的很详细很整洁PhpStorm Xdebug 断点调试工具的安装前期我是按照这篇博客去配置的,但是没办法调试如博客上调试, 百般搜索发现,还需要配置一个phpstrom的web服务器4,是 上篇博客配置的域名5,是 上篇博客配置的端口6,是 项目地址然后运行这个服务器看见3 表示已经运行最后再下断点即可调试...

2019-12-31 16:19:29 202

原创 小公司持续集成CI搭建方案系列--代码扫描和自动测试

这篇主要是搭建代码扫描和运行单元测试和静态代码扫描,测试环境 依赖docker镜像预备基础知识docker构建新镜像pipeline基础知识pipeline相关工具和文档【ip换成自己的】php相关基础(主要是以php进行演示)目标静态代码扫描不满足要求,jenkins构建失败单元测试运行失败, jenkins构建失败单元测试结果,展示到jenkinsgitlab发起合并...

2019-12-26 20:08:31 637

原创 小公司持续集成CI搭建方案系列--gitlab和jenkins事件

安装篇完了, 这篇就提交代码到gitlab并触发push事件,jenkins接受事件并完成构建基础知识git 的基本操作重启jenkins 浏览器直接访问:http://192.168.133.129:18080/restart/(域名换成自己的)登录root帐号,新建gitlab项目新建gitlab项目新建一个用户新建一个用户输入 Name,Username,...

2019-12-11 15:50:36 525

原创 小公司持续集成CI搭建方案系列--快速搭建

这系列主要目标面向的是小公司, 没有专业运维, 但是需要搭建一套能用的CI的同学。安装搭建都是使用docker,快速的使用,所以并不会介绍某个应用怎么源码搭建怎么配置参数 …如果需要源码搭建的同学,建议自行百度不可免俗,网上说持续集成(Continuous Integration),持续交付(Continuous Delivery),持续部署(Continuous Deployment)的文章也...

2019-12-10 18:37:33 527

原创 搭建 超级签 详细攻略

超级签网上的讲解已经有很多很多了,但是都不够细致, 对于我这种没接触过苹果开发的人来说, 还是有点蛋疼。 这也是这边博客的目的,希望帮助到更多人。开头先说下超级签, 也不知道谁起的这么有创意的名字。 简单来说就是用过苹果的个人开发者帐号对用户设备进行针对性打包,然后提供用户下载。PS: 这过程是由系统自动完成。这个是签名的流程图:这个就涉及到几个问题需要获取用户的设备号 也就是 uui...

2019-11-26 19:57:16 9846 11

原创 超级签补充-IOS描述文件mobileconfig的签名认证

先说阿里云申请ssl证书以后, 下载这几个文件用到 apache中 xxx.com_public.crt https服务器端使用公钥证书文件用到 nginx 中的 key https服务器端使用证书对应的key 和pem腾讯云用到apache中1_root_bundle.crt https服务器端使用证书, 直接改名pem即可2_xx.com.crt https服务器端...

2019-11-15 12:47:09 3450

ip归属地sql文件

ip归属地sql文件, utf8格式,mysql到处, 内部是sql语句, 支持大部分数据库吧....ip归属地sql文件, utf8格式,mysql到处, 内部是sql语句, 支持大部分数据库吧...ip归属地sql文件, utf8格式,mysql到处, 内部是sql语句, 支持大部分数据库吧

2018-07-24

精通AngularJS

 由科兹洛夫斯基、达尔文所著的《精通AngularJS》全面系统的介绍了AngularJS框架。AngularJS是Google开发者设计和开发的一套前端开发框架,帮助简化前端开发的负担。AngularJS主要有以下几点优势:1)它是由互联网巨人Google组织开发的;这意味着它有更加强大的社区支持;2)AngularJS非常全面,没有其它的插件或者架构足以开发数据驱动的web应用;3)开发过程简单快捷。

2016-10-28

大规模Web服务开发技术.pdf

《大规模Web服务开发技术》是电子工业出版社2011年7月出版的图书,作者是伊藤直也、田中慎司。Hatena 是日本最大的Web 服务提供商之一,它提供的服务包括关键字(类似于维基百科)、博客、相册等。本书的内容主要来自Hatena 为学生们举行的暑期实习的课程,内容涵盖广泛,介绍了性能优化、分布式、算法、系统架构等各个方面,甚至还介绍了硬件的经济成本,是运维工程师们必不可少的参考书。

2016-03-15

数据结构与算法分析 C++语言描述 第二版 答案

数据结构与算法分析 C++语言描述 第二版的答案 可惜的是只有到15章的答案 没有16章

2015-03-02

数据结构与算法分析_C++语言描述(第2版)_Larry Nyhoff

网上找了N多本数据结构与算法分析的PDF 这本是最清晰的

2015-03-02

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

TA关注的人

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