Android NativeCrash 捕获与解析

2021-02-24
阅读 9 分钟
7.1k
Android 开发中,NE一直是不可忽略却又异常难解的一个问题,原因是这里面涉及到了跨端开发和分析,需要同时熟悉 Java,C&C++,并且需要熟悉 NDK开发,并且解决起来不像 Java异常那么明了,本文为了解决部分疑惑,将从NE的捕获,解析与还原等三个方面进行探索。

深入理解 Web 协议 (三):HTTP 2

2021-02-23
阅读 11 分钟
4.9k
本篇将详细介绍 http2 协议的方方面面,知识点如下:HTTP 2 连接的建立HTTP 2 中帧和流的关系HTTP 2 中流量节省的奥秘:HPACK 算法HTTP 2 协议中 Server Push 的能力HTTP 2 为什么要实现流量控制?HTTP 2 协议遇到的问题一、HTTP 2 连接的建立和许多人的固有印象不同的是 HTTP 2协议本身并没有规定必须建立在TLS/SSL之上...

深入理解 ProtoBuf 原理与工程实践(概述)

2021-02-03
阅读 6 分钟
8.5k
ProtoBuf 作为一种跨平台、语言无关、可扩展的序列化结构数据的方法,已广泛应用于网络数据交换及存储。随着互联网的发展,系统的异构性会愈发突出,跨语言的需求会愈加明显,同时 gRPC 也大有取代Restful之势,而 ProtoBuf 作为g RPC 跨语言、高性能的法宝,我们技术人有必要

高性能缓存 Caffeine 原理及实战

2021-02-02
阅读 7 分钟
6.2k
Caffeine 是基于Java 8 开发的、提供了近乎最佳命中率的高性能本地缓存组件,Spring5 开始不再支持 Guava Cache,改为使用 Caffeine。

Java 多线程上下文传递在复杂场景下的实践

2021-02-01
阅读 20 分钟
6.7k
海外商城从印度做起,慢慢的会有一些其他国家的诉求,这个时候需要我们针对当前的商城做一个改造,可以支撑多个国家的商城,这里会涉及多个问题,多语言,多国家,多时区,本地化等等。在多国家的情况下如何把识别出来的国家信息传递下去,一层一层直到代码执行的最后一步。甚至还有一些多线程的场景需要处理。

SpringBoot 2.0 中 HikariCP 数据库连接池原理解析

2021-01-26
阅读 8 分钟
4k
作为后台服务开发,在日常工作中我们天天都在跟数据库打交道,一直在进行各种CRUD操作,都会使用到数据库连接池。按照发展历程,业界知名的数据库连接池有以下几种:c3p0、DBCP、Tomcat JDBC Connection Pool、Druid 等,不过最近最火的是 HiKariCP。

MySQL 5.6.35 索引优化导致的死锁案例解析

2021-01-25
阅读 8 分钟
6.1k
随着公司业务的发展,商品库存从商品中心独立出来成为一个独立的系统,承接主站商品库存校验、订单库存扣减、售后库存释放等业务。在上线之前我们对于核心接口进行了压测,压测过程中出现了 MySQL 5.6.35 死锁现象,通过日志发现引发死锁的只是一条简单的sql,死锁是怎么产生的?发扬技术人员刨根问底的优良传统,对于这...

谈谈统计学正态分布阈值原理在数据分析工作中的运用

2021-01-20
阅读 6 分钟
2.4k
神觉得抛硬币是好的,于是定义每个抛出硬币正面记+1分,反面记-1分。创世纪从0分开始,神只抛1次硬币,有2种可能:一半的概率+1分,一半的概率-1分。此时概率分布大概是这样的:

深入剖析 RSA 密钥原理及实践

2021-01-19
阅读 10 分钟
4.4k
1.你所在的项目需要对接银行,对方需要你提供一个加密证书。你手上只有一个六级英语证书,不确定这个是否满足对方需求。由于你迟迟无法提供正确的证书,项目因此延期,加薪计划泡汤,月供断了,女朋友分手了,你感觉人生完了。

Kafka 原理以及分区分配策略剖析

2021-01-18
阅读 13 分钟
13.1k
可以让你发布和订阅流式的记录。这一方面与消息队列或者企业消息系统类似。可以储存流式的记录,并且有较好的容错性。可以在流式记录产生时就进行处理。

初识 D3.js :打造专属可视化

2021-01-12
阅读 6 分钟
9.6k
随着现在自定义可视化的需求日益增长,Highcharts、echarts等高度封装的可视化框架已经无法满足用户各种强定制性的可视化需求了,这个时候D3的无限定制的能力就脱颖而出。

Java 并发编程之 JMM & volatile 详解

2021-01-11
阅读 11 分钟
4.1k
本文从计算机模型开始,以及CPU与内存、IO总线之间的交互关系到CPU缓存一致性协议的逻辑进行了阐述,并对JMM的思想与作用进行了详细的说明。针对volatile关键字从字节码以及汇编指令层面解释了它是如何保证可见性与有序性的,最后对volatile进行了拓展,从实战的角度更了解关键字的运用。

深入浅出 ZooKeeper

2020-12-29
阅读 11 分钟
6.5k
ZooKeeper 是一个分布式协调服务 ,由 Apache 进行维护。ZooKeeper 可以视为一个高可用的文件系统。ZooKeeper 可以用于发布/订阅、负载均衡、命令服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能 。

vivo 互联网业务就近路由技术实战

2020-12-28
阅读 5 分钟
1.9k
在vivo互联网业务高速发展的同时,支撑的服务实例规模也越来越大,然而单个机房能承载的机器容量是有限的,于是同城多机房甚至多地域部署就成为了业务在实际部署过程中不得不面临的场景。

vivo 全球商城:订单中心架构设计与实践

2020-12-28
阅读 7 分钟
4.5k
从2017年开始启动的 v2.0 架构升级,基于业务模块进行垂直的系统物理拆分,拆分出来业务线各司其职,提供服务化的能力,共同支撑主站业务。

发布会直播技术及业务实践

2020-12-23
阅读 8 分钟
2k
随着直播行业的近年来的发展,直播技术现已日趋成熟。本文主要介绍目前主流的直播技术原理,以及在直播在发布会场景下的应用以及过程中遇到的问题及解决方案。

vivo 商城架构升级-SSR 实战篇

2020-12-22
阅读 7 分钟
3k
在本文中,我们来分享一下vivo官网商城在Node 服务端渲染(Server Side Rendering, SSR)方面的实战经验。本文主要围绕以下几个方面进行阐述:

vivo 微服务 API 网关架构实践

2020-12-21
阅读 14 分钟
2.3k
Java:Zuul1/Zuul2、Spring Cloud Gateway、gravitee-gateway、Dromara Soul 等;

SPI 在 Dubbo中 的应用

2020-12-16
阅读 20 分钟
2.1k
SPI 全称为 Service Provider Interface,是一种模块间组件相互引用的机制。其方案通常是提供方将接口实现类的全名配置在classPath下的指定文件中,由调用方读取并加载。这样需要替换某个组件时,只需要引入新的JAR包并在其中包含新的实现类和配置文件即可,调用方的代码无需任何调整。优秀的SPI框架能够提供单接口多实...

Sentinel 是如何做限流的

2020-12-15
阅读 10 分钟
6k
之前的项目中使用的限流措施主要是Guava的RateLimiter。RateLimiter是基于令牌桶流控算法,使用非常简单,但是功能相对比较少。

领域驱动设计(DDD)实践之路(四):领域驱动在微服务设计中的应用

2020-12-15
阅读 13 分钟
3.3k
这是“领域驱动设计实践之路”系列的第四篇文章,从单体架构的弊端引入微服务,结合领域驱动的概念介绍了如何做微服务划分、设计领域模型并展示了整体的微服务化的系统架构设计。结合分层架构、六边形架构和整洁架构的思想,以实际使用场景为背景,展示了一个微服务的程序结构设计。

vivo 全球商城:从 0 到 1 代销业务的融合之路

2020-12-14
阅读 4 分钟
1.5k
近两年,内销商城业务的发展十分迅速,vivo 商城系统的架构也完成了从单体往分布式的演进。我们在 vivo 商城服务化方向做了很多的努力,基础服务的能力逐渐沉淀下来。

vivo 全球商城:架构演进之路

2020-12-14
阅读 5 分钟
2.6k
vivo官方商城,是vivo官方的线上电商平台,主营vivo手机及专属配件。经过几年发展,已经完成了从单体应用到具备综合能力电商平台的演进,整体系统架构也逐步往服务化、中台化变迁。我们在这条系统架构升级的道路中,实践出了一些系统架构经验。

当我们谈前端性能的时候,我们谈的是什么

2020-12-09
阅读 7 分钟
6.2k
前端页面的性能,一直都是大家持续关注的一个领域,因为用户的留存率和页面加载性能息息相关。根据google做出的数据统计,页面访问时长从1s增加到3s,用户跳出率增加32%。

异步编程之事件循环机制

2020-12-08
阅读 3 分钟
2.1k
本文着重讲解通过事件循环机制来实现多个异步操作的有序执行、并发执行;通过事件队列实现同级多个并发操作的先后执行顺序,通过微任务和宏任务的概念来讲解不同阶段任务执行的先后顺序,最后通过将浏览器和 Node 下的事件循环机制进行对比,对比其事件循环机制的不同之处,以及在 Node 端通过libuv引擎来实现多个异步任...

分布式搜索引擎 Elasticsearch 的架构分析

2020-12-08
阅读 8 分钟
2.2k
 ES(Elasticsearch下文统一称为ES)越来越多的企业在业务场景是使用ES存储自己的非结构化数据,例如电商业务实现商品站内搜索,数据指标分析,日志分析等,ES作为传统关系型数据库的补充,提供了关系型数据库不具备的一些能力。

Seata是什么?一文了解其实现原理

2020-12-07
阅读 6 分钟
2.3k
随着业务发展,单体系统逐渐无法满足业务的需求,分布式架构逐渐成为大型互联网平台首选。伴随而来的问题是,本地事务方案已经无法满足,分布式事务相关规范和框架应运而生。

Canal 组件简介与 vivo 帐号实践

2020-12-07
阅读 7 分钟
2.6k
互联网应用随着业务的发展,部分单表数据体量越来越大,应对服务性能与稳定的考虑,有做分库分表、数据迁移的需要,本文介绍了vivo帐号应对以上需求的实践。

Java 8 Stream原理解析

2020-12-03
阅读 4 分钟
6.7k
说起 Java 8,我们知道 Java 8 大改动之一就是增加函数式编程,而 Stream API 便是函数编程的主角,Stream API 是一种流式的处理数据风格,也就是将要处理的数据当作流,在管道中进行传输,并在管道中的每个节点对数据进行处理,如过滤、排序、转换等。

源码深度解析 Handler 机制及应用

2020-12-02
阅读 23 分钟
2.5k
在 Android 开发中,Handler及相关衍生类的应用经常用到,Android的运行也是建立在这套机制上的,所以了解其中的原理细节,以及其中的坑对于每位开发者来说都是非常有必要的。Handler机制的五个组成部分:Handler、Thread(ThreadLocal)、Looper、MessageQueue、Message。