自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 内存回收

内存回收 内存状态分为 使用 未使用 可回收 这几点有啥区别: 使用 -- 标记状态已使用 未使用 -- 使用地址到结束地址 可回收 -- 标记状态为回收 怎么判断内存可回收? 因为调用释放接口了 怎么回收性能高? 批量回收(不要回收太频繁) 避免磁盘碎片? 磁盘内碎片分为几种?  磁...

2018-12-30 12:39:48 318 0

原创 cmake的使用

cmake CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake...

2018-12-30 12:38:10 45 0

原创 网络io

相关概念 如果你想吃一份宫保鸡丁盖饭: 同步阻塞:你到饭馆点餐,然后在那等着,还要一边喊:好了没啊! 同步非阻塞:在饭馆点完餐,就去遛狗了。不过溜一会儿,就回饭馆喊一声:好了没啊! 异步阻塞:遛狗的时候,接到饭馆电话,说饭做好了,让您亲自去拿。 异步非阻塞:饭馆打电话说,我们知道您的位置,一会...

2018-12-30 12:32:54 330 0

转载 ptop简单学习

一、 什么是ptop? 产生背景。 P2P可以理解为对等互联网。 P2P打破了传统的Client/Server (C/S)模式,在网络中的每个结点的地位都是对等的。每个结点既充当服务器,为其他结点提供服务,同时也享用其他结点提供的服务。 相比c/s模式, 客户端越多, 服务器压力越大, 性能容...

2018-12-18 17:24:17 398 0

原创 本地全量缓存

全量缓存 背景及目标 当前我们的数据流向是这样的:Hdfs->redis->程序内部缓存->缓存。存在redis性能不足。读写过于频繁。写频繁主要是从hdfs一条一条的读取, 没有批量写入。因为程序还不太稳定, 经常会重启,内部缓存被清空, 内存不大命中...

2018-12-18 11:48:11 346 0

转载 epool好的解释

这篇文章通俗易懂: https://blog.csdn.net/wangtaomtk/article/details/51811011

2018-09-06 17:35:43 857 0

原创 高效做事

1. 理解目标 多问自己几个问题? 是什么, 为什么这样做, 怎样做。只要向着目标前进, 工作才是有效的。 2. 会分类 把问题分为重要不重要, 能解决不能解决的。擅长的不擅长的。 能够充分利用自己的优势。 3. 会休息 不只是睡眠, 还要学会放松自己。 运动,聊天等。 4. 集中精力...

2018-09-03 11:21:24 67 0

转载 qq发展史

https://wenku.baidu.com/view/64f4774f2379168884868762caaedd3383c4b5d2.html http://tieba.baidu.com/p/3393729398

2018-08-29 11:24:35 302 0

原创 为什么米聊干不过微信

1. 核心功能不稳定 2. 广播太多用户体验差 3. 取名太局限 4. 发展新朋友能力有限 5. 运营能力差

2018-08-29 11:23:17 1385 0

原创 互联网产品

一、 什么是产品? 产品就是给用户用的东西。 用户为什么用你这个东西?因为你的东西能满足用户的需求, 对用户有价值。那么我们怎么满足用户的需求? 有时候用户都不清楚需要什么样的功能。  二、 产品怎么符合用户的需求?  2.1 明确核心需求 明确了核心需求后, 保证该功能稳定高效, 使用便...

2018-08-29 11:17:16 55 0

原创 分布式缓存

一、 代表 redis, memcache 二、 功能 缓存计算数据, 提高性能           -- 不用每次去重复计算 缓存数据库数据, 降低数据库负载   -- 查询的时候可以在缓存里查询, 不用每次直接访问数据库, 数据库访问次数减少了  共享数据 -- 多个server处理业务...

2018-08-17 11:35:26 468 0

原创 面对压力

一、背景 现在社会压力很大, 我们随时随刻地要面对压力。 学会面对压力, 让我们生活更美好。 二、 压力产生原因 你想要它但是很难得到 三、怎么面对压力? 人是感情动物, 很难说不去想它。 想它又会觉得压力很大。 3.1 分压  如果我和你的“战友”在面对它, 相互倾诉, 相互打气加...

2018-08-17 10:57:01 106 0

转载 未来 3 年,什么样的技术人,最有机会年赚 100万

https://blog.csdn.net/GitChat/article/details/81380449

2018-08-17 09:57:20 135 0

原创 锁优化

1. 减少锁 2. 锁使用次数 3. 减少时间 4. 乐观锁(多读的场景)、悲观锁 

2018-08-15 19:23:46 44 0

转载 消息队列

https://blog.csdn.net/cws1214/article/details/52922267

2018-08-11 17:30:36 71 0

转载 乐观锁

https://www.cnblogs.com/ruiati/p/7211349.html

2018-08-11 17:25:33 699 0

原创 从网络开始谈Paxos算法

一、 背景 paxos是大名鼎鼎的分布式一致性算法, 但是它解决了什么问题, 怎么解决这些问题, 本文和大家一起探讨。 二、举例子 现在我们有四台机器, 每个机器都有数据要数据要存储,分别为v = a, v = b, v = c, v = d。 2. 1 假设我们只部署了一个memcach...

2018-08-09 20:31:34 47 0

原创 加密与解密

一、背景 数据在网络传输中, 有可能传输过程中有可能被别人恶意获取, 从而造成风险。 采用加密手段, 使得捕获的数据别人也难用利用。 二、 加密的重要特性 完整性(消息不被篡改),保密性(第三方无法解密),可认证性(接收方知道消息是由谁发送的) 三、 分类与区别 3.1 不需要还原解密 ...

2018-08-05 19:41:19 340 0

原创 sql注入

一、怎么产生? 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意 的SQL命令。 二、怎么用? 参考:https://www.cnblogs.com/DonAndy/p/5417546.html 三、怎么消灭 3.1 ...

2018-08-05 16:04:25 51 0

原创 网络不可靠,唯一可靠就是反馈

一、 数据在网络中是怎么路由的? 1.1 同局域网中 网络是未知的, 计算机a怎么把数据刚好传输到计算机b呢? 实际上a是不知道计算机b的。 它会交换机问b在哪里? 交换机不知道的时候, 它会对所有人喊话-b在吗, 有你的数据。 当所有人听到这个请求, 都很老实, 不是自己的都不去领。只有b才...

2018-08-05 16:04:13 672 0

原创 从递归到分治

一、递归结构 递归是很有用的思想。把一个很复杂的问题使用同一个策略将其分解为较简单的问题,如果这个的问题仍然不能解决则再次分解,直到问题能被直接处理为止。 它的结构一般是这样的: 1.1 终结边界。 函数结束递归的出口 1.2 缩小问题规模。通过把问题转换对子问题的求解, 缩小规模。 由...

2018-08-02 10:12:20 71 0

原创 Graphviz的使用

一、背景 最近想画一些架构,流程图之类的, 有些图形比较负责,画起来比较费时间,就找了个简单工具辅助自己画图。Graphviz画的图比较简单,凑合能用,优点就是快适合程序员使用。 二、安装 官方网站(https://graphviz.gitlab.io)下载安装就好了,我全程没有问题。 三...

2018-08-01 19:07:30 1022 0

原创 尾递归,递归优化

一、什么是尾递归 程序调用自身的编程技巧称为递归( recursion)。尾递归是一种特殊的递归,递归形式的调用都出现在函数的末尾,我们称这个 递归函数是尾递归的。 二、尾递归的优势 尾递归函数的特点是在回归过程中不用做任何操作,这个特性很重要,因为大多数现代的编译器会利用这种特点自动生成...

2018-08-01 19:04:38 646 0

转载 转载缓存相关问题:缓存穿透,缓存击穿,缓存雪崩解决方案分析

https://blog.csdn.net/zeb_perfect/article/details/54135506

2018-07-25 10:51:28 39 0

原创 rpc原理

一、rpc是什么 RPC全称为Remote Procedure Call,翻译过来为“远程过程调用”。通过RPC框架机器A某个进程可以通过网络调用机器B上的进程方法,就像在本地上调用一样。 二、rpc一般调用流程 client发出调用方法(服务)的请求 client stub作为中转站,进...

2018-07-24 21:33:47 53 0

原创 redis持久化

一、redis持久化方式 1. rdb方式 rdb就是把内存里的数据以二进制写入文件。 其中序列化协议自己自定义的。因为采用二进制,恢复效率高,速度快。 但是一般是是每隔一段才rdb备份一次, 所以相对来说不安全。 2. atof方式 aof就是把变更的指令, 以文本方式追加写入日志。相比...

2018-07-24 12:49:11 32 0

原创 memcache原理

一、memcache是什么? MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。 MemCaChe是一个存储键值对的HashMap,在内存中对任意的数据...

2018-07-23 20:23:12 48 0

原创 负载均衡器原理

一台服务器的性能达到极限时,我们可以使用服务器集群来提高网站的整体性能。那么,在服务器集群中,需要有一台服务器充当调度者的角色,用户的所有请求都会首先由它接收,调度者再根据每台服务器的负载情况将请求分配给某一台后端服务器去处理。 主要考虑几个问题: 一、触发 应用层触发 dns域名解析负载...

2018-07-20 16:04:13 66 0

原创 explain及sql优化

一、explain是什么? explain显示了数据库内部怎么处理sql, 主要是使用索引情况, 可以帮助选择更好的索引和写出更优化的查询语句。 二、explain能够提供什么样的信息 type指示有没有使用索引,key指示索引在哪个字段。 注:all表示没有使用索引, 范围查找如果使用了...

2018-07-19 16:39:20 101 0

原创 分布式数据库事务

一、背景 当我们的单个数据库的性能产生瓶颈的时候,我们可能会对数据库进行分区。 这时候事务不能只依靠本地数据库对事务支持来实现了。 二、集中实现方案 2.1 两阶段提交(2PC) 假设事务在a,b两个数据库上。 那现在要对这两个数据库实现事务支持, 就是分别操作a,b上的事务, 由一个中间...

2018-07-19 10:59:23 3040 0

原创 数据库提高篇

一、数据的四大特征ACID 1.1 原子性(Atomicity):事务是数据库的逻辑工作单位,它对数据库的修改要么全部执行,要么全部不执行。用事务实现。 1.2 一致性(Consistemcy):事务执行前后,数据库的状态都满足所有的完整性约束。 1.3 隔离性(Isolation):并发执...

2018-07-18 17:43:39 58 0

原创 排序算法

排序算法有很多种, 本文简单说下比较常见的排序算法。 一、简单选择排序 原理:遍历n-1次数据, 每次挑选出剩余元素的最小值, 最后得到一个排好序的数组。 平均复杂度: O(n^2) 二、冒泡排序 原理:像冒泡一样, 相邻两个元素小的往上浮,大的往下符, 两两交换, 一轮下来每次能确定最...

2018-07-17 20:04:09 22 0

原创 提高服务器性能-灵活性

1. 通过配置文件及占位符获得灵活性 2. 通过执行sql获得灵活性 3. fork执行一些脚本获得灵活性 4. 自定义一些规则执行,解析规则,运行规则

2018-07-16 15:56:23 181 0

原创 提高服务器性能-网络

一、网络处理结构图二、网络模型选择参考5种服务器网络编程模型https://blog.csdn.net/qq_29108585/article/details/78177278高性能IO之Reactor模式https://www.cnblogs.com/doit8791/p/7461479.htm...

2018-07-16 15:41:00 99 0

原创 提高服务器性能-服务器代码

1. 线程池, 池, 流水线, 内存缓存(更新, 过期策略)2. 日志要按照业务流程来打印, 内部一些重要统计要打印3. 调用别人接口要做异常处理4. mvc,orm, 生成代码工具要会写...

2018-07-16 14:22:08 72 0

原创 提高服务器性能-架构

一、总体架构图 1.1 初始阶段 这时应用程序、数据库、文件等所有的资源都在一台服务器上 1.2 服务器分离 随着网站业务的发展,一台服务器逐渐不能满足需求:越来越多的用户访问导致性能越来越差,越来越多的数据导致存储空间不足。这是就需要将应用和数据分离。 1.3 应用垂直切分 ...

2018-07-16 11:26:48 1030 0

转载 zookeeper应用原理

一、 zookeeper是什么 分布式系统提供一致性协调(Coordination)服务。 二、zookeeper基本功能及应用 2.1 数据发布与订阅(配置中心) 把数据保存在 Zookeeper 的某个目录节点中,然后所有相关应用程序对这个目录节点进行监听,一旦配置信息发生变化,每个应...

2018-07-09 17:29:07 48 0

原创 rpc框架实现原理

一、 rpc是什么?像本地函数调用一样调用远程服务, 却不需要了解底层网络技术的协议。二、框架客户端--接口-clientstub服务端-接口-serverstub三、实现原理1. 怎么让别人知道有这个服务? 如何发布自己的服务 阿里内部使用的RPC框架HSF是通过ConfigServer来完成这...

2018-07-03 21:36:58 422 0

原创 计算器的简单实现

一直对编译器比较感兴趣, 就通过写一个计算器来探讨编译怎么实现的。总共分为3块: 1. 词法解析把输入的字符串,进行分类, 切割成各种token。例如 变量, '+’, ‘-',  数字等。2. 语法分析根据token的结构, 得到语法分析树。 简单点讲就是通过token的结构...

2018-07-02 14:16:34 66 0

原创 简单说-maven及gradle

maven是什么?简单点讲就是java打包工具。 主要解决依赖jar包问题。对应的配置文件pom.xml。它能帮我们做什么?1. 自动递归依赖。比如1个项目依赖某个jar1, jar1又依赖jar2. 在我们的项目里设置好jar1就好了, maven就会自动帮我们项目搞定依赖2.2. 自动下载上传...

2018-06-29 18:56:04 81 0

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