随笔分类 - 技术方案
软件模式,系统架构
摘要:作者:marinewu,腾讯PCG 应用架构平台部 开发效率中心Tech Lead 导语:设计文档是软件工程设计中的重要组成部分。本文根据 Google 及其它公司编写设计文档的经验,并结合实际应用加以完善,系统地介绍设计文档的目的、结构及参考模板,希望推动设计文档在团队中落地,传承并沉淀经验,构建
阅读全文
摘要:先抛出几个问题 (1)什么时候才需要分库分表呢?我们的评判标准是什么? (2)一张表存储了多少数据的时候,才需要考虑分库分表? (3)数据增长速度很快,每天产生多少数据,才需要考虑做分库分表? 为什么要分库分表? 答案很简单:数据库出现性能瓶颈 数据库出现性能瓶颈,对外表现有几个方面: 1. 大量请
阅读全文
摘要:前言 在读写分离的情况下,缓存和数据库数据不一致怎么解决? 请看这一篇如何更新缓存保证缓存和数据库双写一致性? 如何解决DB数据库的数据不一致问题? 请看这一篇怎么解决DB读写分离,导致数据不一致问题? 在缓存和数据库数据一致性问题中,推荐 先更新数据库,再删除缓存。如果缓存删除失败可以用MQ消息队
阅读全文
摘要:前言 在项目中缓存是经常用到的,为了减少和数据库的交互,小伙伴们利用缓存的思路如下: 我们小伙伴们有没有考虑到缓存更新的问题,小伙伴们肯定会说肯定用过啊,有数据更新时,把缓存清空掉就行了啊,下一次访问的时候服务就会把新值设置到缓存中了。这样不就行了吗?对的,在一般项目中,这样的使用就够了。那么大家看
阅读全文
摘要:前言 在互联网中大型项目中,读写分离应该是我们小伙伴经常听说的,这个主要解决大流量请求时,提高系统的吞吐量。因为绝大部分互联网产品都是读多写少,大部分都是读请求,很小部分是写请求。 上图: 1)一个主库负责写请求,更新数据 2)两个从库负责读请求,可以提高系统吞吐量 3)主库和从库之间同步数据 为什
阅读全文
摘要:一、前言 我们小伙伴应该都听说够消息中间件MQ,如:RabbitMQ,RocketMQ,Kafka等。引入中间件的好处可以起到抗高并发,削峰,业务解耦的作用。 1)订单服务投递消息给MQ中间件 2)物流服务监听MQ中间件消息,从而进行消费 我们这篇文章讨论一下,如何保障订单服务把消息成功投递给MQ中
阅读全文
摘要:来源 | HelloCoder,作者 | HaC 前一阵子腾讯云搞活动,我买了个轻量级的服务器,部署了自己的网站。 一切都井然有条地进行中。 直到某天清晨,我一如既往地打开我的网站,发现网站竟然打不开了。 于是我进行了一系列的排查。 1、排查日志 第一时间想到的就是登录服务器,查看异常登录的日志。
阅读全文
摘要:在设计函数时,要考虑很多因素。 1. 让每个函数只做一件事情并把这件事情做好。软件不可避免地要修改,通过结合使用大量简短的函数,可让软件更容易修改。这还有助于测试各个函数以及整个软件。 2. 维护。在团队合作开发中,你编写的函数易于阅读和理解吗?如果不是这样的,就说明它过于复杂或必须添加注释。别忘了
阅读全文
摘要:JSON Web Token 入门教程 作者: 阮一峰 日期: 2018年7月23日 JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案,本文介绍它的原理和用法。 一、跨域认证的问题 互联网服务离不开用户认证。一般流程是下面这样。 1、用户向服务器发送用户名和密码。 2、服务
阅读全文
摘要:1.命名规范 变量名 驼峰式,动词开头,首单词首字母小写,后面的单词首字母大写。尽量见词达意。 private级_前缀。 常量名 全部大写 函数名(不包含action) public级驼峰式,动词开头,首单词首字母小写,后面的单词首字母大写。 private级驼峰式,_前缀,动词开头,首单词首字母小
阅读全文
摘要:在讨论 session 跨域共享问题之前,我们首先要了解 session 做了什么,没做什么 1.HTTP是无状态的,也就是说服务器不知道谁访问过他,但是有时间,又需要我们去保留这个状态比如说用户的登录信息,如果每次访问都要登录,这个用户体验实在是太糟糕了,session 就解决了这个问题,他把用户
阅读全文
摘要:1、介绍 从计算机诞生开始,就伴随着计算机应用程序的演变。简短的回顾历史,我们可以清楚的看到应用程序发生的巨大变化。上世纪70年代中期,随着个人PC机的爆炸式增长以及程序员的崛起,让计算机的计算能力得到了大跨越的提升,个人PC机上可以运行非常复杂的应用程序。 进入上世纪80年代,随着Bulletin
阅读全文
摘要:前言 在设计多租户SaaS应用程序时,您必须仔细选择最适合您应用程序需求的租户模型。租户模型确定每个租户的数据如何映射到存储。您选择的租户模式会影响应用程序设计和管理。以后切换到另一个模型有时代价昂贵。 关于可选择的租户模型的讨论如下。 A,怎么选择一个合适的租户模型 一般来说,租赁模式不会影响应用
阅读全文
摘要:1.1 多租户是什么 多租户技术(Multi-TenancyTechnology)又称多重租赁技术:是一种软件架构技术,是实现如何在多用户环境下 (此处的多用户一般是面向企业用户)共用相同的系统或程序组件,并且可确保各用户间数据的隔离性。简单讲: 在一台服务器上运行单个应用实例,它为多个租户(客户)
阅读全文
摘要:前言 HTTP协议是一种无状态的协议,这意味着用户提供账号和密码进行登录认证后,下次再请求的时候,仍然需要认证,因为服务器并不知道是谁发送的请求,并不知道该用户已经认证过一次。 所以为了解决这一问题,保持客户端与服务端的会话状态,在服务器的缓存中需要为每位用户分配一份存储空间,用于存储用户的个人登录
阅读全文
摘要:什么是接口 百度:接口泛指实体把自己提供给外界的一种抽象化物,用以由内部操作分离出外部沟通方法,使其能被内部修改而不影响外界其他实体与其交互的方式。 牛津字典:Interface: A point where two systems, subjects, organizations, etc. me
阅读全文
摘要:一、约定 1、如无特殊需求,所有表使用innodb引擎 2、如无特殊需求,所有主键均为自增类型 3、如无特殊需求,所有字段均为NOT NULL,并给定默认值 4、所有字段均设置备注,枚举字段需要说明每个枚举值的意义 5、在能满足取值范围的情况下,选择占用存储空间最小的数据类型。如布尔值使用tinyi
阅读全文