Netty源码分析之Reactor线程模型源码分析 编程开发

Netty源码分析之Reactor线程模型源码分析

多线程 随着硬件性能的提升,CPU的核数越来越越多,很多服务器标配已经达到32或64核。通过多线程并发编程,可以充分利用多核CPU的处理能力,提升系统的处理效率和并发性能。 从2005年开始,随着多核...
阅读全文
帖子中心,数据库架构优化与实践 系统架构

帖子中心,数据库架构优化与实践

本文将以“帖子中心”为例,介绍“1对多”类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践: 如何来实施水平切分 水平切分后常见的问题 典型问题的优化思路及实践 一、什么是...
阅读全文
一次堆外内存泄露的排查过程 编程开发

一次堆外内存泄露的排查过程

摘要: 堆外内存泄露的排查方法,kafka,ScriptEngine脚本引擎的内存泄露问题 背景:车联网应用,高频的监控数据解析入库查询。涉及到的中间件包括OTS、KAFKA、REDIS、RDS、DU...
阅读全文
进程、线程、协程原理 编程开发

进程、线程、协程原理

在最原始的时候程序是这样运行的,我们假设这两个程序为 A 和 B 而这两个程序都很大,每个程序大概有几千到几万行代码,它们两个的存在意义就是到CPU上去运行,通过计算机和人类进行交互。 CPU 是一个...
阅读全文
互联网数据库“跨库分页”架构技术实践 MySQL

互联网数据库“跨库分页”架构技术实践

一、需求缘起 分页需求 互联网很多业务都有分页拉取数据的需求,例如: 微信消息过多时,拉取第N页消息。 京东下单过多时,拉取第N页订单。 浏览58同城,查看第N页帖子。 这些业务场景对应的消息表,订单...
阅读全文
Json 数据 序列化和反序列化 编程开发

Json 数据 序列化和反序列化

一: 序列化意义: Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。为了实现两个Java进程之间传输对象等数据。 二: 两种数据传输方式...
阅读全文
Hash算法解决冲突的方法总结 编程开发

Hash算法解决冲突的方法总结

Hash算法解决冲突的方法一般有以下几种常用的解决方法 1, 开放定址法: 所谓的开放定址法就是一旦发生了冲突,就去寻找下一个空的散列地址,只要散列表足够大,空的散列地址总能找到,并将记录存入 公式为...
阅读全文
分布式存储系统的最佳实践:系统发展路径 编程开发

分布式存储系统的最佳实践:系统发展路径

摘要: 分布式存储系统从整体架构的角度看大同小异,实现起来却困难重重。自主研发的 分布式存储系统往往需要两到三年才能逐步成熟起来,其中的难点在于如何把系统做稳定。系统开发过程中涉及架构设计、关键算法实...
阅读全文
Log4j,Log4j2,logback,slf4j学习 编程开发

Log4j,Log4j2,logback,slf4j学习

Log4j Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、数据库等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别...
阅读全文
SpringBoot开发案例之Actuator健康监控 编程开发

SpringBoot开发案例之Actuator健康监控

前言 在实际生产环境中,需要实时或定期监控服务的可用性。Spring Boot 的 actuator(健康监控)功能提供了很多监控所需的接口,可以对应用系统进行配置查看、相关功能统计等。 集成 pom...
阅读全文