13 murray2081

尚未进行身份认证

暂无相关描述

等级
博文 21
排名 226w+

语句倒装和语音图像压缩的科学原理

 今天吴军老师讲了一道简单谷歌面试题,把语句倒装和语音图像压缩的科学原理结合了起来,很有启发。 面试题目是说“如何不使用额外的存储空间完成语句倒装?”,例如要把“Londonbridgeisfallingdown”倒装成“downfallingisbridgeLondon”,这道题的难度在于不使用“额外的存储空间”,而最大思维陷阱在于人会陷入自己固有的思维方式,或者说...

2018-06-20 19:57:51

如何设计一个地图功能,找到当前最近的加油站?

吴军老师的《硅谷来信》中的第080封信,讲了一道Google面试题。 题目如标题,主要考察两方面:1、考察计算机科学的基本知识2、看候选人分解问题、解决问题的能力 首先处理一个问题要先全面了解问题,否则答非所问或者没有体会出题人的考察点。我刚开始思考这道题,忽略掉了有点个关键点:1、汽车是移动的,结果会不断更新,计算速度不能很慢。2、这个产品不同的使用场景,对准...

2018-04-19 12:57:52

锦标赛排序算法

 今天听了吴军老师的《硅谷来信》中的第079封信,了解到了锦标赛算法。 首先锦标赛排序又叫树型选择排序,也是用二叉树这种数据结构。这种排序方法比快速排序快,主要是在N个选手中选出K个选手中有优势。这封信中说了一道高盛面试题,即如何从25个选手中决出前三名,就使用了这种算法。 这封来信中讲解的方式和标准的锦标赛排序算法不太一样(标准的锦标赛排序算法见文末链接),共分三大步:...

2018-04-11 22:55:05

同程凤凰缓存系统基于Redis的设计与实践(转)

 本文摘自《深入分布式缓存》,此文中提到的同程在使用Redis过程中踩过的坑,非常真实也很有借鉴性,读文有感Mark如下: 1、Redis主从+Keepalived方案,存在的问题!这本来是个很好的方案,但是忽略了主数据节点挂掉的情况。Redis的单进程、单线程设计是其简单和稳定的基石,只要不是服务器发生了故障,在一般情况下是不会挂的。但同时,单进程、单线程的设计会导致Redi...

2017-12-28 21:15:55

限流功能设计

很早以前做过一个限流的功能,设计地很ugly。今天看到Log4j2的限流过滤器设计的非常好,花了一些时间研究感觉很不错,以后可能还会再用,总结一下吧。 首先我们要先聊一下限流功能主要是做什么?其实就是限制某种操作在某段时间内,限制做多少次。Log4j2的使用了一个DelayQueue和一个ConcurrentLinkedQueue开发了一个过滤器(burstFilter)比...

2017-12-15 19:30:20

kafka主题消费积压问题总结

 故障描述:12月6日下午运维反馈说,某个主题的一个分区消费积压,由于这个主题非常重要,且已经有用户投诉所以运维很紧张,紧急打印堆栈并Dump堆内存后,就重启了这台机器。 故障分析1:消费这个主题的集群的业务逻辑相对比较简单,主要就是读取某些主题,然后逻辑判断+DB操作后,分流写入到另外某些主题。运维通过kafka监控平台找到积压的主题,发现主题的某个分区积压了几万消息后,...

2017-12-09 23:43:39

httpclient连接池相关参数的坑

 今天早上UIOC,现象是发现调用某个服务的接口总是超时,这个环境昨晚没有发版本无缘无故就出问题很是奇怪。到公司各种查,最终通过问题服务重启前打印的堆栈信息看到几乎所有的线程都在等待连接池释放连接后获取空闲连接。错误如下:"xxxxxxxxxxxxx"prio=10tid=0x00007f6b7c002800nid=0x40ffwaitingoncondition[0x0...

2017-07-28 22:59:23

关于dubbox部分rest接口超时问题研究

 业务高峰期部分rest接口超时有一段时间了,之前一直怀疑是kafka、nginx、log4j、网络等原因并进行优化,一直没有太大改观。我们生产共有四台nginx反向代理网关,运维在某台nginx中通过日志grep看到,高峰期 nginx反向代理到后端某台tomcat,每秒达到100+,4台nginx则为400+,已超过tomcat设置的并发连接数和完全连接队列的大小(200+100=...

2017-07-28 00:32:59

非阻塞I/O及epoll理解新方式?

 阻塞I/O与非阻塞忙轮询I/O的缺点阻塞I/O:一个线程只能处理一个流的I/O事件。如果想要同时处理多个流,要么多进程(fork),要么多线程(pthread_create)。非阻塞忙轮询I/O:循环轮询所有流,没有I/O时CPU空转。以上两种方式缺点很明显,阻塞I/O一个线程(或进程)处理一个流不适合高并发和大量长连接场景,非阻塞忙轮询I/O的主要问题需要主动轮询流的状态,...

2017-01-18 18:14:10

OpenResty?ngx_lua?Nginx与ngx_lua结合?

什么是OpenResty?将Lua和Nginx粘合ngx_lua模块,并且将Nginx核心、LuaJIT、ngx_lua模块、许多有用的Lua库和常用的第三方Nginx模块组合而成。  什么是ngx_lua及原理?ngx_lua是Nginx的一个模块,将Lua嵌入到Nginx中,从而可以使用Lua来编写脚本,这样就可以使用Lua编写应用脚本,部署到Nginx中运行,即Ngi...

2017-01-18 17:04:25

Mysql复合索引的坑!!!

 问题第一次发生!上周五公司年会,一早运维电话说UIOC,IMS应用的CPU持续飙高,立马启动UIOC。迅速赶到公司情况属实,各种查最终发现DB并发连接数超高,DB负载超高,kafka积压严重,并且持续时间已经有一两个小时了。  解决方案第一波!查看IMS应用线程堆栈(ThreadDump)信息发现200个运行线程有167个都在做同一个操作,这个操作是每个用户登录时都要...

2017-01-11 23:21:48

TCP分段和IP分片

主要讲TCP/IP协议中传输层的分段和网络层的分片 1、TCP分段是指在经三次握手后,收发双方建立起连接通过后,双方已经协商好并确定彼此要采用的MSS(最大分段长度B),MSS一般都是按照接受方确定。然后把用户数据payload按照MSS大小进行分段,各个分段数据被逐一添加TCP报头后(20B),送给下一层网络层。 2、网络层接收到这些分段后,在添加端主要的IP报头前,按照主机...

2016-03-31 09:39:30

深入浅出协程(Coroutine)

目录:1、协程是什么2、协程新思路3、协程与GreenThread4、协和调度器实现策略 1、协程是什么?(1)线程每一个线程都代表一个执行序列。当我们在程序中创建多线程的时候,看起来,同一时刻多个线程是同时执行的,不过实质上多个线程是并发的,因为只有一个CPU,所以实质上同一个时刻只有一个线程在执行。在一个时间片内执行哪个线程是不确定的,我们可以控制线程的优先...

2016-03-29 09:45:54

性能测试发现“redis cannot assign requested address”问题

 场景描述:test_client(jmeter)->nginx->redis 问题表现:nginx频繁报错rediscannotassignrequestedaddress,查看nginx网络连接情况,发现有大量TIME_WAIT的连接,并且test_client的tps上不去。大量的TIME_WAIT状态使得localport在TIME_WAIT持...

2016-03-17 17:14:05

Java线程结束/中断退出

SelectorManager包含Reactor(extendsThread)数组,要停止SelectorManager所以要先停掉各个Reactor,查看代码如下:publicsynchronizedvoidstop(){if(!started){return;}started=false;for(Reactorreactor:reactorSet){rea...

2015-08-19 14:17:19

CentOS 6.5安全加固及性能优化

说明:经常玩Linux系统的朋友多多少少也知道些系统参数优化和怎样增强系统安全性,系统默认的一些参数都是比较保守的,所以我们可以通过调整系统参数来提高系统内存、CPU、内核资源的占用,通过禁用不必要的服务、端口,来提高系统的安全性,更好的发挥系统的可用性。通过自己对Linux了解,对系统调优做了如下小结:操作系统:CentOS6.5_x64最小化安装1、主机名设置 [roo...

2014-12-04 12:44:52

Netty 4.0.0.Alpha1

Netty3.5.2.Final到Netty4.0.0.Alpha1变化很大 主要体现在以下几个方面1.包结构的变化(Projectstructurechanges)2.BufferAPI变化(BufferAPIchanges)3.ChannelAPI变化(BufferAPIchanges)4.定义更加完善的线程模型(Well-defin...

2012-07-22 21:55:57

jsessionid释疑解惑(转)

在web应用的开发中我们会经常看到这样的url:http://www.xxx.com/xxx_app;jsessionid=xxxxxxxxxx?a=x&b=x。这跟一般的url基本一样,只有一个地方有区别,那就是“;jessionid=xxxxxxxx”。这个参数有时候有,有时候又没有,说它是参数可又跟一般传递的参数不同,它是紧跟在url后面用分号来分隔的,用一般的request.get...

2011-11-01 13:52:45

Apache MINA 2.0.4 Released

TheApacheMINAprojectispleasedtoannounceMINA2.0.4!Thisversionisabugfixrelease. Werecommendalluserstoupgradetothisrelease.Weconsiderthisastableandproductionreadyrel...

2011-06-23 09:33:09

关于TOMCAT缓存问题及处理方法

1。问题tomcat的缓存机制事出做项目时一个jsp页面修改后一直没有读出来,后来仔细研究了下tomcat才发现当请求jsp页面时,Tomcat会分派给JspServlet来处理,在jspServlet的方法service()中有一句booleanprecompile=preCompile(request);它会判断你请求jsp页面时有没有带?jsp_precompile查询字符串...

2011-06-01 16:22:23
奖章
    暂无奖章