
架构方案
大神,快来碗里
专注于Java相关技术
展开
-
分布式技术(7) 京东购物车的 Java 架构实现及原理
今天来开始写一下关于购物车的东西, 这里首先抛出四个问题:1)用户没登陆用户名和密码,添加商品, 关闭浏览器再打开后 不登录用户名和密码 问:购物车商品还在吗?2)用户登陆了用户名密码,添加商品,关闭浏览器再打开后 不登录用户名和密码 问:购物车商品还在吗?3)用户登陆了用户名密码,添加商品, 关闭浏览器,然后再打开,登陆用户名和密码 问:购物车商品还在吗?4)用户登陆了用户名密码,添加...原创 2019-05-01 17:06:49 · 16117 阅读 · 0 评论 -
架构方案(16) 常见分布式文件存储介绍、选型比较、以及架构设计
数据正成为世界上最有价值的资源,分布式文件存储是应对数据爆炸的最好解决方案,那就会涉及到分布式文件存储方案、选型、架构设计等。分布式文件存储的来源在这个数据爆炸的时代,产生的数据量不断地在攀升,从GB,TB,PB,ZB.挖掘其中数据的价值也是企业在不断地追求的终极目标。但是要想对海量的数据进行挖掘,首先要考虑的就是海量数据的存储问题,比如Tb量级的数据。谈到数据的存储,则不得不说的是磁盘...原创 2019-05-02 17:47:22 · 12447 阅读 · 0 评论 -
架构方案(17) 分布式架构系统拆分原则、缘由、以及实战如何拆分步骤
分布式架构率先开始的就是应用工程拆分,如何拆分,什么情况拆分,拆分的原则是什么,能否实战详解拆分步骤?让我一一娓娓道来。为什么需要应用拆分我以淘宝技术架构演进为例,淘宝从一个大系统工程向分布式架构演变过程,你就能很清楚的知道为什么要需要进行应用拆分。1 人员的角度。维护一个代名工程Denali的百万级代码怪兽(虽然物理部署是分离的),从发布到上线,从人员的角度,百号人同时在一个工程上...原创 2019-05-02 17:51:21 · 16499 阅读 · 0 评论 -
架构方案(18) 阿里双11秒杀系统如何设计
秒杀是电商业务里的标志性事件,这样的典型高并发场景会遇见什么样的挑战呢,然后又是如何来解决的呢?秒杀活动场景淘宝双11秒杀场景,大量的用户短时间内涌入,瞬间流量巨大(高并发),比如:1000万人同一时间抢购100件商品。秒杀活动是一个特别考验后台数据库、缓存服务的业务,对于数据库、缓存的性能要求特别严格。秒杀背后的技术挑战1、突增的服务器及网络需求通常情况下,双 11 的服务器使用是...原创 2019-05-02 17:55:40 · 10579 阅读 · 1 评论 -
架构方案(20)数据库、JVM、缓存、SQL等性能调优方法和原则
性能优化基本是BAT等一线互联网公司程序员必备的技能,以下为大家完整揭晓性能完整的优化方案和方法:包含web网站调优、数据库、JVM调优、架构调优等方案。第一:Web网站调优1、尽可能减少HTTP请求:图片合并 (css sprites),Js脚本文件合并、css文件合并。2、减少DNS查询3、将css放在页面最上面,将js放在页面最下面4、压缩js和css减少文件体积,去除不必要...原创 2019-05-02 18:02:36 · 10362 阅读 · 0 评论 -
架构方案(21) RPC框架的实现原理,及RPC架构组件详解
谈微服务就不得不谈到RPC随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。单一应用架构当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的 数据访问框架(ORM) 是关键。垂直应用架构当访问量逐渐增大,单...原创 2019-05-02 18:07:14 · 10498 阅读 · 0 评论 -
MQ消息队列(6) 解决秒杀等业务的削峰场景
流量削峰的由来主要是还是来自于互联网的业务场景,例如,马上即将开始的春节火车票抢购,大量的用户需要同一时间去抢购;以及大家熟知的阿里双11秒杀, 短时间上亿的用户涌入,瞬间流量巨大(高并发),比如:200万人准备在凌晨12:00准备抢购一件商品,但是商品的数量缺是有限的100-500件左右。这样真实能购买到该件商品的用户也只有几百人左右, 但是从业务上来说,秒杀活动是希望更多的人来参与,也就是...原创 2019-05-02 17:29:23 · 14418 阅读 · 0 评论 -
架构方案(22)几种负载均衡分类
负载均衡其实就是任务的分发,使得任务能按照你的预想分配到各个计算单元上,它能提高服务对外的性能,避免单点失效场景。这里要注意的一点是虽说叫负载均衡,但是有时候我们的分配算法就是不是均衡的。比如配个nginx,做两台服务器的负载均衡,一台机子比较老是以前的配置比较低,一台是新机子配置高,那我们的分配权重可能就是3-7分,而不是五五开。所以是预想分配。但是业界还是习惯按照负载均衡来表达这个任务分...原创 2019-05-03 21:16:17 · 18003 阅读 · 0 评论 -
架构方案(14) 分布式缓存的应用场景、选型比较、问题和挑战
为什么要使用分布式缓存高并发环境下,例如典型的淘宝双11秒杀,几分钟内上亿的用户涌入淘宝,这个时候如果访问不加拦截,让大量的读写请求涌向数据库,由于磁盘的处理速度与内存显然不在一个量级,服务器马上就要宕机。从减轻数据库的压力和提高系统响应速度两个角度来考虑,都会在数据库之前加一层缓存,访问压力越大的,在缓存之前就开始CDN拦截图片等访问请求。并且由于最早的单台机器的内存资源以及承载能力有限,如...原创 2019-05-02 17:41:15 · 10531 阅读 · 1 评论 -
架构方案(12) 负载均衡的原理、分类、实现架构,以及使用场景
分享大纲:为什么需要负载均衡负载均衡原理负载均衡作用负载均衡实现负载均衡分类负载均衡应用场景为什么需要负载均衡当系统面临大量用户访问,负载过高的时候,通常会使用增加服务器数量来进行横向扩展,使用集群和负载均衡提高整个系统的处理能力。从单机网站到分布式网站,很重要的区别是业务拆分和分布式部署,将应用拆分后,部署到不同的机器上,实现大规模分布式系统。分布式和业务拆分解决了,从集中...原创 2019-05-02 17:36:04 · 10556 阅读 · 0 评论 -
架构方案(5) 漏桶算法&令牌桶算法
背景每一个对外提供的API接口都是需要做流量控制的,不然会导致系统直接崩溃。很简单的例子,和保险丝的原理一样,如果用电符合超载就会烧断保险丝断掉电源以达到保护的作用。API限流的意义也是如此,如果API上的流量请求超过核定的数值我们就得对请求进行引流或者直接拒绝等操作。限流算法既然要限流,就得提到限流算法了,一般有漏桶算法和令牌桶算法两种限流算法。漏桶算法漏桶算法(Leaky Bucke...原创 2019-05-01 17:18:58 · 15916 阅读 · 0 评论 -
架构方案(6) 秒杀系统必须考虑的 3 个技术问题.
1、并发队列的选择Java的并发包提供了三个常用的并发队列实现,分别是:ArrayBlockingQueue、ConcurrentLinkedQueue 和 LinkedBlockingQueue 。ArrayBlockingQueue是初始容量固定的阻塞队列,我们可以用来作为数据库模块成功竞拍的队列,比如有10个商品,那么我们就设定一个10大小的数组队列。ConcurrentLinkedQ...原创 2019-05-01 17:22:35 · 15660 阅读 · 0 评论 -
架构方案(7) 微信、淘宝类扫码登录实现原理解析
有很多小伙伴可能会感到很神奇,网页上只是显示了个二维码,它怎么就知道是哪个手机扫到了二维码,并且进行登录的呢?而且,登录完成以后,还能直接把用户信息显示给用户,真的是很神奇啊。原理解释网页端+服务器接下来就是对于这个服务的详细实现。首先,大概说一下原理:用户打开网站的登录页面的时候,向浏览器的服务器发送获取登录二维码的请求。服务器收到请求后,随机生成一个uuid,将这个id作为key值存入r...原创 2019-05-01 17:26:14 · 16194 阅读 · 0 评论 -
架构方案(8) 微服务架构下静态数据通用缓存机制
在分布式系统中,特别是最近很火的微服务架构下,有没有或者能不能总结出一个业务静态数据的通用缓存处理机制或方案,这篇文章将结合一些实际的研发经验,尝试理清其中存在的关键问题以及探寻通用的解决之道。什么是静态数据这里静态数据是指不经常发生变化或者变化频率比较低的数据,比如车型库、用户基本信息、车辆基本信息等,车型库这种可能每个月会更新一次,用户和车辆基本信息的变化来源于用户注册、修改,这个操作的频...原创 2019-05-01 17:36:09 · 15751 阅读 · 0 评论 -
架构方案(9) 如何构建一套高可用的 APP 消息推送平台
消息推送作为移动 APP 运营中的一项关键技术,已经被越来越广泛的运用。本文追溯了推送技术的发展历史,剖析了其核心原理,并对推送服务的关键技术进行深入剖析,围绕消息推送时产生的服务不稳定性,消息丢失、延迟,接入复杂性,统计缺失等问题,提供了一整套平台级的高可用消息推送解决方案。实践中,借助于该平台,不仅能提能显著提高消息到达率,还能提高研发效率,并道出了移动开发基础设施的平台化架构思路。推送基础...原创 2019-05-01 17:47:05 · 18107 阅读 · 0 评论 -
架构方案(10) 高可用高并发的 9 种技术架构
1、分层分层是企业应用系统中最常见的一种架构模式,将系统在横向维度上切分成几个部分,每个部分负责一部分相对简单并比较单一的职责,然后通过上层对下层的依赖和调度组成一个完整的系统。在网站的分层架构中,常见的为3层,即应用层、服务层、数据层。应用层具体负责业务和视图的展示;服务层为应用层提供服务支持;数据库提供数据存储访问服务,如数据库、缓存、文件、搜索引擎等。分层架构是逻辑上的,在物理部署上,...原创 2019-05-01 17:50:27 · 16411 阅读 · 1 评论 -
深入理解(16)java多线程之线程池工作的原理
我们在工作中或多或少都使用过线程池,但是为什么要使用线程池呢?从他的名字中我们就应该知道,线程池使用了一种池化技术,和很多其他池化技术一样,都是为了更高效的利用资源,例如链接池,内存池等等。数据库链接是一种很昂贵的资源,创建和销毁都需要付出高昂的代价,为了避免频繁的创建数据库链接,所以产生了链接池技术。优先在池子中创建一批数据库链接,有需要访问数据库时,直接到池子中去获取一个可用的链接,使用完了...原创 2019-05-02 08:20:54 · 10790 阅读 · 0 评论 -
分布式技术(8) 摸爬打滚出的高并发架构实战干货
一、关于高并发高并发是指在同一个时间点,有很多用户同时访问URL地址,比如:淘宝的双11、双12,就会产生高并发。又如贴吧的爆吧,就是恶意的高并发请求,也就是DDOS攻击,再屌丝点的说法就像玩LOL被ADC暴击了一样,那伤害你懂的。1 高并发会来带的后果**服务端:**导致站点服务器/DB服务器资源被占满崩溃,数据的存储和更新结果和理想的设计是不一样的,比如:出现重复的数据记录,多次添加了...原创 2019-05-01 17:10:54 · 16274 阅读 · 0 评论 -
架构方案(11) 分布式、集群、负载均衡之间的区别与关联
服务器集群1.集群概念集群就是一组相互独立的计算机,通过高速的网络组成一个计算机系统。服务器集群就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。2.集群的特点和优势1)高性能比如上千台服务器同时计算运行,远大于单机的运行效率(可以参考:google公开有关GFS,bigtable,mapreduce的三篇论文)。2)性价比优势利用通用廉价的服务器代替小...原创 2019-05-02 17:33:27 · 10512 阅读 · 0 评论 -
架构方案(23) 大型项目前端架构浅谈
大型项目前端架构浅谈目录:1、综合1.1、使用场景1.2、核心思想1.3、切入角度1.4、其他2、基础层设计2.1、自建Gitlab2.2、版本管理2.3、自动编译发布Jenkins2.4、纯前端版本发布2.5、统一脚手架2.6、Node中间层2.7、埋点系统2.8、监控和报警系统2.9、安全管理2.10、Eslint2.11、灰度发布2.12、前后端分离...原创 2019-06-10 09:34:57 · 11273 阅读 · 0 评论