大规模业务服务器开发总结

标签: 业务 服务器 开发 | 发表时间:2015-04-13 10:00 | 作者:
出处:http://2014.54chen.com/

以下内容由 [五四陈科学院]提供

大比小好

开发阶段,服务不稳定,一个大服务不如一堆小服务; 运维阶段,服务都稳定了,一堆小服务又不如一个大服务。

大规模的时候了,如果能够一个进程搞定的,尽量不要拆两个进程。

少比多好

如果都是大服务,自然而然地,服务数量就少。

服务数量少,运维成本就相应低。

快比慢好

一个进程,跑得越快,qps越高,所能使用的资源越多,越能“物尽其用”。

直连比队列好

常见的进程间内网通讯,一般会使用直接的rpc或者是mq来中转。然而,在一般的情况下,引入mq会给服务化带来复杂度,使容量问题更加隐藏。

特例监控比共性监控好

强烈要报警的监控一定要是开发手工加到代码里去的,只要报警,一定是代表了可用性降低,不应该有二义性。共性监控如cpu、硬盘、内存等,只能算是知会性的报警,一般不会影响业务的可用性。

进程外负载均衡比进程内好

负载均衡逻辑放到一个独立进程的好处在于,这部分逻辑不常改动,同时不应该受经常上线的影响,最好是7 24365全天候足够稳健的服务。进程内的问题在于,当业务代码与负载均衡代码改动频率完全不是一个量级时,双方都将在上线,同时任何一方的问题都将相互影响; 更大的一个问题是,推动所有服务一起更新负载均衡策略难度远大于更新一个专门的进程。

有层级的服务比普通SOA好

SOA要求我们把各业务逻辑服务化,没有层级的服务化就是噩梦。主要服务之间一定要有金字塔一样的规则,否则会对各种跨机房、迁移等带来麻烦。

kv存储比RDS好

只用kv,存储层维持状态,扩展、迁移都大大降低难度。使用rds,qps变化时延迟并不是线性变化,kv就能保证这点。维护状态的一层大多在db,以kv这样容易扩展的方式,更加利于未来的迁移和扩张。

无状态比有状态好

服务带上状态,以后迁移、扩容各种毛病,只要有一个理由可以不要状态,就一定要无状态。

闭源比开源好

开源项目都是解决共性需求,规模越大,越是有特性,越不可能开源,闭源可以省很多事。


想快点找到作者也可以到Twitter上留言: @54chen
或者你懒得带梯子上墙,请到新浪微博: @54chen

相关 [业务 服务器 开发] 推荐:

大规模业务服务器开发总结

- - 五四陈科学院
以下内容由 [五四陈科学院]提供. 开发阶段,服务不稳定,一个大服务不如一堆小服务; 运维阶段,服务都稳定了,一堆小服务又不如一个大服务. 大规模的时候了,如果能够一个进程搞定的,尽量不要拆两个进程. 如果都是大服务,自然而然地,服务数量就少. 服务数量少,运维成本就相应低. 一个进程,跑得越快,qps越高,所能使用的资源越多,越能“物尽其用”.

使用epoll 在 linux 上开发高性能应用服务器

- - C++博客-首页原创精华区
epoll是linux提供一种多路复用的技术,类似各个平台都支持的select,只是epoll在内核的实现做了更多地优化,可以支持比select更多的文件描述符,当然也支持 socket这种网络的文件描述符. linux上的大并发的接入服务器,目前的实现方式肯定都通过epoll实现. 有很多开发人员用epoll的时候,会开多个线程来进行数据通信,比如一个线程专门accept(我个人早些年在FreeBSD用kqueue的时候,由于对内部机制没有基本了解也这样搞),一个线程收发,或者接收和发送都用各自独立的线程.

BitTorrent 开发出摆脱服务器的安全通信技术!

- - TECH2IPO创见
自从斯诺登揭露了美国国家安全局的监听项目后,如何使得线上的通信变得更加安全,就变成了当务之急. BitTorrent ,这种点对点的文件分享,多年来依赖于服务器处理,环节尽管易被攻击和侵入,但是就这么磕磕绊绊沿用下来了. 但是,现在基于 BitTorrent 开发出的技术,出现了更加先进的不依赖于服务器的通信方式:BitTorrent Chat.

hmailserver 简单设置当smtp邮件服务器供开发人员使用

- - 博客园_首页
如果你遇到下面情况就会使用:. 如果代码调用哪些免费的126 等之类的smtp服务器发送每天的免费数量不够用,而且不是自己的域名比如你想[email protected]发送,可是126之类的不行,影响企业形象,即使126可以免费提供企业邮箱,可以拥有自己的域名邮箱,但是每天的数量还是不够的. 可以使用hmailserver仅仅搭建smtp服务器,hmailserver免费又稳定.

Likwid-高性能服务器开发不可缺少的工具箱

- - 非业余研究
原创文章,转载请注明: 转载自 非业余研究. Likwid-高性能服务器开发不可缺少的工具箱. 做高性能服务器的时候,知道如何开发高性能代码是一个事情,开发出来的系统是不是高性能那就是另外一个事情了. 通常我们需要了解系统的CPU拓扑结构,内存使用情况,各种CPU性能计数器的数字,各种CPU Cache的使用情况,命中率等等信息,这些信息有效的结合在一起才能准确的分析出我们程序的缺陷,从而找到更好的优化点.

文章: James Ward谈使用HTML5和Java开发客户端/服务器应用

- - InfoQ cn
谈到应用开发,不管是客户端/服务器类应用、传统的Web应用还是移动Web应用,最近的趋势是使用像流式网格布局(Fluid Grid Layout)和响应式网页设计(Responsive Web Design)这样的模式,以及像HTML5、CSS3和JavaScript(客户端和服务器都支持)这样的技术.

Nginx+ffmpeg的HLS开源服务器搭建配置及开发详解

- - 互联网 - ITeye博客
          至目前为止,HLS 是移动平台上非常重要并十分流行的流媒体传输协议. 做移动平台的流媒体开发,不知道它不掌握它 ,真是一大遗憾. 而HLS的平台搭建有一定的难度,本文针对对该方向有一定了解的朋友,将方案实施中的一些细节和流程进行分享交流. 本文介绍了,使用开源服务器nginx 搭建 HLS 服务比较详细的方案.

写给那些傻傻的,想做服务器开发的应届生

- - 唐巧的技术博客
猿题库刚刚结束了北京地区的大规模校园招聘,国庆之后打算转战外地进行校招. 我本人深度参与了此次的校招工作,包括笔试题命题、面试题命题以及具体的面试工作. 我在面试中发现了一个非常有意思的现象,就是大多数应届生都想做服务器端开发,但是他们却又不清楚服务器端开发具体要做些什么. 我和同事聊天的时候说起此事,我们认为可能应届生觉得:做服务器端开发可以让自己写的程序运行在很多台机器上,并且处理海量的数据,这很「牛逼」.

开发者在 Siri 和苹果服务器间建立代理服务器,可以通过它调整家里的空调

- 请叫我火矞弟 - Engadget 中国版
靠着 Applidium 刚发现的 Siri 服务器沟通内容,美国的一名开发者 plamoni(这是他的 twitter 账号,本名不详)成功地在 iPhone 4S 和苹果的 Siri 服务器间建立了一个代理服务器,不仅可以看到 Siri 和苹果母舰间的交流,还可以自由地在中间插入信息和指令. 后面这点让 Siri 的可能性大增,以影片中的示范为例(影片在继续阅读里),plamoni 简单地用 Siri 检查代理服务器的状态,并且还可以通过 Siri 检查自已家的空调系统(支持 WiFI)的设定,并调节温度.

Asp.Net微型服务器,只有一个文件,并且才300K大小|建议从事Asp.Net开发的博友们人手一份

- Bloger - 博客园-首页原创精华区
其实我开发此助手已两年多了,也共享给了一些关系很好的朋友们,大伙儿用了都觉得不错,同时我也感觉到很开心,为了更多朋友们能享受到她给您带来的好处,不敢独享,特意在此共享给园来的博友们. 倘若您觉得她真的对您有用,您不防“推荐”一下,给予“艾伟”一个小小的“推荐”的关怀,也许能给您带来源之不尽的享受与方便快捷...多谢.