网站服务化
来源:互联网 发布:赵构 知乎 编辑:程序博客网 时间:2024/04/28 15:54
之前的《后台服务优化原则》中提到后台service的一些拆分原则,也就是单个服务内对外接口拆分的一些原则。其实,在服务部署时,也会有一些不同的部署策略,来实现另一种意义上的拆分。最重要的作用在于「防火隔离」。按请求来源渠道拆分不同的请求来源,请求量必然不太一致。不同来源的请求被分发到各自的一组机器上,起到相互隔离的作用,服务出现问题时,只影响特定来源请求;某个来源渠道请求量上涨或者有问题时,所影响的范围也被限制。按不同地区来拆分思路同按请求来源渠道拆分。按不同号段来拆分微信的部署是按每千万的用户划分到一个set来承载。每个set是一套完整的服务(包括接入服务、逻辑服务、存储等),大概2、3百台机器(2012年的数据),不仅利于「防火隔离」,更利于扩容。按不同运营商来拆分按照不同的运营商来拆分部署时,不仅起到「防火隔离」的作用,也减少由于跨网络请求导致速度慢的情况,在天朝,都知道各运营商互联互通始终是个很现实的问题。http://www.adrop.me/archives/service-deployment-principles/目前在做一个Android应用分发的业务,涉及N多部门之间的利益纠葛和势力分配。后台服务在刚开始迭代非常快,很多业务逻辑集中在某个后台service中。每个后台服务都是一个c++进程,提供rpc接口给调用方。所有请求都会通过网络接收后,在队列中被分发到多个业务处理线程中被统一处理,业务线程通常设置为8或16(cpu核数*1~2)。业务线程会统一处理每个接口的请求,而每个接口实现的复杂度、处理时间、调用量都会不同,并且在接口中如果需要调用其他rpc服务还会涉及网络调用会阻塞线程处理(如果不阻塞向后端的调用需要异步处理),这样每个请求在线程中被处理的时间都不尽相同,为了使线程处理更有高效,考虑如下拆分原则:一、轻重分离所谓轻重是指服务所提供对外rpc接口的实现逻辑轻重,分别把业务逻辑比较重的接口和比较轻的接口,拆分开来,逻辑轻的多数接口组成一个服务,逻辑重的少数接口组成一个服务。二、快慢分离服务的接口耗时有快有慢,可以把耗时大的接口单独拆分到新服务中,异步实现避免阻塞,不影响其他耗时非常短的接口。三、多少分离每个接口的调用量不同,可以把被调用次数比较少或者比较多的接口单独拆分,放在新服务中。四、读写分离读写分离其实以上几种拆分方式的综合,一般情况下,读写操作的耗时、调用量都会有不少差别,可以把读的接口和写的接口,拆分到不同的服务,让单个服务的处理更顺畅。分久必合,合久必分。后台服务随着业务发展,根据需要势必会不停合并或拆分,可能是因为处理瓶颈,可能是优化内部实现,可能是使调用方更合理。拆分时需要按照上述原则来拆分,反之,有些接口需要合并时以上原则同样适用。
0 0
- 网站服务化
- 大型网站构建:二、服务化框架
- web2.0服务网站
- 网站设计服务流程
- 网站安全检测服务
- 网站设计服务
- 网站开发服务
- 网站推广服务
- 网站建设服务流程
- 创建网站服务-2
- CDN网站加速服务
- Nginx网站服务
- 转帖:网站服务架构
- 网站搜索服务解决方案
- 360网站服务监控
- 网站服务,流量监控
- web网站服务---apache
- web网站服务--Nginx
- 解决无法删除表,提示被外键约束引用
- 常用排序算法--快速排序
- error C1083 :无法打开包括文件:“D3DX9.h" No such file or directory
- 8-20 HttpURLConnection Volley android-async-http WebService WebView笔记待整理
- CSS样式基本知识
- 网站服务化
- 7月-月总结
- HDU 3366 Passage (概率DP)
- JAVA(一)常见的dos命令
- 网编基础(1)
- Linux wget命令
- JS 实现简单星星评分功能
- [SCU4436] Easy Math [2015 Sichuan Province Contest Final A]
- js注意事项11