分类: Software Architect

6 篇文章

Netty 应用与原理
Java IO 模型 本篇示例代码仓库:learn-netty 基础概念 在 I/O 操作中有这么两组概念,其中同步/异步 要和线程中的同步线程/异步线程要区分开,这里指的是同步IO / 异步IO 阻塞/非阻塞: 没有数据传过来时,读会阻塞直到有数据;缓冲区满时,写操作也会阻塞 非阻塞遇到这些情况,…
Redis 应用与原理(三)
Redis Cluster 解决方案 基础概念 首先,分析一下主从+哨兵模式带来的问题: 在主从 + 哨兵的模式下,仍然只有一个 Master 节点,当并发请求较大时,哨兵模式不能缓解写压力 在 Sentinel 模式下,每个节点需要保存全量数据,无法进行海量数据存储 因此,在 Redis 3.0 …
Redis 应用与原理(二)
持久化原理 持久化流程 Redis 是基于内存的数据库,数据存储在内存中,为了避免进程退出导致数据永久丢失,需要定期对内存中的数据以某种形式从内存呢保存到磁盘当中;当 Redis 重启时,利用持久化文件实现数据恢复。 Redis 的持久化主要有以下流程: 客户端向服务端发送写操作数据 数据库服务端接…
Redis 应用与原理(一)
缓存发展史 缓存经典场景 在没有引入缓存前,为了应对大量流量,一般采用: LVS 代理 Nginx 做负载均衡 搭建 Tomcat 集群 这种方式下,随着访问量的增大,响应力越差,逐渐无法满足用户体验。 在引入缓存后: 三大经典缓存读写策略 旁路缓存模式:Cache Aside Pattern 写:…
ZooKeeper 高级应用
概述 ZooKeeper 是 Apache 软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册,在架构上,通过冗余服务实现高可用性(CP)。 ZooKeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单…
浅谈互联网架构演变
前言 可以将某个项目或产品的架构体系按照如下方式分层: 业务层面:项目业务体系 技术层面: 数据架构:数据持久层策略 应用架构:应用层的实现方式 部署架构:部署方式,自动化持续集成等策略 针对每一层也随着时间的变化而变化。 业务架构 单体模式 早期的互联网产品多为单体系统,特点是以业务为导向,往往形…