分类: Software Architect

9 篇文章

团队管理
赢 使命和价值观 一个优秀的互联网公司: 一定要有很明确的「使命」「愿景」和「价值观」 才能支撑公司长期取得「赢」的结果。 使命和价值观的本质是为了实现: 思想统一 目标统一 行动统一 让价值观在实践中运行,建立完善的奖罚机制: 鼓励践行价值观的行为 处罚违反价值观的行为 公司和团队里的每个角色、项…
双 Token 三验证解决方案
问题分析 以往的项目大部分解决方案为单 token: 用户登录后,服务端颁发 jwt 令牌作为 token 返回 每次请求,前端携带 token 访问,服务端解析 token 进行校验和鉴权 存在的问题: 有效期设置问题:有效期设置需要对时间做平衡,不能太短也不能太长 续期问题:一旦过期,用户必须重…
P0 级重大资损事故复盘
事故概述 事故背景 由于项目组某核心研发成员与项目组内其他成员发生不可调解的矛盾,导致事发当天该成员被裁,出于报复心理,该核心研发成员对正处于线上内测的项目进行了一系列损毁行为,包括: 删除线上数据库、当日数据库备份文件及相关日志文件 删除 apifox 的项目接口及相关文档,导致接口文档不可用 上…
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 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单…
浅谈互联网架构演变
前言 可以将某个项目或产品的架构体系按照如下方式分层: 业务层面:项目业务体系 技术层面: 数据架构:数据持久层策略 应用架构:应用层的实现方式 部署架构:部署方式,自动化持续集成等策略 针对每一层也随着时间的变化而变化。 业务架构 单体模式 早期的互联网产品多为单体系统,特点是以业务为导向,往往形…