背景 字节各类业务拥有众多用户群,作为字节前端性能监控 SDK,自身若存在性能问题,则会影响到数以亿计的真实用户的体验.所以此类 SDK 自身的性能在设计之初,就必须达到一个非常极致的水准. 与此同时,随着业务不断迭代,功能变得越来越多,对监控的需求也会变得越来越多.例如,今天 A 业务更新了架构,想要自定义性能指标的获取规则,明天 B 业务接入了微前端框架,需要监控子应用的性能.在解决这些业务需求的同时,我们会不断加入额外的判断逻辑.配置项.同时由于用户的电脑性能.浏览器环境的不同,我们又要解…
本章主要内容   扩展读性能 扩展写性能以及内存容量 扩展复杂的查询   随着Redis的使用越来越多, 只使用一台Redis服务器没办法存储所有数据或者没办法处理所有读写请求的问题迟早都会出现, 这时我们就需要使用一些方法对Redis进行扩展, 让它能够满足我们的需求.   我们首先要做的, 就是在Redis能够存储所有数据并且能够正常地处理写查询的情况下, 让Redis的读查询处理能力超过单台Redis服务器所能提供的读查询处理能力.   10.1 扩展读性能 在对读查询的性能进行扩展, 并…
第1章 初识Redis 注:本书在redis3.0版本的,比如redis3.0以后支持服务端集群.3.0之前只能客户端分片.    本章主要内容 1.Redis与其他软件的相同之处和不同之处 2.Redis的用法 3.使用Python示例代码与Redis进行简单的互动 4.使用Redis解决实际问题   Redis是一个远程内存数据库, 它不仅性能强劲, 而且还具有复制特性以及为解决问题而生的独一无二的数据模型. Redis提供了 5种不同类型的数据结构, 各式各样的问题都可以很自 然地映射到这…
第2章 使用 Redis构建Web应用 本章主要内容   1.登录cookie 2.购物车cookie 3.缓存生成的网页 4.缓存数据库行 5.分析网页访问记录   本章的所有内容都是围绕着发现并解决Fake Web Retailer这个虚构的大型网上商店来展开的, 这个商店每天都会有大约500万名不同的用户, 这些用户会给网站带来1亿次点击, 并从网站购买超过10万件商品. 我们之所以将Fake Web Retailer的几个数据量设置得特别大, 是考虑到如果可以在大数据量背景下顺利地  …
Minio的元数据 数据存储 MinIO对象存储系统没有元数据数据库,所有的操作都是对象级别的粒度的,这种做法的优势是: 个别对象的失效,不会溢出为更大级别的系统失效. 便于实现"强一致性"这个特性.此特性对于机器学习与大数据处理非常重要. 数据管理 元数据与数据一起存放在磁盘上:数据部分纠删分片以后存储在磁盘上,元数据以明文形式存放在元数据文件里(xl.json).假定对象名字为obj-with-metadata, 它所在的桶的名字是bucket_name, disk是该对象所在纠删…
开发指南须知 本次实践主要在版本:2.2.0.BUILD-SNAPSHOT上进行构建,这个项目提供了构建在Spring生态系统之上API网关. Spring Cloud Gateway的介绍 Spring Cloud Gateway目标是用一个简单.有效的方式路由到API,并且提供横切的一些关注点,例如:安全.监控.系统性能和弹性等. API网关介绍 API 网关出现的原因是微服务架构的出现,不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求,如果让客…
零拷贝Zero-Copy 我们先来看下它的定义: "Zero-copy" describes computer operations in which the CPU does not perform the task of copying data from one memory area to another. This is frequently used to save CPU cycles and memory bandwidth when transmitting a fi…
Python环境搭建 本次入门系列将使用Python作为开发语言.要使用Python语言,我们先来搭建Python开发平台.我们将基于Python 2.7版本.以及Python的开发发行版本Anaconda版本来开发. Anaconda指的是一个开源的Python发行版本,其包含了conda.Python等180多个科学包及其依赖项. 下载地址: https://www.anaconda.com/distribution/,注意要下载2.7版本 下载好Anaconda安装包后,即可安装,安装好后…
Java性能调优都是老生常谈的问题,特别当“糙快猛”的开发模式大行其道时,随着系统访问量的增加.代码的臃肿,各种性能问题便会层出不穷. 比如,下面这些典型的性能问题,你肯定或多或少都遇到过: 在进行性能测试时,接口响应时间长,吞吐量低: 在高并发下,JVM 中 Full GC 异常,JVM 堆内存溢出: 由于业务增长迅猛,大量读写操作单表单库,造成数据库死锁. 对于很多研发人员来说,Java性能调优都是很头疼的问题,那么 Java性能调优为什么不好掌握呢? Java 性能调优不是一门编程语言,无…
BitMap(位图)的介绍 BitMap从字面的意思,很多人认为是位图,其实准确的来说,翻译成基于位的映射,其中数据库中有一种索引就叫做位图索引. 在具有性能优化的数据结构中,大家使用最多的就是hash表,是的,在具有定位查找上具有O(1)的常量时间,多么的简洁优美.但是数据量大了,内存就不够了.此外,可以使用类似外排序来解决问题的,由于要走IO所以时间上又不行. 所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素.由于采用了Bit为单位来存储数据,因此在…