架构设计
文章平均质量分 66
马万明
一生的努力奋斗
一生的幸福充实
展开
-
系统复杂设计实现
系统复杂设计实现1 什么是系统和系统架构1.1 系统1.2 系统架构2 如何进行系统思维2.1 确定系统的形式和功能2.2 确定系统中各个实体以及他们的形式和功能2.2.1 初步分类:不同种类的系统确定实体难易度不同2.2.2 整体论:从功能出发思考系统内外涉及的重要实体2.2.3 聚焦:针对问题,状况,难题,系统利益相关者,涌现物分析重要实...原创 2020-04-14 13:56:14 · 882 阅读 · 0 评论 -
小延迟大吞吐:LMAX架构
原文:http://developer.51cto.com/art/201306/398839.htmLMAX是一种新型零售金融交易平台,它能够以很低的延迟(latency)产生大量交易(吞吐量). 这个系统是建立在JVM平台上,核心是一个业务逻辑处理器,它能够在一个线程里每秒处理6百万订单. 业务逻辑处理器完全是运行在内存中(in-memory),使用事件源驱动方式(event so转载 2016-07-08 14:17:40 · 660 阅读 · 0 评论 -
Tomcat系统架构分析
Tomcat的结构很复杂,但是Tomcat也非常的模块化,找到了Tomcat最核心的模块,就抓住了Tomcat的 “ 七寸 ” 。整体结构Tomcat 总体结构图从上图中可以看出Tomcat的心脏是两个组件:Connector 和 Container,关于这两个组件将在后面详细介绍。Connector 组件是可以被替换,这样可以提供给服务器设计者更多的选择,因为这个转载 2016-08-16 17:03:49 · 578 阅读 · 0 评论 -
分片(Sharding)的全局ID生成
转自http://blog.csdn.net/hengyunabc/article/details/19025973前言数据在分片时,典型的是分库分表,就有一个全局ID生成的问题。单纯的生成全局ID并不是什么难题,但是生成的ID通常要满足分片的一些要求:不能有单点故障。以时间为序,或者ID里包含时间。这样一是可以少一个索引,二是冷热数据容易分离。可以控制Shar转载 2016-08-29 15:59:31 · 1217 阅读 · 0 评论 -
利用redis + lua解决抢红包高并发的问题
转自 http://blog.csdn.net/hengyunabc/article/details/19433779/抢红包的需求分析抢红包的场景有点像秒杀,但是要比秒杀简单点。因为秒杀通常要和库存相关。而抢红包则可以允许有些红包没有被抢到,因为发红包的人不会有损失,没抢完的钱再退回给发红包的人即可。另外像小米这样的抢购也要比淘宝的要简单,也是因为像小米这样是一个公司的,如果转载 2016-08-29 16:06:41 · 1193 阅读 · 1 评论 -
利用redis缓存热门数据,分页的一种思路
普通分页一般分页做缓存都是直接查找出来,按页放到缓存里,但是这种缓存方式有很多缺点。如缓存不能及时更新,一旦数据有变化,所有的之前的分页缓存都失效了。比如像微博这样的场景,微博下面现在有一个顶次数的排序。这个用传统的分页方式很难应对。一种思路最近想到了另一种思路。数据以ID为key缓存到Redis里;把数据ID和排序打分存到Redis的skip转载 2016-08-29 16:14:26 · 2757 阅读 · 0 评论 -
Redis 与 Lua 脚本
Lua 简介Lua 以可嵌入,轻量,高效,提升静态语言的灵活性,有了 Lua,方便对程序进行改动或拓展,减少编译的次数,在游戏开发中特别常见。举一个在 C 语言中调用 Lua 脚本的例子://这是 Lua 所需的三个头文件//当然,你需要链接到正确的 libextern "C"{ #include "lua.h" #include "lauxlib.h"转载 2016-08-29 16:23:28 · 4788 阅读 · 0 评论 -
初识Flume
一、flume简介Flume是Cloudera提供的日志收集系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种storage。Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。上图的Flume的Architecture,在Flume中,最重要的抽象是data flow(数据流),data转载 2016-09-01 08:50:47 · 480 阅读 · 0 评论