随笔分类 - 架构
摘要:项目背景 和各位读者大致介绍下具体场景,线上的小程序中开放一些语音麦克风的房间,让用户进入房间之后可以互相通过语音聊天的方式进行互动。 这里分享一下相关的技术设计方案。这款系统的核心点设计在于如何能让一个用户发出的语音通知到其他用户上边。语音数据在客户端同事的处理下最终变成了io数据流请求到了后端,
阅读全文
摘要:Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务,其因丰富的功能集、稳定性、示例配置文件和低系统资源的消耗受到了开发者的欢迎。 侦听端口 server { # Standard HTTP Protocol listen 80; # S
阅读全文
摘要:一致性就是数据保持一致,在分布式系统中,可以理解为多个节点中数据的值是一致的。 强一致性:这种一致性级别是最符合用户直觉的,它要求系统写入什么,读出来的也会是什么,用户体验好,但实现起来往往对系统的性能影响大 弱一致性:这种一致性级别约束了系统在写入成功后,不承诺立即可以读到写入的值,也不承诺多久之
阅读全文
摘要:用户权限管理一般是对用户页面、按钮的访问权限管理。Shiro框架是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理,对于Shiro的介绍这里就不多说。本篇博客主要是了解Shiro的基础使用方法,在权限管理系统中集成Shiro实现登录、url和页面按钮的访问控制。 一、引入依赖 使
阅读全文
摘要:术语描述 用户(Subject):发起操作的主体 对象(Object):指操作所针对的客体对象,比如文章或评论 权限(Permission):用来指代对某种对象的某一种操作,例如“添加文章的操作” 权限码:权限的代号,例如用“ARTICLE_ADD”来指代“添加文章的操作”权限 权限有时候也可以称为
阅读全文
摘要:前言 秒杀大家都不陌生。自2011年首次出现以来,无论是双十一购物还是 12306 抢票,秒杀场景已随处可见。简单来说,秒杀就是在同一时刻大量请求争抢购买同一商品并完成交易的过程。 从架构视角来看,秒杀系统本质是一个高性能、高一致、高可用的三高系统。而打造并维护一个超大流量的秒杀系统需要进行哪些关注
阅读全文
摘要:1、引言 扫码登录这个功能,最早应该是微信的PC端开始搞,虽然有点反人类的功能(不扫码也没别的方式登录),但不得不说还是很酷的。 下面这张图,不管是IM开发者还是普通用户,应该很熟悉: 2、基本技术原理 2.1 扫码登录功能到底是什么样的? 首先介绍下什么是扫码登录。现在大部分同学手机上都装有微信、
阅读全文
摘要:一个系统,如果没有安全控制,是十分危险的,一般安全控制包括身份认证和权限管理。用户访问时,首先需要查看此用户是否是合法用户,然后检查此用户可以对那些资源进行何种操作,最终做到安全访问。 身份认证的方式有很多种,最简单的就是直接用户名密码,还有业内比较通用的方式CAS方式登陆等;授权的框架也很多,比如
阅读全文
摘要:秒杀业务分析 正常电子商务流程 查询商品; 创建订单; 扣减库存; 更新订单; 付款; 卖家发货; 秒杀业务的特性 低廉价格; 大幅推广; 瞬时售空; 一般是定时上架; 时间短、瞬时并发量高; 秒杀技术挑战 假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请求数是10000
阅读全文