之前有不少刚入坑 Java 的粉丝留言,想系统的学习一下分库分表相关技术,可我一直没下定决心搞,眼下赶上公司项目在使用 sharding-jdbc 对现有 MySQL 架构做分库分表的改造,所以借此机会出一系分库分表落地实践的文章,也算是自己对架构学习的一个总结。
随着时间推移和业务的快速发展,携程酒店数据累积越来越多。目前流量日数据在3T左右,再加上各种订单、价、量、态等数据更是庞大。现有Hive(Spark引擎)执行速度虽然相对较快,但在国际化发展背景下,一些海外业务由于时差问题,数据需要比国内提前数小时完成,性能提升迫在眉睫。2020年初,我们开始研究ClickHouse在数据仓库领域应用。
游戏设计:我们把游戏的3D场景分成了三大模块,分别是赛道、金币(道具)和人物。
随着我们项目越来越大,我们有可能需要维护很多的模块,我们腾讯文档 Excel 项目大模块有 10 几个,而每个大模块分别有 N 个小模块,每个大模块下的小模块都有主要的负责人在跟进模块问题。
软件工程也是工程,因此传统工程制图的一些基本理论,在软件行业同样适用。但另一方面,软件与实体制造业之间还是有着本质区别,所以在制图方面的需求和方式也大相径庭,无法直接套用。作为软件行业的从业者,你可以完全不懂工程制图,但你不得不懂架构制图 —— 这是任何程序员职业生涯的的必修课。
简单地说,就是要把复杂的问题简单化,把一个从0到N的问题转化为N个0到1的问题。另一个相近的说法就是“解耦”。
不可变对象就是初始化之后不能够被修改的对象,那么是不是类中引入了不可变对象,所有对不可变对象的修改都立马对所有线程可见呢?实际上,不可变对象只能保证在多线程环境中,对象使用的安全性,并不能够保证对象的可见性。
即便是在多核处理器的计算机上,进程的数量通常也是远远多于处理器数量的。因此,宏观上并行运行的多个进程在微观上往往属于分时复用。进程调度的本质是怎么样让进程更好地分时复用处理器资源。概括地说,进程调度包括调度策略和进程切换两个重要话题。针对一个处理器来说,分时复用无非就是A进程的时间配额用完以后换到B进程的事情。在这个场景下,“如何选择B进程”就是调度策略,“如何运行B进程”就是进程切换。
1、Redis支持哪几种数据类型?String、List、Set、Sorted Set、hashes。2、Redis主要消耗什么物理资源?Redis是一种基于内存高性能的数据库--- 主要依赖于内存
Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。
nio(new I/O),是 Java SE 1.4 及后续版本提供的一种新的 I/O 操作方式(即java.nio包及其子包)。Java nio 是一个基于缓冲区并能提供非阻塞 I/O 操作的 Java API ,因此 nio 也被看成是 non-blocking I/O 的缩写。
如果说互联网的目标就是连接一切,那么推荐系统的作用就是建立更加有效率的连接,推荐系统可以更有效率的连接用户与内容和服务,节约了大量的时间和成本。如果把推荐系统简单拆开来看,推荐系统主要是由数据、算法、架构三个方面组成。
2020年9月15日,JDK15正式发布,可谓如约而至。按照Java SE的发展路线图,JDK14自此停止更新。JEP:JDK Enhancement Proposals,JDK 增强建议,也就是 JDK 的特性新增和改进提案。
说起MySQL的查询优化,相信大家收藏了一堆奇技淫巧:不能使用SELECT *、不使用NULL字段、合理创建索引、为字段选择合适的数据类型..... 你是否真的理解这些优化技巧?是否理解其背后的工作原理?在实际场景下性能真有提升吗?我想未必。因而理解这些优化建议背后的原理就尤为重要,希望本文能让你重新审视这些优化建议,并在实际业务场景下合理的运用。
从InnoDb 存储引擎的逻辑存储结构看,所有数据都被逻辑地存放在一个空间中,称之为表空间(tablespace)。表空间又由段(segment),区(extent),页(page)组成。页在一些文档中有时候也称为块(block)。
如果能在脑海中构建出MySql各组件之间如何协同工作的架构图,就会有助于深入理解MySql服务器
Serverless服务越来越流行,应用起来也很方便,今天我们用阿里云函数计算(Serverless)服务搭建一个简单的Web应用。
第一阶段:熟悉编辑器(Vscode/Webstorm)、终端、Git、Github、Markdown的用法。第二阶段:了解浏览器历史、HTML/CSS/JavaScript历史,了解Doctype概念
liunx chmod 数字法设置权限:可读 r 可以使用数字 4 表示,可写 w 可以使用数字 2 表示,可执行 x 可以使用数字 1 表示
首先我们先确定一件事儿,我们现在学习的是HTML4.0.1这个版本,这个版本是IE6开始兼容的。HTML5是IE9开开始兼容的。但是IE6、7、8这些浏览器还不能过早的淘汰,所以这几年网页还是应该用HTML4.01来制作。如今,手机、移动端的网页,就可以使用HTML5了,因为其兼容性更高。
关注时代Java