冷锋-
码龄6年
  • 589,679
    被访问
  • 198
    原创
  • 833,059
    排名
  • 97
    粉丝
  • 0
    铁粉
关注
提问 私信

个人简介:只要现在努力一切都来得及

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2016-11-21
博客简介:

向着高亮的地方

博客描述:
迎接明天的太阳,源于今晚的努力
查看详细资料
  • 3
    领奖
    总分 445 当月 7
个人成就
  • 获得241次点赞
  • 内容获得91次评论
  • 获得748次收藏
创作历程
  • 1篇
    2022年
  • 13篇
    2021年
  • 58篇
    2020年
  • 62篇
    2019年
  • 63篇
    2018年
  • 41篇
    2017年
成就勋章
TA的专栏
  • 架构
    6篇
  • Java常见业务开发错误案例
    2篇
  • 消息中间件
    4篇
  • ELK
  • Duddo
    3篇
  • Hbase
    1篇
  • GoLang
    7篇
  • SpringCloud
    3篇
  • Spring
    21篇
  • JVM
    11篇
  • Java基础
    21篇
  • Java多线程
    11篇
  • 算法和设计模式
    10篇
  • 分布式
    15篇
  • 数据库
    12篇
  • Linux
    16篇
  • Git
    6篇
  • FastDFS
    2篇
兴趣领域 设置
  • 大数据
    mysqlredis
  • 后端
    spring架构
  • 搜索
    elasticsearch
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

MYSQL索引理解

MYSQL索引本质帮助高效查询的一种数据结构 数据存储在磁盘中,每次默认查询一页大小16K二叉搜索树,平衡二叉搜索树(缺点)(父节点至多只有2个子节点)最坏情况:单边树/高度多,层数多,查询效率很低。(数据量大情况下) 查询很多次,IO次数很多,开销大。三、B-Tree (多叉,多路平衡树) 特性:每个节点包括:关键字索引,数据区,指针。 高度降低,原来只有俩个路,现在多路,可以放更多节点。 每个节点放更多数据指针,水平扩展。B+Tree特性:只有叶子节点放的数据,非叶子..
原创
发布博客 2022.03.13 ·
129 阅读 ·
1 点赞 ·
0 评论

Java Future与CompletableFuture的用法、区别

Future的用法多线程场景时,一般是实现runnable接口,覆写run方法,返回值是void类型,因此这种情况下不需要线程的返回结果。如果需要线程的返回结果,就需要用callable接口来代替了。callable用法和runnable一样,只不过覆写的是call方法,该方法有一个泛型返回值类型,可以根据需要指定。那么何时到Future呢?当你启动callable线程时,就可以声明一个Future对象,用于接收返回结果。Futrue可以监视目标线程调用call的情况,当你调用Future的...
原创
发布博客 2021.08.27 ·
330 阅读 ·
0 点赞 ·
0 评论

架构即未来--AKF 可扩展立方体

我是一个服务,我的名字叫闪客。我提供的服务很简单,给我一个标题,我输出一篇文章, 日复一日,年复一年。X但随着粉丝数的不断增多,我对文章的质量也有了更加严格的要求,所以我很容易累死,累死了就会鸽文。为了防止这种情况发生,我使用了我的技能,分身术。我分出了 N 多个和我一模一样的服务,平时他们不干活,但当我累死的时候,他们随时顶上来。当然,他们也可以和我一起干活,或者帮我干一部分活,分担一下我的压力,减少我累死的概率。这样,我通过简单的分身之术,就..
转载
发布博客 2021.07.12 ·
350 阅读 ·
0 点赞 ·
0 评论

内容建设--关注流

有这样一个场景,需要你来做个架构设计。一、有一群作者,可以发布文章。二、有一群用户,可以关注作者。三、用户有一个页面,可以展示所关注作者发布的文章,并且按发布时间排序。好吧,其实就是简化版的公众号消息列表。作者就是一个个的公众号,用户就是可爱的你,而这个展示的关注流列表,就是我们手机微信上点开订阅号消息后的部分。这回熟悉了吧。你会怎么设计呢?先把表设计出来首先有三表是必须的,用来存储元信息,毋庸置疑。作者表:存储作者的信息
转载
发布博客 2021.07.12 ·
102 阅读 ·
0 点赞 ·
0 评论

2021张家界五一出行攻略

一.天气 早晚温差较大,出门带价厚一点的外套,小小着凉,白天光照也较强,防晒霜也要备,有时会下雨,雨伞也不要忘了。二.旅游路线张家界游玩分为三大块景点:1.武陵源景区(张家界森林公园)「张家界核心景点,景点主要有天子山,黄石寨,十里画廊,金鞭溪,袁家界等,建议游玩2~3天,门票:淡季 成人139,学生票71;旺季 成人248,学生票168」2.天门山景区「拥有亚洲最长索道,世界公路奇观,玻璃栈道等,建议游玩时间半天,门票:成人258,学生票155.(包括了往返的索道,..
原创
发布博客 2021.05.01 ·
885 阅读 ·
1 点赞 ·
5 评论

分布式系统的技术栈

构建分布式系统的目的是增加系统容量,提高系统的可用性,转换成技术方面,也就是完成下面两件事。大流量处理。通过集群技术把大规模并发请求的负载分散到不同的机器上。关键业务保护。提高后台服务的可用性,把故障隔离起来阻止多米诺骨牌效应(雪崩效应)。如果流量过大,需要对业务降级,以保护关键业务流转。说白了就是干两件事。一是提高整体架构的吞吐量,服务更多的并发和流量,二是为了提高系统的稳定性,让系统的可用性更高。提高架构的性能咱们先来看看,提高系统性能的常用技术。缓存系统。加入缓存系统,可以有.
原创
发布博客 2021.04.20 ·
124 阅读 ·
1 点赞 ·
0 评论

Java数值计算精度、舍入和溢出问题

1. “危险”的 Double 先从简单的反直觉的四则运算看起。对几个简单的浮点数进行加减乘除运算System.out.println(0.1+0.2);System.out.println(1.0-0.8);System.out.println(4.015*100);System.out.println(123.3/100);double amount1 = 2.15;double amount2 = 1.10;if (amount1 - amount2 == 1.05) ..
原创
发布博客 2021.03.28 ·
292 阅读 ·
0 点赞 ·
0 评论

线程重用导致用户信息错乱--Threadlocal

线程重用导致用户信息错乱1.业务案例 ThreadLocal 适用于变量在线程间隔离,而在方法或类间共享的场景。如果用户信息的获取比较昂贵(比如从数据库查询用户信息),那么在 ThreadLocal 中缓存数据是比较合适的做法。但为什么会出现用户信息错乱的Bug呢? // imitate saveUserInfo private static final ThreadLocal<Integer> currentUser = ThreadLocal.withInitial.
原创
发布博客 2021.03.24 ·
725 阅读 ·
0 点赞 ·
0 评论

阿里RocketMQ如何解决消息顺序&重复?

分布式消息系统作为实现分布式系统可扩展、可伸缩性的关键组件,需要具有高吞吐量、高可用等特点。而谈到消息系统的设计,就回避不了两个问题: 消息的顺序问题 消息的重复问题 RocketMQ作为阿里开源的一款高性能、高吞吐量的消息中间件,它是怎样来解决这两个问题的?RocketMQ有哪些关键特性?其实现原理是怎样的?关键特性及其实现原理一、顺序消息消息有序指的是可以按照消息的发送顺序来消费。例如:一笔订单产生了 3 条消息,分别是订单创建、订单付款、订单完成。消费时,要按照顺序依次
转载
发布博客 2021.03.16 ·
121 阅读 ·
0 点赞 ·
0 评论

MySQL数据实时同步到Hive的架构与实践

背景在数据仓库建模中,未经任何加工处理的原始业务层数据,我们称之为ODS(Operational Data Store)数据。在互联网企业中,常见的ODS数据有业务日志数据(Log)和业务DB数据(DB)两类。对于业务DB数据来说,从MySQL等关系型数据库的业务数据进行采集,然后导入到Hive中,是进行数据仓库生产的重要环节。如何准确、高效地把MySQL数据同步到Hive中?一般常用的解决方案是批量取数并Load:直连MySQL去Select表中的数据,然后存到本地文件作为中间存储,最后把文件Lo
转载
发布博客 2021.02.25 ·
698 阅读 ·
1 点赞 ·
0 评论

高并发场景--缓存与数据库数据一致性解决方案

一、业务背景在高并发的业务场景下,数据库是相对薄弱的环节,通常用户请求先访问到redis。如下图:业务场景1:从Redis缓存读数据业务场景2:数据库和缓存更新 一般设计数据库和缓存更新,就容易出现缓存(Redis)和数据库(MySQL)间的数据一致性问题。不管是先写MySQL数据库,再删除Redis缓存;还是先删除缓存,再写库,都有可能出现数据不一致的情况。举一个例子:1.如果删除了缓存Redis,还没有来得及写库MySQL,另一个线程就来读...
原创
发布博客 2021.02.23 ·
366 阅读 ·
1 点赞 ·
3 评论

深入理解--ES之倒排索引

正向索引(forward index),反向索引(inverted index)更熟悉的名字是倒排索引。在搜索引擎中每个文件都对应一个文件ID,文件内容被表示为一系列关键词的集合。例如“文档1”经过分词,提取了20个关键词,每个关键词都会记录它在文档中的出现次数和出现位置。得到正向索引的结构如下:“文档1”的ID > 单词1:出现次数,出现位置列表;单词2:出现次数,出现位置列表;…………。“文档2”的ID > 此文档出现的关键词列表。一般是通过key,...
转载
发布博客 2021.01.29 ·
866 阅读 ·
2 点赞 ·
0 评论

深入理解--Threadlocal原理,及可能导致内存泄露

一.原理(1)什么是ThreadLocal变量?ThreadLoal 变量,线程局部变量,ThreadLocal 提供了线程本地的实例,它与普通变量的区别在于,每个使用该变量的线程都会初始化一个完全独立的实例副本。当一个线程结束时,它所使用的所有 ThreadLocal 相对的实例副本都可被回收。总的来说,ThreadLocal 适用于每个线程需要自己独立的实例且该实例需要在多个方法中被使用,也即变量在线程间隔离而在方法或类间共享的场景。(2)ThreadLocal内部数据结构首先 Th
原创
发布博客 2021.01.23 ·
208 阅读 ·
0 点赞 ·
0 评论

【Java进阶】并发编程

1. 概述三种性质 可见性:一个线程对共享变量的修改,另一个线程能立刻看到。缓存可导致可见性问题。 原子性:一个或多个CPU执行操作不被中断。线程切换可导致原子性问题。 有序性:编译器优化可能导致指令顺序发生改变。编译器优化可能导致有序性问题。 三个问题 安全性问题:线程安全 活跃性问题:死锁、活锁、饥饿 性能问题: 使用无锁结构:TLS,Copy-On-Write,乐观锁;Java的原子类,Disruptor无锁队列 减少锁的持有时间:让锁细粒度。如Concurr
转载
发布博客 2021.01.13 ·
56 阅读 ·
0 点赞 ·
0 评论

RBG转16进制

颜色转换function showRGB(f) {red = f.red.value;green = f.green.value;blue = f.blue.value;var hexarray= new Array(256);hexarray[0]="00"; hexarray[1]="01"; hexarray
原创
发布博客 2017.08.07 ·
927 阅读 ·
1 点赞 ·
0 评论

52条SQL语句性能优化策略

本文会提到 52 条 SQL 语句性能优化策略。1、对查询进行优化,应尽量避免全表扫描,首先应考虑在 WHERE 及 ORDER BY 涉及的列上建立索引。2、应尽量避免在WHERE子句中对字段进行NULL值判断,创建表时 NULL 是默认值,但大多数时候应该使用 NOT NULL,或者使用一个特殊的值,如 0,-1 作为默认值。3、应尽量避免在WHERE子句中使用 != 或 <> 操作符。MySQL 只有对以下操作符才使用索引:<,<=,=...
转载
发布博客 2020.12.29 ·
67 阅读 ·
1 点赞 ·
0 评论

总结Minor GC、Full GC触发条件

GC,即就是Java垃圾回收机制。目前主流的JVM(HotSpot)采用的是分代收集算法。与C++不同的是,Java采用的是类似于树形结构的可达性分析法来判断对象是否还存在引用。即:从gcroot开始,把所有可以搜索得到的对象标记为存活对象。GC机制要准确理解Java的垃圾回收机制,就要从:“什么时候”,“对什么东西”,“做了什么”三个方面来具体分析。第一:“什么时候”即就是GC触发的条件。GC触发的条件有两种。(1)程序调用System.gc时可以触发(会建议JVM进行垃圾回收,不代表一定会进
转载
发布博客 2020.12.18 ·
279 阅读 ·
0 点赞 ·
2 评论

深入理解RocketMQ事务源码--TransactionMQProducer、TransactionListener

前言上篇文章,介绍了RocketMQ消息类型支持事务消息,常见用在分布式系统中,保证数据的一致性。接下来一起去走进 TransactionMQProducer、TransactionListener俩个核心类
原创
发布博客 2020.12.16 ·
2817 阅读 ·
1 点赞 ·
1 评论

深入理解RocketMQ--基础知识

1.简介 消息队列RocketMQ版是阿里云基于Apache RocketMQ构建的低延迟、高并发、高可用、高可靠的分布式消息中间件,可为分布式应用系统提供异步解耦和削峰填谷的能力。2.核心概念nameserver:主要管理Broker、路由信息管理Broker,接受来自Broker集群发送的注册,以及提供心跳机制来检查Broker是否还存活。 管理路由信息,每一个NameServer都存储有路由信息和队列信息,提供给Producer和Consumer查询broker:主要负责...
原创
发布博客 2020.12.16 ·
215 阅读 ·
0 点赞 ·
0 评论

深入理解RocketMQ--事务消息

消息队列RocketMQ版提供的分布式事务消息适用于所有对数据最终一致性有强需求的场景。本文介绍消息队列RocketMQ版事务消息的概念、优势、典型场景、交互流程以及使用过程中的注意事项。概念介绍事务消息:消息队列RocketMQ版提供类似X或Open XA的分布式事务功能,通过消息队列RocketMQ版事务消息能达到分布式事务的最终一致。 半事务消息:暂不能投递的消息,发送方已经成功地将消息发送到了消息队列RocketMQ版服务端,但是服务端未收到生产者对该消息的二次确认,此时该消息被标记成“暂
原创
发布博客 2020.12.16 ·
190 阅读 ·
0 点赞 ·
0 评论
加载更多