108 天前 / Turling
前言之前的高性能短链设计一文颇受大家好评,共被转载 「47」 次,受宠若惊,在此感谢大家的认可!在文末简单提了一下 OpenResty,一些读者比较感兴趣,刚好我们接入层网关也是用的 OpenResty,所以希望通过对网关设计的介绍来简单总结一下 OpenResty 的相关知识点,争取让大家对 OpenResty 这种高性能 Web 平台有一个比较全面的了解。本文会从以下几个方面来讲解。 网关的作用接入层网关架构设计与实现技术选型 OpenResty 原理剖析网关的作用网关作为所有请求的流量入口,主要承担着安全,限流,熔断降级,监控,日志,风控,鉴权等功能...
214 天前 / aotian
版权声明 本站原创文章 由 萌叔 发表转载请注明 萌叔 | http://vearne.cc 前言 uber 开源的高性能日志库 zap, 除了性能远超 logrus 之外,还有很多诱人的功能,比如支持日志采样、支持通过 HTTP 服务动态调整日志级别。本文简单聊一下日志采样。 使用说明 Sampling:Sampling 实现了日志的流控功能,或者叫采样配置,主要有两个配置参数,Initial 和 Thereafter,实现的效果是在 1s 的时间单位内,如果某个日志级别下同样内容的日志输出数量超过了 Initial 的数量,那么超过之后,每隔 Thereafter 的数量,才会再输出一次。是一个对日志输出的保护功能。
224 天前 / php-v
本文是由字节跳动系统部 STE 团队出品的文章。 对于 Linux 而言,iptables / nftables 是主流的网络 ACL(Access Control List)解决方案。近些年随着 eBPF 技术的快速发展,bpfilter 也被提上了日程,有望取代 iptables/nftables,成为下一代网络 ACL 的解决方案。 本文追随 bpfilter 的脚步,利用 XDP+eBPF 技术解决 iptables / nftables 性能瓶颈,提供一种高性能网络 ACL 的技术解决方案。 iptables / nftables 性能瓶颈由于 iptables 和 nftables 的技术相似,但 iptables 相较简单...
265 天前 / 冷星1024
来自公众号:code 秘密花园这篇文章介绍了一些使前端应用程序加载更快并提供良好用户体验的技术。 我们将研究前端的总体架构,如何首先加载必需的资源,并最大化资源缓存的概率。 无论你的页面是否需要成为客户端应用程序,还是如何优化应用程序的渲染时间,我都不会说太多后端如何传递资源。 总览我将把应用程序加载分为三个不同的阶段: 初始渲染 – 用户看到任何东西之前需要多长时间?应用程序加载 – 用户可以使用该应用程序需要多长时间?下一页 – 导航到下一页需要多长时间?初始渲染在浏览器的初始渲染之前,用户看不到任何东西。
323 天前 / rfyiamcool
为什么 mheap 成为瓶颈? 虽然在 go 的内存设计中有多级缓存的概念 ( mcache、mcentral、mheap ),mcache 由于绑定在 P 上,所以无锁的。central 数组按照 size class 芬超了 67 个,每个 mcentral 都有一个锁,锁粒度在 size class。但 mheap 结构是全局唯一,相关的内存分配及释放会独占 mheap.lock。 go1.14 内存分配器优化的逻辑简单说就是删除自由内存范围的概念,并使用位图跟踪自由内存,另外在 p 缓存一部分 bitmap。
409 天前 / itfanr
2018 年最热跨平台技术 Flutter 凌空出世,通过自绘 UI 组件,构建高质量跨平台组件库,解决了此类框架难以解决的双端一致性, Bridge 通信效率等问题。并提供丰富的 Widget 组件,渲染性与 Native UI 相媲美,掀起了大家对下一代跨平台技术探索的热情。同时对国内闲鱼、GCanvas、支付宝、Weex 等都投入了不少研究,通过 Flutter 打造自己的渲染引擎,支持 APP 内业务、小程序等业务。下一代跨平台技术非 Flutter 莫属吗?基于 Flutter 引擎有哪些误区?有木有性能媲美 Flutter 的跨平台渲染技术?本文通过阐述跨平台 UI 渲染引擎的历史...
411 天前 / 噶牛爱尚
写文章高阶:腾讯新闻构建高性能的 react 同构直出方案小蚊子腾讯 高级前端工程师74 人赞同了该文章在腾讯新闻抢金达人活动 node 同构直出渲染方案的总结文章中我们整体了解了下同构直出渲染方案在我们项目中的使用。正如我在上篇文章结尾所说的: 应用型技术的难点不是在克服技术问题,而是在于能够不断的结合自身的产品体验,发现其中存在的体验问题,不断使用更好的技术方案去优化用户的体验,为整个产品发展添砖加瓦。我们在根据产品的体验效果选择了 react 同构直出渲染方案,必然也要保证当前方案的可用性和可靠性。
411 天前 / 知了一笑
一、ClickHouse简介1、基础简介Yandex开源的数据分析的数据库,名字叫做ClickHouse,适合流式或批次入库的时序数据。ClickHouse不应该被用作通用数据库,而是作为超高性能的海量数据快速查询的分布式实时处理平台,在数据汇总查询方面(如GROUP BY),ClickHouse的查询速度非常快。 2、数据分析能力OLAP场景特征 大多数是读请求 数据总是以相当大的批(>1000rows)进行写入 不修改已添加的数据 每次查询都从数据库中读取大量的行,但是同时又仅需要少量的列 宽表...
431 天前 / 九卷
“世间可称之为天经地义的事情没几样,复杂的互联网架构也是如此,万丈高楼平地起,架构都是演变而来,那么演变的本质是什么?” —1— 引子 软件复杂性来源于几个方面:高并发高性能、高可用、可扩展、低成本、低规模、可维护、安全等。架构演化、发展都是为了试图降低复杂性: 高并发、高性能:互联网系统特点,用户量大,请求量大,高并发高性能成为必备要求。性能差体验会差,用户会有别选择。 高可用:系统高可用可提升用户体验,也变为必备要求。
435 天前 / 冷星1024
导语 bull可以让node快速实现异步调用、流量削峰、分布式定时任务,进一步打破前端在高并发、分布式方面的限制。 本篇内容涵盖前端遇到的一些复杂的应用场景及实践经验,希望能给大家提供一些不一样的思路。 背景 2019年的今天,nodejs已经成为了前端研发必备的技术,几乎所有的前端团队都会涉及nodejs开发,nodejs在前端的应用场景,主要包括以下几个: 命令行工具:各种支持前端业务团队快速开发的脚手架,功能一般包括创建项目、编译项目、启动调试项目等。
436 天前 / 我是晨曦
0 注意Gbox已经被重命名为Flexml!MacOS用户请一定使用0.3.1版本以上的插件。 1 适用的业务范围在线上,对于某些适用于要求强展示、轻交互、高可配场景,我们有三种方案: RNWebViewRecyclerView这三种方案各有各的问题。 使用RN时要占据整个Activity,而且Native和Js的通信损耗不可避。在另一边,WebView的情况则更加糟糕,需要lock主线程来加载webkit。所以这两种方案一般在这在二级、三级页面使用,如果在首页使用其实并不是非常理想。
440 天前 / 冷星1024
点击蓝字前端真好玩关注,回复“1”加入前端进阶群与大家一起成长前言 在实际工作中,我们很少会遇到一次性需要向页面中插入大量数据的情况,但是为了丰富我们的知识体系,我们有必要了解并清楚当遇到大量数据时,如何才能在不卡主页面的情况下渲染数据,以及其中背后的原理。 对于一次性插入大量数据的情况,一般有两种做法: 时间分片 虚拟列表 本文作为开篇,着重来介绍如何使用 时间分片的方式来渲染大量数据,虚拟列表相关的内容,日后会持续整理。
443 天前 / 街道-书记撸代码
最近小组在尝试使用集团DinamicX的DSL,通过下发DSL模板实现Flutter端的动态化模板渲染。在解决了性能方面的问题后,又面临了一个新的挑战——渲染一致性。如何在不降低渲染性能的前提下,大幅度提升Flutter与Native之间的渲染一致性呢? 思路 在初版渲染架构设计当中,我们以Widget为中心,采用了组合的方案来完成DSL到Widget的转化。这方面的工作在早期还算比较顺利,然而随着模板复杂度的增加,逐渐出现了一些Bad Case。
448 天前 / kk德米安
并发(并行),一直以来都是一个编程语言里的核心主题之一,也是被开发者关注最多的话题;Go语言作为一个出道以来就自带 『高并发』光环的富二代编程语言,它的并发(并行)编程肯定是值得开发者去探究的,而Go语言中的并发(并行)编程是经由goroutine实现的,goroutine是golang最重要的特性之一,具有使用成本低、消耗资源低、能效高等特点,官方宣称原生goroutine并发成千上万不成问题,于是它也成为Gopher们经常使用的特性。