web架构
文章平均质量分 83
七年蝉
什么也没有,谁也不会来。。。。
展开
-
分布式锁总结
分布式锁的使用场景:当我们在面对多个进程使用(一般是先读后改)共享内存这种并发场景时,因为读和写是两个操作,不能保证原子性, 所以需要借助外界的“锁”来将这两个操作锁起来保证原子性。如果是单机的话, 可以使用系统或语言层面提供的锁来解决。 但是如果处于分布式环境中呢?多台机器没有共享内存可用, 如果保证?我们抽象一下, 可以把这个问题变成如何在分布式环境下保证同一时刻我在做某事的时候别人不能做,只有等我做完了他才能做。这个时候我们可以参考系统或语言层面锁的设计来设计自己的锁。把锁作为独立于各原创 2021-12-07 09:51:58 · 1552 阅读 · 0 评论 -
消息队列总结
消息队列核心作用:将数据保存到一个中转点,设计实现参考各种快递站点。使用场景 : 异步、削峰、 解耦。核心功能:上传数据、保存数据、获取数据。涉及到的角色 : 生产者、消息队列服务、消费者。主要工作流程:生产者上传数据到消息队列服务,消息队列服务保存数据,消费者获取消息队列服务保存的数据。需要解决的问题 :1、生产者怎么上传数据?涉及到通信协议、消息路由、消息编码、怎么界定成功还是失败(做的不好会丢失消息)?2、消息队列服务怎么保存数据?存到内存还是存到磁盘?存多久?怎么保证原创 2021-12-04 08:45:45 · 1985 阅读 · 0 评论 -
http1.0、http1.1、http2.0、protobuf、grpc
一、http1.0、http1.1、http2.0的区别传输方面http1.0 : 每次请求都需要建立一个新的tcp连接, 所以每次请求都需要经历tcp的三次握手四次挥手。 如果是同一个客户端发起的请求,完全不需要每次建立连接。http1.1: 保持首次建立的那个tcp连接, 知道被通知关闭才关闭连接。这样就解决了http1.0中多次建立连接的问题。 但是http1.1的消息需要一个一个请求、响应, 如果第一个请求在服务端被阻塞了, 那么第二个请求也不会被处理, 直到第一个请求被处理完...原创 2021-09-14 22:21:47 · 1268 阅读 · 0 评论 -
kafka与rabbitMQ
一、kafka架构:1、结构名词解释:1)Producer :消息生产者,就是向kafka broker发消息的客户端;2)Consumer :消息消费者,向kafka broker取消息的客户端;3)Topic :可以理解为一个队列;4) Consumer Group (CG):这是kafka用来实现一个topic消息的广播(发给所有的consumer)和单播(发给任意一个consumer)的手段。一个topic可以有多个CG。topic的消息会复制(不是真的复制,是概念.原创 2021-05-08 21:09:48 · 14036 阅读 · 6 评论 -
常见cpu性能优化方法
平均负载平均负载指 单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数,它和 CPU 使用率并没有直接关系。所谓可运行状态的进程,是指正在使用 CPU 或者正在等待 CPU 的进程,也就是我们常用 ps aux 命令看到的,处于 R 状态(Running 或 Runnable)的进程。不可中断状态的进程则是正处于内核态关键流程中的进程,并且这些流程是不可打断的,比如最常见的是等待硬件设备的 I/O 响应,也就是我们在 ps aux 命令中看到的 D 状态(Uninte原创 2021-04-11 15:09:09 · 5928 阅读 · 0 评论 -
Prometheus(普罗米修斯)架构及原理
prometheus架构图:如上,prometheus 采集数据的主要方式是 server 通过http请求去“主动拉取”数据。要完成以上需求, 必须满足以下条件 :server必须知道各种 exporter 的api 地址。 各种 exporter 的api 必须返回统一的、 规范的数据,server才能解析、存储各种监控数据。满足以上两点需求后server才能和exporter解耦。 只要遵循规范, 可以根据需求开发出各种 exporter (比如专门采集redis数...原创 2021-03-31 20:39:50 · 8303 阅读 · 1 评论 -
记一次上线前接口优化
记一次上线前接口优化原创 2021-03-30 19:57:33 · 263 阅读 · 0 评论 -
各类消息队列
消息队列的定位本质上还是一个队列, 用于存放进程间通信的一些消息(可以想象成一个保管室,甲有东西要给乙,但是乙此时不一定有时间马上去拿, 便跟甲约定, 你把东西放到 xxx 保管室, 我有时间的时候直接去xxx保管室拿)。消息队列就是这个“保管室”, 最简单的需求:生产者产生消息之后存储在消息队列里面, 消费者去消息队列获取消息进行处理。伴随着这个简单的需求使用频率和场景越来越多, 衍生出来的消息队列种类和所侧重的其他功能也越来越多(比如消息怎么存储,产生和消费消息时使用什么协议,怎么解决消息消费失败问原创 2021-03-28 17:47:45 · 320 阅读 · 1 评论 -
关于web架构的一些理解
关于web架构的一些个人看法原创 2021-03-21 20:19:04 · 247 阅读 · 2 评论 -
大型网站技术架构核心原理与案例分析笔记
大型网站技术架构核心原理与案例分析笔记网站的演化历史 :【考虑到可用性, 下面每一步都可以做主备】一、小型网站 : lamp (linux apache mysql php), 将所有东西都部署在单台机器上。应用程序的开发越快越好, 可以选择 php 、 django 等。不一定需要 redis 等缓存, 但是数据库是必须的。代理的话如果语言层面框架有实现好的代理可以不使用 apache 等代理。所以最简单的网站可能是这样的 :在一台 linux 服务器里面...原创 2021-03-21 14:44:44 · 216 阅读 · 3 评论 -
分布式架构的前世今生
一、前言随着社会的发展,技术的进步,以前的大型机架构很显然由于高成本、难维护等原因渐渐地变得不再那么主流了,替代它的就是当下最火的分布式架构,从大型机到分布式,经历了好几个阶段,我们弄明白各个阶段的架构,才能更好地理解和体会分布式架构的好处,那么本文我们就来聊聊分布式架构的演进过程,希望能给大家带来眼前一亮的感觉。二、背景说明我们都知道一个成熟的大型网站的系统架构并非一开始就设计的非常完美,也没有一开始就具备高性能、高并发、高可用、安全性等特性,而是随着用户量的增加、业务功能的扩展逐步演变过转载 2021-03-21 14:40:40 · 168 阅读 · 0 评论 -
一次访问web服务器的详细通信过程
转自 :http://www.360doc.com/content/11/0121/15/2614615_88098027.shtmlInternet中一台计算机访问Web服务器的全部过程,从中可以窥探Internet是如何工作的,本讲中会涉及到网络(或Internet)的专业术语、概念及Internet的重要内容,在以后的讲座中我们会详细讲解。本讲主要是想让大家明网络是怎样交付数据、寻址等,即Internet的基本工作原理。 一、网络环境说明图一 本次网络通信试验采用Packet.转载 2021-03-12 10:06:18 · 1654 阅读 · 0 评论