自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 内存回收

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

2018-12-30 12:39:48 514

原创 cmake的使用

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

2018-12-30 12:38:10 162

原创 网络io

相关概念如果你想吃一份宫保鸡丁盖饭:同步阻塞:你到饭馆点餐,然后在那等着,还要一边喊:好了没啊!同步非阻塞:在饭馆点完餐,就去遛狗了。不过溜一会儿,就回饭馆喊一声:好了没啊!异步阻塞:遛狗的时候,接到饭馆电话,说饭做好了,让您亲自去拿。异步非阻塞:饭馆打电话说,我们知道您的位置,一会给你送过来,安心遛狗就可以了。同步和异步是针对应用程序与内核的交互而言的。同步    指的是用...

2018-12-30 12:32:54 473

转载 ptop简单学习

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

2018-12-18 17:24:17 6920

原创 本地全量缓存

全量缓存背景及目标当前我们的数据流向是这样的:Hdfs->redis->程序内部缓存->缓存。存在redis性能不足。读写过于频繁。写频繁主要是从hdfs一条一条的读取, 没有批量写入。因为程序还不太稳定, 经常会重启,内部缓存被清空, 内存不大命中率低等原因, 导致读取效率不高。所以我们需要一个缓存解决以上这些问题,它得具有这些特征:1.1 独立进程 --- 解决引擎...

2018-12-18 11:48:11 997

转载 epool好的解释

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

2018-09-06 17:35:43 1057

原创 高效做事

1. 理解目标多问自己几个问题? 是什么, 为什么这样做, 怎样做。只要向着目标前进, 工作才是有效的。2. 会分类把问题分为重要不重要, 能解决不能解决的。擅长的不擅长的。 能够充分利用自己的优势。3. 会休息不只是睡眠, 还要学会放松自己。 运动,聊天等。4. 集中精力抓住重点, 不要被琐碎的事情耽误。5. 迭代完美不断地要求完美, 防范于未来风险。...

2018-09-03 11:21:24 173

转载 qq发展史

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

2018-08-29 11:24:35 818

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

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

2018-08-29 11:23:17 2446

原创 互联网产品

一、 什么是产品?产品就是给用户用的东西。 用户为什么用你这个东西?因为你的东西能满足用户的需求, 对用户有价值。那么我们怎么满足用户的需求? 有时候用户都不清楚需要什么样的功能。 二、 产品怎么符合用户的需求? 2.1 明确核心需求明确了核心需求后, 保证该功能稳定高效, 使用便捷2.1 从历史进行统计从历史可以学习,挖掘一些内在需求2.2 逐渐优化我不知道最好的...

2018-08-29 11:17:16 110

原创 分布式缓存

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

2018-08-17 11:35:26 586

原创 面对压力

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

2018-08-17 10:57:01 175

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

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

2018-08-17 09:57:20 203

原创 锁优化

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

2018-08-15 19:23:46 106

转载 消息队列

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

2018-08-11 17:30:36 147

转载 乐观锁

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

2018-08-11 17:25:33 952

原创 从网络开始谈Paxos算法

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

2018-08-09 20:31:34 117

原创 加密与解密

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

2018-08-05 19:41:19 630

原创 sql注入

一、怎么产生?所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。二、怎么用?参考:https://www.cnblogs.com/DonAndy/p/5417546.html三、怎么消灭3.1 检查SQL注入校验输入类型当确定输入没有特殊字符时候, 对于特殊字符返回失败, 或者转义3...

2018-08-05 16:04:25 111

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

一、 数据在网络中是怎么路由的?1.1 同局域网中网络是未知的, 计算机a怎么把数据刚好传输到计算机b呢? 实际上a是不知道计算机b的。 它会交换机问b在哪里? 交换机不知道的时候, 它会对所有人喊话-b在吗, 有你的数据。 当所有人听到这个请求, 都很老实, 不是自己的都不去领。只有b才会回复,是我的, 这样a知道b了可以进行通信了。 而且这个过程可以缓存起来(b缓存,交换机缓存, a缓...

2018-08-05 16:04:13 1159

原创 从递归到分治

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

2018-08-02 10:12:20 146

原创 Graphviz的使用

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

2018-08-01 19:07:30 2906

原创 尾递归,递归优化

一、什么是尾递归程序调用自身的编程技巧称为递归( recursion)。尾递归是一种特殊的递归,递归形式的调用都出现在函数的末尾,我们称这个递归函数是尾递归的。二、尾递归的优势尾递归函数的特点是在回归过程中不用做任何操作,这个特性很重要,因为大多数现代的编译器会利用这种特点自动生成优化的代码。这个调用返回时栈帧中并没有其他事情可做,因此也就没有保存栈帧的必要了。通过覆盖当前的栈...

2018-08-01 19:04:38 1010

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

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

2018-07-25 10:51:28 80

原创 rpc原理

一、rpc是什么RPC全称为Remote Procedure Call,翻译过来为“远程过程调用”。通过RPC框架机器A某个进程可以通过网络调用机器B上的进程方法,就像在本地上调用一样。二、rpc一般调用流程client发出调用方法(服务)的请求 client stub作为中转站,进行请求接口、方法、参数以及服务地址、请求Id的封装,包装成RequestMessage对象、序列化——...

2018-07-24 21:33:47 114

原创 redis持久化

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

2018-07-24 12:49:11 72

原创 memcache原理

一、memcache是什么?MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。MemCaChe是一个存储键值对的HashMap,在内存中对任意的数据(比如字符串、对象等)所使用的key-value存储,数据可以来自数据库调用、API调用,或者页面渲染...

2018-07-23 20:23:12 164

原创 负载均衡器原理

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

2018-07-20 16:04:13 151

原创 explain及sql优化

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

2018-07-19 16:39:20 251

原创 分布式数据库事务

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

2018-07-19 10:59:23 4944

原创 数据库提高篇

一、数据的四大特征ACID1.1 原子性(Atomicity):事务是数据库的逻辑工作单位,它对数据库的修改要么全部执行,要么全部不执行。用事务实现。1.2 一致性(Consistemcy):事务执行前后,数据库的状态都满足所有的完整性约束。1.3 隔离性(Isolation):并发执行的事务之间是隔离的,保证多个事务互不影响。有几个隔离级别。1.4 持久性(Durability)...

2018-07-18 17:43:39 135

原创 排序算法

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

2018-07-17 20:04:09 67

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

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

2018-07-16 15:56:23 440

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

一、网络处理结构图二、网络模型选择参考5种服务器网络编程模型https://blog.csdn.net/qq_29108585/article/details/78177278高性能IO之Reactor模式https://www.cnblogs.com/doit8791/p/7461479.html一般epool+线程池(handle), 如上图三、网络协议选择3.1 tcp or udp?3.2...

2018-07-16 15:41:00 251

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

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

2018-07-16 14:22:08 152

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

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

2018-07-16 11:26:48 1684

转载 zookeeper应用原理

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

2018-07-09 17:29:07 102

原创 rpc框架实现原理

一、 rpc是什么?像本地函数调用一样调用远程服务, 却不需要了解底层网络技术的协议。二、框架客户端--接口-clientstub服务端-接口-serverstub三、实现原理1. 怎么让别人知道有这个服务? 如何发布自己的服务 阿里内部使用的RPC框架HSF是通过ConfigServer来完成这项任务的。此外,Zookeeper也被广泛用于实现服务自动注册与发现功能。不管具体采用何种技术,他们大...

2018-07-03 21:36:58 653

原创 计算器的简单实现

一直对编译器比较感兴趣, 就通过写一个计算器来探讨编译怎么实现的。总共分为3块: 1. 词法解析把输入的字符串,进行分类, 切割成各种token。例如 变量, '+’, ‘-',  数字等。2. 语法分析根据token的结构, 得到语法分析树。 简单点讲就是通过token的结构得到得到命令以及对应的参数。这些命令以及按优先级, 结合顺序排好序了。3. 执行。执行命令。实现思路:词法分析:输入tok...

2018-07-02 14:16:34 206

原创 简单说-maven及gradle

maven是什么?简单点讲就是java打包工具。 主要解决依赖jar包问题。对应的配置文件pom.xml。它能帮我们做什么?1. 自动递归依赖。比如1个项目依赖某个jar1, jar1又依赖jar2. 在我们的项目里设置好jar1就好了, maven就会自动帮我们项目搞定依赖2.2. 自动下载上传包。 这样就可以不用浪费时间找包啦。3. 解决部分依赖冲突。 当直接依赖和间接依赖某个包的时候, 它就...

2018-06-29 18:56:04 282

空空如也

空空如也

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

TA关注的人

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