位置:珠海达内IT教育培训学校 > 学校动态 > Java业务架构设计之路
一、业务为什么难做
IM系统,例如QQ或者微博,每个人都读自己的数据(好友列表、群列表、个人信息)。
微博系统,每个人读你关注的人的数据,一个人读多个人的数据。
系统,库存只有一份,所有人会在集中的时间读和写这些数据,多个人读一个数据。
例如小米手机每周二的,可能手机只有1万部,但瞬时进入的流量可能是几百几千万。又例如12306抢票,票是有限的,库存一份,瞬时流量非常多,都读相同的库存。
读写冲突,锁非常严重,这是业务难的地方。那我们怎么优化业务的架构呢?
二、优化方向
优化方向有两个:
将请求尽量拦截在系统上游(不要让锁冲突落到数据库上去)。
传统系统之所以挂,请求都压倒了后端数据层,数据读写锁冲突严重,并发高响应慢,几乎所有请求都超时,流量虽大,下单成功的有效流量甚小。
以12306为例,一趟火车其实只有2000张票,200w个人来买,基本没有人能买成功,请求有效率为0。
充分利用缓存,买票,这是一个典型的读多写少的应用场景,大部分请求是车次查询,票查询,下单和支付才是写请求。
一趟火车其实只有2000张票,200w个人来买,多2000个人下单成功,其他人都是查询库存,写比例只有0.1%,读比例占99.9%,非常适合使用缓存来优化。
好,后续讲讲怎么个“将请求尽量拦截在系统上游”法,以及怎么个“缓存”法,讲讲细节。
三、常见架构
常见的站点架构基本是这样的(特别是流量上亿的站点架构):
浏览器端,上层,会执行到一些JS代码
站点层,这一层会访问后端数据,拼HTML页面返回给浏览器
服务层,向上游屏蔽底层数据细节,提供数据访问
数据层,终的库存是存在这里的,MySQL是一个典型(当然还有会缓存)
这个图虽然简单,但能形象的说明大流量高并发的业务架构,大家要记得这一张图。
后面细细解析各个层级怎么优化。
尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/1780/news/120531/违者必究! 以上就是珠海达内IT教育培训学校 小编为您整理 Java业务架构设计之路的全部内容。