- 博客(161)
- 资源 (2)
- 收藏
- 关注
转载 网络编程常见问题总结
来源http://yaocoder.blog.51cto.com/2668309/897030/网络编程常见问题总结 串讲(一) 网络编程常见问题总结 6 I& I! E- x8 Z+ p- U- B 在网络程序中遇到的一些问题进行了总结, 这里主要针对的是我们常用的TCP socket相关的总结, 可能会存在错误, 有任何问题欢迎大家提出. .
2017-05-12 18:18:07
1751
原创 spring-boot 启动失败
简单写了个spring boot测试应用,起不来,报以下warn和一堆exception** WARNING ** : Your ApplicationContext is unlikely to start due to a @ComponentScan of the default package.最后发现是application类不能放到src/java/main下,一定要用一个包把他抱起来
2017-03-16 14:35:45
2472
原创 MAC terminal ssh保持连接
client:sudo vi /etc/ssh/ssh_config添加:ServerAliveInterval 20服务端服务端超时要比这个长就好vi /etc/ssh/ssh_configClientAliveInterval 60拿走,不谢!
2017-02-16 14:09:55
7653
原创 zuul1.3.0不兼容java7问题
用spring boot,打开zuul的debug开关总是抛异常。最终定位到RequestContext.java : 546行public RequestContext copy() { RequestContext copy = new RequestContext(); Iterator it = keySet().iterator(); //exceptio
2017-01-16 18:20:18
746
原创 jvm配置(据说是阿里的)
-XX:+CMSClassUnloadingEnabled对永久代进行垃圾回收,Hotspot虚拟机中,永久代即方法区-XX:+UseParNewGC新生代使用并行垃圾收集器-XX:ParallelGCThreads=4并行垃圾收集器的线程数,即同时多少个线程一起进行垃圾回收。最好配置与处理器核心数目相等。-XX:+UseCMSInitiatingO
2016-12-30 11:19:17
3540
转载 交易系统热点账户问题
何为热点账户?热点账户即系统中,被高频繁地进行资金的进出操作,频繁出现加锁解锁操作的账户。比如,B2C系统中的企业虚拟户,用户购买商品时,资金从用户虚拟户转到企业虚拟户;用户退款时,资金从企业虚拟户转到用户虚拟户;这时,对企业虚拟户的资金进出操作就会成为整个业务的瓶颈。 基本解决思路1. 控制并发数:所有进出都先进到线程池中,以线程池的并发数控制实际对热点账户操作的
2016-09-22 13:35:28
4909
原创 分布式一致性相关
一致性:两阶段提交补偿交易模式http://wiki.jikexueyuan.com/project/cloud-design-patterns/compensation-trade-pattern.html
2016-05-21 22:51:00
400
原创 异步编程几种模式
callback事件监听pub/subpromise消息队列是典型的pub/sub模式实现,典型的如kafka。回调是最原始的。事件驱动这个对于GUI或JS这些里很常见。promise是把callback等顺序化,可以更直观的维护各种回调逻辑。可能有偏见,暂时没看到有啥特别之处,当然也是因为没有用过。回调可能会失败,失败时候就需要重试。重试策略怎么维
2016-05-19 15:29:26
1015
原创 规则引擎笔记
drools 基于RETE算法实现的规则引擎。支持java。 http://drools.org/ https://en.wikipedia.org/wiki/Rete_algorithm
2016-04-13 13:21:05
385
转载 go restful json api
入门不错http://thenewstack.io/make-a-restful-json-api-go/
2015-09-14 16:33:34
1000
转载 fastbit 基于bitmap的索引,看着很牛X的样子,先记录
https://sdm.lbl.gov/fastbit/stBit is an open-source data processing library following the spirit of NoSQL movement. It offers a set of searching functions supported by compressed bitmap inde
2014-09-01 10:05:05
2037
转载 vim折叠相关命令
set foldmethod=indent "set default foldmethod"zi 打开关闭折叠"zv 查看此行zm 关闭折叠zM 关闭所有zr 打开zR 打开所有zc 折叠当前行zo 打开当前折叠zd 删除折叠zD 删除所有折叠1. 折叠方式可用选项 'foldmethod' 来设定折叠方式:set fdm=*****。有
2014-08-19 19:54:42
674
原创 tokudb似乎很赞的样子
http://www.tokutek.com/products/tokudb-for-mysql/先记下来,现在脑子越来越不好使了,尤其记
2014-08-11 17:53:12
578
转载 memcache控制高并发问题
在面试某搜索公司时,面试官问了我memcache并发的处理问题,自己平常没有考虑这么多,只是简单的set和get,差距还是很大呐下面是收集到的一些memcache的并发控制的文章。http://hi.baidu.com/chen_cong_520/item/1f5a230c93fd513cf2eafc29memcached的原子性操作memcached是原子的吗
2014-07-01 11:13:52
5976
原创 codeigniter 脚本执行超过300s超时退出问题
直接看代码, file:system/core/CodeIgniter.php/*102 * ------------------------------------------------------103 * Set a liberal script execution time limit104 * --------------------------------
2014-06-20 16:23:31
2984
原创 swoole--php异步扩展,记录下
http://www.swoole.com/Swoole是一个PHP的C扩展,内置全异步非阻塞的高并发TCP/UDP Server,异步/同步Client。 Swoole提供了多线程epoll/kqueue事件循环,业务逻辑部分既可以像node.js一样全异步回调执行,也可以像php-fpm一多进程同步阻塞方式来运行。 Swoole还提供了PHP的异步MySQL,AsyncTask,消息队
2014-05-22 16:50:02
1199
原创 常用shell命令汇总
for循环:for shname in `ls *.sh`do name=`echo "$shname" | awk -F. '{print $1}'` echo $namedone
2014-05-13 18:54:09
536
原创 【设计模式】装饰
Decorator模式,可以不改变原有类,或者凡索的继承就可以改变其行为。不会破坏原有接口。我觉得decorator是最优雅的一个模式。设计模式中的小贵妇,小喜欢。还是那个经典的咖啡加牛奶,糖的问题。其实牛奶咖啡不是咖啡,也不是牛奶。只是一个组合体,所以用继承等来解决从概念上就有点说不通。何况还会带来乘积关系的子类膨胀。直接写代码吧: /** * @file test_de
2014-04-03 11:36:28
664
原创 【设计模式】组合模式
组合模式(composite)主要用来解决树形层次结构对象模型。用统一的component对象屏蔽不同类型的子节点的差异。对于客户端来说都提供一个统一的接口。典型应用场景如菜单,文件树等。组合模式思想感觉跟递归有一些关系。将不同的items组合成一个composite,而不同的composite和叶子节点又能组合出新的composite。看起来该模式似乎还比较简单。但是也没想到更多的场
2014-04-02 11:26:32
527
原创 【设计模式】桥
bridge模式据说是比较复杂的一个模式,从类图看其实一点都不复杂。我想复杂的部分应该就是怎么防止滥用吧。其主要思想是将一些经常变化实现部分与其表述分开。这样就表述和实现都可以独立变化了。这里想起了鸵鸟是不是鸟的一个问题。也不知道举得合不合适。主要还是写一些代码吧。仅供参考就好。现在对这块还没有更深入的理解。另外一个说bridge模式复杂的原因,我觉得主要是因为他应用的场景本身就复杂。
2014-03-26 16:14:20
487
原创 【设计模式】适配器
adapter,其实除了是一种软件设计模式,也是系统设计中经常碰到的思路。两个模块交互,有一个升级后接口变了,另一个还不想升级,这时候就需要一个适配模块,做个翻译的工作。总体思想比较简单。C++实现有两种,一种是类适配。通过公共继承目标类,私有继承被适配的类的多重继承来实现。因为本人对多重继承没什么好感,所以没写相关demo。另一种就是组合方式,适配器维护一个被适配的类的指针来实现。因
2014-03-19 17:15:35
851
原创 select,xpool,cpool,epool
cpool,xpool, epool,apoolxpool: 是很经典的领导者追随者模型,因为不想命名太长,就叫xpool。多个工作线程同时accept竞争一个可用的连接,拿到连接后就自己进行处理。accept这个地方加了锁是为了避免低版本内核上出现惊群效应. 一般认为在短连接的时候效果比较好,但如果同一时候连接数过多会造成没有工作线程与客户端进行连接,客户端会出现大量的连接失败。
2014-03-04 15:57:19
2437
转载 开源C/C++网络库比较 ace &&bosst
来源:http://wanglimin2004.blog.163.com/blog/static/115488498201271611723476/ACE是一个大型的中间件产品,代码20万行左右,过于宏大,一堆的设计模式,架构了一层又一层,使用的时候, 要根据情况,看你从那一层来进行使用。 在开源的C/C++网络库中, 常用的就那么几个, 在业界知名度最高的, 应该是ACE了,
2014-02-21 10:11:17
686
原创 【设计模式】单件
balabala估计很多人开始看设计模式的书或者初学时用得最多的都是单件了。就不多说了。不过小心滥用。这里单独那一个文章来写是因为,单件是创建型模式中最后一个。作为一个里程碑吧。创建型模型,用得最多的估计好似工厂方法。其他的可以认为是其一种衍生模式。后面继续结构性模式。
2013-09-23 18:58:42
566
原创 【设计模式】原型模式
原型模式,如其名称,核心就是要实现一个原型类,该类支持clone操作,从而客户可以从原型克隆出具体的类。其效果主要有如下:可以动态增加和删除产品。这个就是通过clone代替new等操作,也避免了客户与具体类打交道。通过改变对象的值,指定新的对象。clone出一个新对象后可以修改其参数改变对象,如果参数较多,可以提供类似initialize方法。减少creator类,减少子类数目。客
2013-09-23 15:40:13
716
原创 【设计模式】工厂方法
工厂方法,跟抽象工厂、建造者模式等解决的问题都类似,通过将产品和其实现分离,达到了客户和具体产品之间的解耦。工厂方法,其精髓就是他名字本身,在工厂类中提供一个工厂方法,该方法返回具体的产品。客户只需要关注该产品的接口(一般是抽象父类),而无需关注起具体实现和创建过程。工厂方法的一个缺点是客户可能仅仅为了穿件一个具体的产品,需要增加creator的一个子类。一般通过c++的模板方法可以解
2013-09-16 13:21:39
889
原创 【设计模式】建造者(生成器)
生成器模式,也叫建造者模式。有人说后者是想强调该模式重点是强调建造过程,而不是生成。个人比较认同,所以后文也叫建造者模式。建造者模式,主要意图是将对象的建造于他的表示分离。从而使得同样的建造过程可以建造出不同的产品。参与者有建造者,导演和具体的产品。举例说明,我们想生产电脑,电脑就是产品。声明一个类,叫builder,而具体的建造者,需要继承自这个父类,并实现其构造方法,并最终返回
2013-09-12 13:10:10
901
原创 【设计模式】抽象工厂
好久没写博客了,前端时间比较忙。今天开始写创建型模式的demo。第一个模式是抽象工厂,也是圣经上第一个模式。当然也是比较简单的模式,该模式主要职责是将客户和具体的产品分离了。将多个产品组装到同一个工厂下。客户只需要跟工厂打交道,而不需要知道产品具体的实现方式。先写个demo,很简单,有一个抽象工厂,可以生产A/B两种产品。有两个具体的工厂,工厂1、2。他们都可以生产A/B两种产品,但是具体制造过程
2013-09-10 20:34:09
843
原创 【设计模式】备忘录
备忘录,其实名字也比较形象。我们经常遇到将一个类的状态恢复到历史版本的需求。比如一个记事本,想保存一个上N个状态,通过Ctrl+Z可以恢复此前编辑内容。备忘录就非常适合这种场景。此时发起者类,希望能够将自身状态保留在某处,而且不希望过多的暴露细节。为了上述目的,发起者会在某个时刻通过new出一个备忘类对象,并将该对象托管给管理者类。然后需要恢复状态时,又从管理者类中获取具体状态,将自身恢复到某
2013-06-08 15:41:28
907
原创 【设计模式】中介者
中介者,说白了跟市面上黑中介类似。当然这个中介,开发者是可以控制其行为的。也是在一定的信任关系上建立的。该模式要解决的问题是,一堆对象之间交叉耦合问题。网上看过群聊的例子。如果没有任何一个平台,多人之间的会话会是什么样的呢?不举多人,就三个吧A想把一句话说给BC,那么他首先要知道B和C在哪儿,然后分别告诉对方,自己想说的事情。如果再加一个人呢?问题很明显,此时各种群聊工具应运而生。我写
2013-06-05 19:33:37
893
原创 【设计模式】迭代器
迭代器,应该都不陌生了,STL就有提供。迭代器模式,就是为了对于聚合对象做遍历用,从而隔离具体聚合对象和其访问者。访问者不需要知道聚合对象内部实现,也可以不用跟直接跟聚合对象打交道。对于不同的聚合对象,一般都用统一的接口(多态迭代),从而方便使用者。迭代器的实现相对也比较简单,但是有一些重复读,跳读等问题。这个后面在研究研究。/***************************
2013-05-31 11:59:36
605
原创 【设计模式】解释器
解释器,似乎应用场景比较固定:解析某种文法(比如正则表达式,编程语言)。实际中应用可能不会很多,先拿来了解一下。肯定是理解还不够深入。所没能真正体会其奥妙。该模式由上下文、表达式和客户组成。表达式又分为终结节点和非终结节点组成。这种结构天然的会想到用递归。所以性能肯定不是很理想。当然在设计模式那边书里也说了该模式应用场景就是对性能没有严苛的要求的场景。终结节点,负责解析该节点处的行为,
2013-05-30 19:04:22
920
转载 基于mysql的搜索引擎 Sphinx
原文链接:http://www.oschina.net/p/sphinx/Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为MySQL也设计了一个存储引擎插件。
2013-05-28 09:43:28
812
原创 【设计模式】命令
命令模式,最常应用的场景或许就是各种触发命令的场合。这个通过名称就可以联想,而且还比较容易理解。而其他诸如回调啊之类的应用场景目前还不是很能体会。命令模式目的用命令类本身将client和其真正实现者(receiver)进行解耦,从而用户只关心具体的命令,而不去关心其实现。而增加命令,对于现有的receiver和client都可以透明。而对于命令中的可撤销等感觉也不是必须的。增加这个特性
2013-05-27 19:36:58
580
原创 【设计模式】模板方法
Template方法模式,与c++的模板没有直接关系。或者可以认为这里的template是针对方法(函数)来说的,而c++的template则是针对成员变量或者参数来讲的。字面意思有一些关系。template method主要是通过在父类中定义一个模板,子类中实现该模板中的个性化部分。实现了固定部分和变化部分的解耦。模板方法本身比较简单。其目的就是为了共享一些公共部分,提升代码复用性。简单
2013-05-23 18:24:27
634
原创 【设计模式】访问者
Visitor模式,顾名思义,就是有客人要来拜访,当然客人不一定是谁,我们家也不一定就我一个人。所以是一个N:M的一个关系。但是我们家里的人一般都是比较固定的。就我跟我老婆,孩子,偶尔爸妈过来住一住。而来访者,可能是随便谁谁。他来我们家拜访,我肯定是要接待的。一般至少得开个门吧,然后我们还会开放一些空间给她参观,比如客厅,每个人都是可以参观的。而对于每个家庭成员,visitor可能要有不同
2013-05-23 10:45:54
608
原创 【设计模式】策略
P.S. 最近工作不是很忙,多写点东西吧。之前说过策略和状态从类图上看很像,但是应用场景很不同。状态是context自身的状态变迁(控制可以是在外边,也可以是在具体状态处理函数内)的场景下使用,不同状态对于客户是透明的;而策略,则是客户要求对于context采用不同的策略。这个策略对客户是暴露的。在策略模式用户指定采用哪个策略。当然这个指定可以是在编译时静态绑定(用模板那),也可以是在运行时动
2013-05-21 20:04:49
559
linux信号量说明
2010-12-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人