摘要: Elasticsearch简介 Elasticsearch (ES)是一个基于Apache Lucene(TM)的开源搜索引擎,无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。 但是,Lucene只是一个库。想要发挥其强大的作用,你需使用C#将其集成 阅读全文
posted @ 2017-01-09 21:07 yswenli 阅读(11877) 评论(14) 推荐(15) 编辑
摘要: 消息推送服务 服务器推送目前流行就是私信、发布/订阅等模式,基本上都是基于会话映射,消息对列等技术实现的;高性能、分布式可以如下解决:会话映射可采用redis cluster等技术实现,消息对列可使用kafka等分布式消息队列方案实现。 APM.Server基于简单 和 实现。 部分代码如下: 1 阅读全文
posted @ 2017-01-09 20:12 yswenli 阅读(1192) 评论(0) 推荐(0) 编辑
摘要: APM测试 俗话说麻雀虽小,五脏俱全。apm虽然简单,但是可以实现单机高性能消息推送(可以采用redis、kafka等改造成大型分布式消息推送服务器)。 测试demo: 1 using System; 2 using System.Collections.Generic; 3 using Syste 阅读全文
posted @ 2017-01-09 20:12 yswenli 阅读(897) 评论(0) 推荐(0) 编辑
摘要: TCP通信解包 虽说这是一个老生长谈的问题,不过网上基本很少见完整业务;或多或少都没有写完或者存在bug。接收到的数据包可以简单分成:小包、大包、跨包三种情况,根据这三种情况作相对应的拆包处理,示例如下: 1 /******************************************** 阅读全文
posted @ 2017-01-09 17:58 yswenli 阅读(703) 评论(0) 推荐(0) 编辑
摘要: 为什么使用异步 异步线程是由线程池负责管理,而多线程,我们可以自己控制,当然在多线程中我们也可以使用线程池。就拿网络扒虫而言,如果使用异步模式去实现,它使用线程池进行管理。异步操作执行时,会将操作丢给线程池中的某个工作线程来完成。当开始I/O操作的时候,异步会将工作线程还给线程池,这意味着获取网页的 阅读全文
posted @ 2017-01-09 17:58 yswenli 阅读(1307) 评论(1) 推荐(3) 编辑