基于Protobuf的分布式高性能RPC框架——Navi-Pbrpc
1 简介
Navi-pbrpc框架是一个高性能的远程调用RPC框架,使用netty4技术提供非阻塞、异步、全双工的信道,使用protobuf作为序列化协议,同时提供长、短连接模式,支持non-blocking和传统的blocking io,以及负载均衡,容错处理策略等,对于基于socket的分布式调用提供通信基础。
如果你的项目中需要高性能的RPC解决方案,那么navi-pbrpc可以帮助到你构建一个强大的远程调用系统。
Navi-pbrpc使用netty nio开发,全双工、异步、非阻塞的通信模型,保证了高性能和理想的QPS,了解详细性能测试报告见附录性能测试。
单测覆盖率见附录。
[……]
SpringMVC源码分析和一些常用最佳实践
前言
本文分两部分,第一部分剖析SpringMVC的源代码,看看一个请求响应是如何处理,第二部分主要介绍一些使用中的最佳实践,这些best practices有些比较common,有些比较tricky,旨在展示一个框架的活力以及一些能在日常项目中能够应用的技巧,这些技巧的线索都可以在第一部分的代码剖析中找到,所以读读源代码对于使用好任何框架都是非常有帮助的,正所谓“知其然,还要知其所以然”。[……]
从无重复大数组找TOP N元素的最优解说起
有一类面试题,既可以考察工程师算法、也可以兼顾实践应用、甚至创新思维,这些题目便是好的题目,有区分度表现为可以有一般解,也可以有最优解。最近就发现了一个这样的好题目,拿出来晒一晒。
1 题目
原文:
There is an array of 10000000 different int numbers. Find out its largest 100 elements. The implementation should be optimized for executing speed.
翻译:
有一个长度为1000万的int数组,各元素互不重复。如何以最快的速度找出其中最大的10[……]
半面创新的一些学习总结
有幸参与了周宏桥老师的半面创新两天的培训session,主题是关于创新突破性产品的实践体系,体会颇多,扩展自己的视野的同时,大有感觉在创新领域绝对是存在原则和方法论的,趁热记录下课程的重点内容。下面内容多是上课时的笔记,由于周老师通晓历史诗歌,所以有很多生动的故事也简单写在里面,了解更多可以搜索周老师的相关出版物。
1. 创新成果五大原则
1.1 一命
Java基础类型存储与运算知识
最近发现一个问题,面试者、甚至组员中,在被问及一些计算机基础类型存储知识的时候,也许是大家目前的工作都是比较偏业务,以至于基础知识不太扎实,感觉有必要在这里在夯实一下,以被后人和自己牢记——基础知识或许不是你现在工作最重要的,但却是你未来进步的基石。
1. Java中的原码、反码和补码
1.1 原码
原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制:
[+1]原 = 0000 0001
[-1]原 = 1000 0001
第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是:
[[……]
构建一个类timeline系统的架构设计
从代码到云的一种理解
偶然翻出很久之前的印象笔记,发现曾经听过百度架构师林士鼎的一席小规模讲座,虽然时间久远但回顾看来也正是那个时候有了想做架构师的最初萌芽,一则笔记分享出来。
分层至关重要
一个大型的系统分层非常重要,以设计一个数据密集型的任务作业最例,最上层的UI到表现层,可以涉及到节流阀,sql like描述的作用,中间层是模型层,负责数据流优化,控制流管理,例如现在最常用的map-reduce模型,最下面是执行层,负责资源分配,优先级,并发控制,隔离,安全等,最终才是我们实实在在的计算资源-机器。这里要说明的是每一层只关心自己的东西,接口明晰,系统扩展和升级够很方便,更有利于构建分布式系[……]
构建高性能网站的评估方法
什么叫做高性能网站?用户,产品经理,研发人员,测试人员,运维人员看的角度各有不同,本文只从研发人员的角度来介绍评估网站性能的3个重要指标以及它们之间的关系。
1、响应延迟(Response Time)
通常是指服务器端接收到请求到处理完毕返回的平均时间。
影响的因素大致可以分为这几个方面:业务代码逻辑耗时、远程通信耗时(访问数据库或者其他RPC调用)、磁盘IO耗时(一次寻道时间4ms左右,多次随机IO会严重影响性能)。
2、并发数
系统能够同时处理的请求数量。
3、吞吐量(Throughput)
系统同时处理的业务数/事务数量,也可以理解为我们常说的QPS、TPS,详[……]
Architecting for high availability
下文是自己看完亚马逊一个关于高可用架构设计的总结帖,其中不乏一些经典实用的设计原则,为以后留存用,全文用英文表达 🙂
This article depicts some simple principles or best practices about how to build a high availability web system. I get it from an experience share on QCon 2013 London by Amazon AWS solution architecture and mixed up of my own understanding[……]
为何要使用redis高版本的一封说服邮件
最近公司内和OP同学针对在生产环境中redis的版本存在分歧,写了一封邮件来说服OP。文中提及了为何要使用redis2.4版本而不是2.2,以及解决他人的concern,先阐述过人的feature,再娓娓道来他人的concern并提出解决方法,最终OP还是compromise了,算是胜仗,这里记录下。
Dear Operation System同学,
PHP语言访问REST API上传图片的解决方案
最近在开发一个基于HTTPS协议的RESTFul API,在为客户写demo的时候遇到一小点问题,由于PHP的使用经验不足,在写PHP语言的客户端时卡壳了一会,主要遇到的问题是:
如何使用PHP语言访问REST API上传图片?
RTB竞价中的cookie mapping技术
首先通过一些关键词解释普及或者回顾一下背景,
如何成长为一名项目经理
什么是项目经理?
项目经理在公司所处的位置
项目经理要承担哪些角色?
Mac OS X常用快捷键
最近接触了mac os,对于其华丽的界面,便捷的操控非常喜欢,多任务手势使用极其便捷,实属工程师工作之舒心必备良品,但是不用鼠标的后果就是多了很多的touchpad单击操作,随自己搜寻了一些常用的快捷键,快捷键不在多,而在于自己使用的得心应手,提高工作效率为目标,总结一些常用的操作,下面的操作均是基于Mac OS X Mountain Lion下的。
chrome快捷键
利用phantomjs将HTML源代码转换成图片
通常我们的需求是将网页渲染成图片保存,那么也会有这样的情况,将HTML源代码转换成图片,下面的代码将满足需求:
var page = require("webpage").create(); page.viewportSize = { width: 200, height : 200 }; page.content = "This Text will be converted to Image"; page.setContent(page.content,page); window.setTimeout(function ()[......]<p class="read-more"><a href="http://neoremind.com/2013/02/%e5%88%a9%e7%94%a8phantomjs%e5%b0%86html%e6%ba%90%e4%bb%a3%e7%a0%81%e8%bd%ac%e6%8d%a2%e6%88%90%e5%9b%be%e7%89%87/">继续阅读</a></p> |