大型网站系统架构
sinat_37138973
这个作者很懒,什么都没留下…
展开
-
SOA
基于TCP的RPC对象序列化基于TCP协议的RPC基于HTTP协议的RPCRESTful和RPC服务化的演变负载均衡算法ZooKeeper功能介绍应用场景集群管理ZooKeeper一致性原理广播机制 ZAB协议几个特性ZooKeeper API的使用服务配置中心的节点HTTP服务网关基于TCP的RPCRPC的全称是R...原创 2017-04-30 16:20:24 · 561 阅读 · 0 评论 -
MySQL应对并发的思考
目录一、索引优化二、请求合并请求合并合并的分析方法三、需求裁剪四、分布式数据库及反范式设计基本认识去关联化原则分库方案分表方案反范式设计(冗余结构设计)反范式设计的概念冗余结构设计所面临的典型场景冗余设计方案五、认识负载负载的构成负载增长趋势系统阈值异常的监控和跟踪一、索引优化参见“索引优化”的单独章节。二、请...转载 2018-07-11 14:40:42 · 333 阅读 · 0 评论 -
从0构建新项目工程的总结
目录接口定义 项目结构框架选型数据操作接口定义 ● 前后端分离项目,后端需要定义传输数据格式可以选择的方式有:1、简单一点所有接口全部使用POST传输,这样定义的数据结构既能够统一。2、或者GET/POST使用RESTFUL形式,GET只需要在链接后添加?token=,而POST使用统一数据体格式。{ "responseHead": { ...原创 2018-05-28 15:48:42 · 236 阅读 · 0 评论 -
微服务权限
用户认证OAUth2认证框架JWT(JSON Web Tokens)认证协议协议格式认证流程用户权限抽象与设计服务检验什么是Authentication(认证)和Authorization(鉴权):认证关心你是谁,鉴权关心你能干什么。微服务权限,往小拆分,分为三块:用户认证、用户权限、服务校验。用户认证传统的单体应用可能习惯了sessi...转载 2018-05-03 16:48:00 · 2391 阅读 · 1 评论 -
使用Jenkins完成持续集成
安装JenkinsJenkins集成SVN项目Jenkins构建实现文件上传到远程服务器Publish Over SSH插件的系统配置工程配置Jenkins执行远程Linux系统的shell命令配置SSH remote hosts工程配置jenkins中通过execute shell启动的进程会被杀死的问题jenkins使用nohup无法启动程序或无法输出nohup.o...原创 2018-04-12 17:17:23 · 634 阅读 · 0 评论 -
缓存雪崩和缓存穿透
缓存雪崩解决思路:缓存穿透解决思路:缓存雪崩缓存雪崩可能是因为数据未加载到缓存中,或者缓存同一时间大面积的失效,从而导致所有请求都去查数据库,导致数据库CPU和内存负载过高,甚至宕机。解决思路:1、分析用户行为,尽量让失效时间点均匀分布。避免缓存雪崩的出现。 2、如果是因为某台缓存服务器宕机,可以考虑做主备。 3、在缓存失效后,通过加锁或...转载 2018-03-13 16:13:03 · 221 阅读 · 0 评论 -
三篇文章了解 TiDB 技术内幕 —— 谈调度
为什么要进行调度调度的需求信息收集调度的策略调度的实现总结任何一个复杂的系统,用户感知到的都只是冰山一角,数据库也不例外。前两篇文章介绍了 TiKV、TiDB 的基本概念以及一些核心功能的实现原理,这两个组件一个负责 KV 存储,一个负责 SQL 引擎,都是大家看得见的东西。在这两个组件的后面,还有一个叫做 PD(Placement Driver)的组件,虽...转载 2018-01-24 19:24:16 · 208 阅读 · 0 评论 -
三篇文章了解 TiDB 技术内幕 —— 说计算
关系模型到 Key-Value 模型的映射元信息管理SQL on KV 架构SQL运算分布式 SQL 运算SQL 层架构小结上一篇介绍了 TiDB 如何存储数据,也就是 TiKV 的一些基本概念。本篇将介绍 TiDB 如何利用底层的 KV 存储,将关系模型映射为 Key-Value 模型,以及如何进行 SQL 计算。关系模型到 Key-Value 模型的映...转载 2018-01-24 18:52:30 · 575 阅读 · 0 评论 -
三篇文章了解 TiDB 技术内幕——说存储
引言:保存数据Key-ValueRocksDBRaftRegionMVCC事务其他引言:数据库、操作系统和编译器并称为三大系统,可以说是整个计算机软件的基石。其中数据库更靠近应用层,是很多业务的支撑。这一领域经过了几十年的发展,不断的有新的进展。 很多人用过数据库,但是很少有人实现过一个数据库,特别是实现一个分布式数据库。了解数据库的实现原理...转载 2018-01-24 16:55:36 · 409 阅读 · 0 评论 -
(二)大型网站架构模式-网站的高性能架构(1)
2.1 网站架构模式2.2 网站的高性能架构2.2.1应用服务器优化2.2.1.1应用服务器集群HTTP重定向负载均衡:SEO作弊:DNS域名解析负载均衡:反向代理负载均衡:IP负载均衡(NAT):数据链路层负载均衡(直接路由DR(Direct Route))2.1 网站架构模式以实现网站高性能、高可用、易伸缩、可扩展、安全等各种技术架构目标。大...原创 2017-12-28 14:54:13 · 379 阅读 · 0 评论 -
(一)大型网站架构演化
成熟的系统架构是随着业务扩展而完善出来的,并非一蹴而就。不同业务特征的系统,会有各自的侧重。例如有的要解决海量的商品信息的搜索、下单,支付等,有的要解决海量用户的实时消息传输,有的要处理海量的搜索请求,他们都有各自的业务特性,系统架构也有所不同。大型网站访问量和数据量二者缺一不可。大型网站,其实最核心的功能就是计算和存储。一般DB是用来存储的,Application Server完成了业务功能和逻辑转载 2017-02-20 14:38:06 · 372 阅读 · 1 评论 -
日志分析
Log4j Logback Slf4j简单讲就是Slf4j是一系列的日志接口,而Log4j 、Logback是具体实现了的日志框架。官方文档的描述了三者的关系:Slf4j译为简单日志门面,是日志框架的抽象;而Log4j和Logback是众多日志框架中的几种。在具体开发中,需要绑定一个日志框架,才能正常的使用Slf4j。有些类似于JPA和Hibernate、Mybatis的关系。而Log4j和Logb转载 2017-11-10 16:08:48 · 162 阅读 · 0 评论 -
分布式事务
分布式系统简介集中式系统分布式系统分布式系统的特点常用分布式方案1. 事务1.1 ACID原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability)1.2异常处理2.分布式事务2.1幂等性2.1.1 防范POST重复提交2.1.2 使用唯一id解决重复交易的幂等性问题(类似redis...转载 2017-06-28 17:01:25 · 1117 阅读 · 0 评论 -
Redis用作Session服务器
RedisRedis与其他key-value存储有什么不同?Redis vs Memcached1.网络IO模型2.内存管理方面3.数据一致性问题4.存储方式及其它方面5.关于不同语言的客户端支持Session简介Redis的Session服务器实现基本原理RedisREmote DIctionary Server(Redis) 是一个由Sa...转载 2017-06-29 12:23:51 · 3722 阅读 · 0 评论 -
幂等、分布式锁
一、幂等性1.1 防范POST重复提交1.2 接口api的幂等性支持1.3 幂等的技术方案1.3.1 唯一索引,防止新增脏数据1.3.2 token机制,防止页面重复提交1.3.3 使用唯一id解决重复提交问题(类似redis的删除token判断)1.3.4 悲观锁1.3.5 乐观锁1.3.6 分布式锁二、分布式锁2.1 Redis的SETNX通过setnx和g...转载 2017-06-28 17:06:57 · 4714 阅读 · 0 评论 -
Java秒杀高并发总结
目录1.CDN静态页面加速2.redis做后端缓存3,执行秒杀:4.瓶颈分析:5.优化分析:6.优化总结秒杀系统优化性能的思路:写入内存而不是写入硬盘,异步处理而不是同步处理、分布式处理。1.CDN静态页面加速2.redis做后端缓存redis优化地址暴露接口引入自定义序列化工具(protostuff)序列化java对象到redis。3,执行秒杀...原创 2018-12-17 16:34:19 · 613 阅读 · 0 评论