Zookeeper和Etcd的对比 发表于 2020-10-24 | 更新于 16:21:13 | 分类于 后端 | 评论数: 简介 Zookeeper 和 Etcd 都是非常优秀的分布式协调系统,zookeeper 起源于 Hadoop 生态系统,起步比较早,而 etcd 算是后起之秀,它的流行是因为它是 kubernetes 的后台支撑。 Zookeeper 概述 zookeeper 起源于 Hadoop,后来进化为 A ... 阅读全文 »
一次 SQL 查询优化原理分析(900W+ 数据,从 17s 到 300ms 发表于 2020-04-18 | 更新于 17:45:24 | 分类于 后端 | 评论数: 场景描述 有一张财务流水表,未分库分表,目前的数据量为9555695,分页查询使用到了limit,优化之前的查询耗时16 s 938 ms (execution: 16 s 831 ms, fetching: 107 ms),按照下文的方式调整SQL后,耗时347 ms (execution: 16 ... 阅读全文 »
ignite实践踩坑录(4) 数据一致性 发表于 2020-03-21 | 更新于 2020-04-22 | 分类于 后端 | 评论数: 数据一致性的简要说明 说起一致性,我们大概第一反应就是想起分布式系统的CAP定理以及其相关定义,简单来说就是,一致性、可用性和分布式,三者之间最多只可保证两者的完整性。那有了这个思想前提,就可以来聊一聊ignite在数据一致性上面的部分设计。 问题场景说明 跑120w数据,在ignite里面的逻辑是 ... 阅读全文 »
Java通过阻塞队列和多线程实现生产者-消费者模式(一对一、一对多、多对多) 发表于 2020-02-10 | 更新于 23:29:54 | 分类于 后端 | 评论数: 生产者-消费者模式是什么 生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里取,阻塞队列就相当于一个缓冲区,平衡了生产 ... 阅读全文 »
排查HikariDataSource异常关闭问题 发表于 2019-12-09 | 更新于 17:47:26 | 分类于 后端 | 评论数: Hikari简单介绍 官网地址 快速,简单,可靠的数据源,spring boot2.0 已经将 HikariCP 做为了默认的数据源链接池,在官网测试中秒杀一切其他数据源,比如 commons-dbcp,tomcat,c3po,druid。 基本设计 Hikari 链接池采用了很多优化来提高并发数, ... 阅读全文 »
Java多线程的使用之三板斧 发表于 2019-12-06 | 更新于 17:50:50 | 分类于 后端 | 评论数: 场景 在我们实际开发过程中,往往会遇到执行接口逻辑以及批任务处理的的执行效率问题,在这些场景中,都可以通过使用多线程的方式,把占据长时间的程序中的任务放到后台去处理,更好的发挥计算机的多核cpu的优势。 概述 这篇文章只介绍开发过程中实用的多线程代码的三种编写方法和实践过程,参数说明、线程安全、多线 ... 阅读全文 »
ignite实践踩坑录(3) 数据平衡分布 发表于 2019-09-23 | 更新于 2020-04-22 | 分类于 后端 | 评论数: 为什么需要数据平衡分布 在一个集群的环境中,我们往往希望能更好的利用分布式的优势,把数据平衡分布在各个节点中,这样有几个好处: 这样才能缓存/持久化更多的数据。 即使其中一个节点down掉,也不影响其他节点的数据和状态。 数据在各个节点中平衡分布,使得资源利用率,单节点的拔插效率更高。 ... 阅读全文 »
ignite实践踩坑录(2) 节点集群 发表于 2019-07-13 | 更新于 2020-04-22 | 分类于 后端 | 评论数: Ignite的天然支持分布式 Ignite具有非常先进的集群能力,包括逻辑集群组和自动发现。 Ignite是一个以内存为中心的分布式数据库,通过DiscoverySpi节点可以彼此发现对方,而且提供了TcpDiscoverySpi作为DiscoverySpi的默认实现,它使用TCP/IP来作为节点发 ... 阅读全文 »
ignite实践踩坑录(1) 简介与持久化 发表于 2019-05-19 | 更新于 2020-04-22 | 分类于 后端 | 评论数: Ignite是什么 一个以内存为中心的分布式数据库、缓存和处理平台,可以在PB级数据中,以内存级的速度进行事务性、分析性以及流式负载的处理。 支持磁盘、第三方存储持久化数据。 在内存和磁盘上是同时支持ACID的,是一个强一致的系统,Ignite可以在整个拓扑的多台服务器上保持事务。 完整的SQL和 ... 阅读全文 »
jdbcTemplate高效率获取表结构,数据库元数据信息 发表于 2019-03-31 | 更新于 15:40:32 | 分类于 后端 | 评论数: 场景 在项目中需要通过表名来获取数据库中元数据相关信息,比如表名,字段名,长度等 使用spring自带的jdbcTemplate 可以通过SqlRowSetMetaData 可以获取到部分元数据,但是不能获取备注信息(comment中的内容) 最简单的解决方案 使用jdbcTemplate的quer ... 阅读全文 »