
程序架构
loophome
这个作者很懒,什么都没留下…
展开
-
基于帐号的CRC32分表方案
基于帐号的CRC32分表方案原创 2015-03-11 20:35:29 · 2429 阅读 · 0 评论 -
系统设计-商品实时数据分页去重问题
在电商中商品的数据展示排序会动态变化,尤其是做瀑布流展示的时候,可能会导致同一件商品出现在某页的尾部,以及下一页的头部。这样导致用户体验很差。这类问题的解决方案:1)服务端解决方案:缓存某一个时间点的数据,定时更新缓存。这样能够解决分页去重问题,但是难以实现千人千面,缓存失效回源处理仍然会遇到这个问题。如果数据有限的话,可以客户端一次请求整个id列表,客户端再通过id分页去拿数据。...原创 2019-01-21 21:22:14 · 1425 阅读 · 0 评论 -
微信公众平台开发接口返回码说明
微信公众平台开发接口返回码说明更新时间:2017-09-06转载 2017-09-06 10:55:46 · 20712 阅读 · 1 评论 -
分表时如何获取用户的唯一ID
分表时如何获取用户的唯一ID一般地,用户数据量大的时候,我们会使用分表存储。比如一个平台有1亿用户,将这一亿个用户同时保存在一个表中,是不合适的。采用按帐号分表的方案,有一个问题,就是如何计算用户的唯一ID,如何按帐号来分表,可以参考(基于帐号的CRC32分表方案)。方法一:利用一个数据库表的自增主键来获取用户的唯一UID,这种方法比较简单,而且比较保险。唯一担心的是并发量大会导致锁表原创 2015-03-11 20:38:48 · 2409 阅读 · 0 评论 -
Reactor模式
1.Reactor的事件处理机制首先来回顾一下普通函数的调用机制:程序调用某函数->函数执行,程序等待->函数将结果和控制权返回给程序->程序继续处理。Reactor是事件驱动机制,和普通函数调用的不同之处在于:应用程序不是主动调用某个API完成处理,Reactor逆置了事件处理流程,应用程序需要提供相应的接口并注册到Reactor上。如果相应的事件发生,Reactor将主动调用应用程序注原创 2016-01-19 20:16:45 · 592 阅读 · 0 评论 -
linux下使用gdb调试程序
gdb是强大的UNIX下的程序调试工具,提供4个主要的功能:1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)3、当程序被停住时,可以检查此时你的程序中所发生的事。4、你可以改变你的程序,将一个BUG产生的影响修正从而测试其他BUG。步骤一:启动程序file命令:指定执行的程序se原创 2015-12-09 10:36:42 · 860 阅读 · 0 评论 -
WEB服务架构
此处我说的HTTP服务主要指如访问京东网站时我们看到的热门搜索、用户登录、实时价格、实时库存、服务支持、广告语等这种非Web页面,而是在Web页面中异步加载的相关数据。这些服务有个特点即访问量巨大、逻辑比较单一;但是如实时库存逻辑其实是非常复杂的。在京东这些服务每天有几亿十几亿的访问量,比如实时库存服务曾经在没有任何IP限流、DDos防御的情况被刷到600多万/分钟的访问量,而且能轻松应对。支撑如转载 2015-09-08 11:16:17 · 1044 阅读 · 0 评论 -
构建需求响应式亿级商品详情页
该文章是根据velocity 2015技术大会的演讲《京东网站单品页618实战》细化而来,希望对大家有用。 商品详情页是什么商品详情页是展示商品详细信息的一个页面,承载在网站的大部分流量和订单的入口。京东商城目前有通用版、全球购、闪购、易车、惠买车、服装、拼购、今日抄底等许多套模板。各套模板的元数据是一样的,只是展示方式不一样。目前商品详情页个性化需求非常多,数据来源也是非常多的,而且转载 2015-09-06 20:09:49 · 977 阅读 · 0 评论 -
磁盘阵列RAID理解
磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。[1] 磁盘阵列还能利用同位检查(Parity Check)的观念,在转载 2015-08-21 09:52:46 · 1263 阅读 · 0 评论 -
Reactor构架模式
2.1 Reactor构架模式对每一个构架模式的分析,我们都使用参考文献的分析风格,着重分析意图、上下文、问题、解决方案、结构和实现 6个方面的内容。而实现就是ACE源代码。1. 意图在事件驱动的应用中,将一个或多个客户的服务请求分离(demultiplex)和调度(dispatch)给应用程序。2. 上下文在事件驱动的应用中,同步地、有序地处理同时接收的转载 2015-07-27 20:37:27 · 620 阅读 · 0 评论 -
Apache配置vhost支持多站点
每个开发人员,极有可能是同时进行多个项目开发,即使是开发一个项目,也会遇到多个模块站点的配置问题。在apache下使用vhost是非常好的一个解决方案,不但解决了web目录切换的问题,同时也能保证cookies正常生效。vhost的配置非常简单,按以下3个步骤即可:1.开启apache的vhost模块在http.conf配置文件中,找到这一行,去掉前面的#号#LoadModule vh原创 2015-05-04 11:01:48 · 8265 阅读 · 0 评论 -
php与web服务器关系
在解析这个问题前,先要讲述一个概念,什么是cgi程序?1.什么是cgi程序,cgi与fastcgi的区别 CGI的中文名称是通用网关接口,是外部应用程序与web服务器之间的接口标准。CGI规范允许web服务器执行外部程序,并将它们的输出发送给web浏览器。而fastcgi则是一个常驻型的cgi,它可以一直执行着,不需求每次请求都必须fork进程来处理,此外,它还支持分布式运算,原创 2015-04-07 18:33:00 · 2824 阅读 · 0 评论 -
ab测试工具结果分析
以下,是一个ab测试返回的结果,作一个分析说明This is ApacheBench, Version 2.0.40-dev apache-2.0Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/Copyright 2006 The Apache Software Foundation,原创 2015-03-13 17:08:36 · 994 阅读 · 0 评论 -
动态页面SEO优化
SEO优化,一直以来似乎是前端的事情,但是,其实后端对SEO也有一定影响,具体点如下1.页面的打开速度 打开速度要对静态网页打开速度慢,尤其当程序设计没有考虑速度问题时,这种差异将会相当明显,造成网站打开速度过慢。SEO优化中,网页打开速度是一个非常重要的元素,打开速度慢,大量用户在页面显示完整前关闭面,容易造成跳出率过高,搜索引擎将从页面质量角度扣分。2.避免大量重复的页面原创 2015-04-02 12:25:41 · 1862 阅读 · 0 评论 -
架构:缓存击穿问题解决方案
缓存击穿问题原理先看一下这个伪代码逻辑data = redis.getData()if (data != null) { return data;}data = db.getData();redis.set(data);return data;这段代码看起来没什么问题,当从缓存中取不到数据时,穿透到db获取数据,并将数据写入缓存。逻辑是没有问题的,但是在高并发下会有...原创 2019-03-26 10:51:47 · 908 阅读 · 0 评论