
java
文章平均质量分 89
干货很多的大飞
前美团项目高级研发工程师,北京道隆华尔项目负责人
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
如何永不迁移数据和避免热点? 根据服务器指标分配数据量(揭秘篇)
目录前言 方案思路 方案设计 核心主流程 如何扩容 系统设计前言上一篇文章你知道怎么分库分表吗?如何做到永不迁移数据和避免热点吗?,我们介绍了常规的分库分表的方案,各有优缺点:hash取模方案:没有热点问题,但需要数据迁移。range范围方案:不需要数据迁移,但有热点问题。那有什么方案可以做到两者的优点结合呢?其实还有一个现实需求,能否根据服务器的性能以及存储高低,适当均匀调整存储呢?方案思路hash是可以解决数据均匀的问题,range可以解决数据迁移..原创 2021-03-24 14:55:59 · 328 阅读 · 0 评论 -
你知道怎么分库分表吗?如何做到永不迁移数据和避免热点吗?
目录前言 分库分表方案 hash取模方案 range范围方案 总结前言中大型项目中,一旦遇到数据量比较大,小伙伴应该都知道就应该对数据进行拆分了。有垂直和水平两种。垂直拆分比较简单,也就是本来一个数据库,数据量大之后,从业务角度进行拆分多个库。如下图,独立的拆分出订单库 和 用户库。水平拆分的概念,是同一个业务数据量大之后,进行水平拆分。上图中订单数据达到了4000万,我们也知道mysql单表存储量推荐是百万级,如果不进行处理,mysql单表数据太大,会导致..原创 2021-03-24 14:54:52 · 298 阅读 · 0 评论 -
使用Redis,你必须知道的21个注意要点
前言最近在学习Redis相关知识,看了阿里的redis开发规范,以及Redis开发与运维这本书。分使用规范、有坑的命令、项目实战操作、运维配置四个方向。整理了使用Redis的21个注意点,希望对大家有帮助,一起学习哈本文来源:公众号——捡田螺的小男孩1、Redis的使用规范1.1、 key的规范要点我们设计Redis的key的时候,要注意以下这几个点:以业务名为key前缀,用冒号隔开,以防止key冲突覆盖。如,live:rank:1 确保key的语义清晰的情况下,ke.原创 2021-03-23 14:41:23 · 444 阅读 · 0 评论 -
爬虫大佬,把他总结的正则表达式使用给我了
作者:小傅哥博客:https://bugstack.cn一、前言编程总在实践中出结果!正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。正则引擎主要可以分为两大类:一种是DFA,一种是NFA。这两种引擎都有了很久的历史(至今二十多年),当中也有这两种引擎产生了很多变体!于是POSIX的出台规避了不必要变体的继续产生。这样一来,.原创 2021-03-22 17:57:28 · 253 阅读 · 0 评论 -
Java线程的那些状态
Java线程(或者说计算机线程),是有一些状态来表示当前线程运行信息的,可以通过jsatck命令来查看Java进程中线程函数栈信息,其中就包括了Java线程状态。在分析Java线程状态之前,我们先来看下进程、线程、协程这些概念之间的区别:进程:运行时程序的抽象,系统资源管理的基本单位; 线程:一个进程可以包含多个线程,CPU调度执行的基本单位,Linux下称线程为轻量级进程; 协程:一种比线程更加轻量级的存在,线程是由操作系统内核负责管理调度的,而协程一般是由用户进程负责调度管理,多个协程之间可原创 2021-03-20 18:11:27 · 234 阅读 · 0 评论 -
Redis 高可用篇:你管这叫主从架构数据同步原理?
高可用有两个含义:一是数据尽量不丢失,二是服务尽可能提供服务。AOF 和 RDB 保证了数据持久化尽量不丢失,而主从复制就是增加副本,一份数据保存到多个实例上。即使有一个实例宕机,其他实例依然可以提供服务。本篇主要带大家全方位吃透Redis 高可用技术解决方案之一主从复制架构。本篇硬核,建议收藏慢慢品味,我相信读者朋友会有一个质的提升。如有错误还望纠正,谢谢。关注「码哥字节」设置「星标」第一时间接收优质文章,谢谢读者的支持。核心知识点开篇寄语问题 = 机会。遇到问题的时候,内心其..原创 2021-03-19 16:50:30 · 319 阅读 · 0 评论 -
Redis 日志篇:无畏宕机快速恢复的杀手锏
原文出自:公众号 码哥字节原文链接:https://mp.weixin.qq.com/s/R-jZnjGNbOOL6zOtVd9omg本篇将围绕如下几点展开:宕机后,如何快速恢复? 宕机了,Redis 如何避免数据丢失? 什么是 RDB 内存快照? AOF 日志实现机制 什么是 写时复制技术? ….涉及的知识点如图所示:Redis 日志篇:无畏宕机与快速恢复的杀手锏Redis 全景图全景图可以围绕两个维度展开,分别是:应用维度:缓存使用、集群运用、数据..转载 2021-03-18 15:19:50 · 293 阅读 · 0 评论 -
女朋友:你再深一点,这还不够,你把微服务给我讲仔细了再睡
前言身为一名积极好学的前端女朋友还是会经常问我,微服务那么多理念,你跟我讲完,我就忘了,可以再给我讲讲它的思想到底是啷个回事嘛~看在她这么刻苦奋进的情况下,加之我们公司也做了许多微服务的项目,对此还算有所研究,今天就深层次的讲讲微服务吧!本文来源:博客园本文作者:浅羽技术原文链接:https://www.cnblogs.com/qianyueric/p/14548566.html作者微信公众号:「 浅羽的IT小屋 」单体架构概念单体架构也称之为单体系统或者是单.原创 2021-03-17 14:34:46 · 6102 阅读 · 0 评论 -
Java树结构实际应用(平衡二叉树/AVL树)
平衡二叉树(AVL 树)1 看一个案例(说明二叉排序树可能的问题)给你一个数列{1,2,3,4,5,6},要求创建一颗二叉排序树(BST), 并分析问题所在.左边 BST 存在的问题分析:1) 左子树全部为空,从形式上看,更像一个单链表.2) 插入速度没有影响3) 查询速度明显降低(因为需要依次比较), 不能发挥 BST的优势,因为每次还需要比较左子树,其查询速度比单链表还慢4) 解决方案-平衡二叉树(AVL)2 基本介绍1) 平衡二叉树也叫平衡二叉搜索树(Sel原创 2021-03-16 17:57:14 · 506 阅读 · 0 评论 -
不重复造轮子都是骗小孩的,教你手撸SpringBoot脚手架
前言虽然市面上已经有了大量成熟稳定用于支撑系统建设的轮子,也就是服务、框架、组件、工具等,但对于一些较大型的公司来说,这些轮子可能并不一定能很好的支撑起系统需要承载的服务体量,这个时候就需要自建一些轮子。本文来源:bugstack虫洞栈(微信公众号)作者:小傅哥目录一、前言 二、什么是脚手架呢? 三、谁提供了脚手架?1、Spring 官网脚手架2、阿里云脚手架 四、手撸一个脚手架!1. 工程框架2. 应用层定义生成类接口3. FTL 模板定义4. FTL 生成文件5. 创建框架原创 2021-03-15 18:00:30 · 615 阅读 · 0 评论 -
阿里p8技术官私传:MyBatis源码全解笔记,避坑细节拉满
摘要MyBatis是一款优秀的持久层框架,它支持自定义SQL,存储过程以及高级映射,越来越多的企业已经将MyBatis使用到了正式的生产环境,而国内Mybatis流行的原因就在于绝大部分项目都是面向表结构编程的,把Java对象仅当成数据容器,查询和模型变更都设计在一张表上,所谓业务逻辑就是一堆增删改查的sql集合,Mybatis用起来非常方便。其实,学好MyBatis能很好地帮助我们解决数据层开发的问题;其次MyBatis源码中有很多设计模式和并发编程的技巧,学好源码对提升编码能力有很大的帮助;最后原创 2021-03-13 22:28:18 · 408 阅读 · 0 评论 -
都别搞错了,最正确的回答就是Redis有7种数据类型
前言面试官:Redis 有哪几种数据类型?存储原理是什么?具体适应哪些应用场景?是否历历在目,这是 Redis 关于数据类型的面试 3 连问,是除“Redis 持续化”外的最常见 Redis 考题。查谷歌众说纷纭说法一:5 种Redis 支持 5 种数据类型:String(字符串) List(列表) Set(集合) Sorted Set(有序集合) Hash(哈希)这也是被行业普遍认可,最最常见的答案。至于这 5 种类型的详解,网上已经铺天盖地,这里不打算重复探讨,请读者自原创 2021-03-12 17:53:27 · 806 阅读 · 0 评论 -
1314页“金三银四宝典”,记录32轮大厂面试,全是真题重点
心里要有B数金三银四来了,这意味着跳槽面试到了高峰期,但我个人认为面试只是一时的,工作、学习,才是长久坚持的。很多人面试结果不理想多半也是来自于自我学习能力的不足和工作内容的单一以及业务体量小导致的。你是否也会有下面的疑问?好像面试越来越难?招聘一个合格的研发有多难?对于企业来说,筛选简历到初面通过的不足 10%。这里面很多人连简历都写不好,面试时也经常回答不到点上,技术栈广度不够深度不足,项目经验缺乏,没有解决复杂场景的经验等等。但也同样有很多优秀的,手里有多个 offer 最后流失。对于原创 2021-03-11 22:36:22 · 422 阅读 · 0 评论 -
Java很难上手精通吗?不,是你没找到这些练手项目
经常有读者在微信上问我:在学编程的过程中,看了不少书、视频课程,但是看完、听完之后感觉还是不会编程,想找一些项目来练手,但是不知道去哪儿找?类似的问题,有不少读者问,估计是大部分人的困惑。练手项目那肯定是去github找啊!之前我在知乎上回答过这种问题,分享了一些 github 的项目,点赞还不错。所以,这次又重新整理了一下,分享出来。以下项目排名不分先后:1. litemallgithub.com/linlinjava/…Star: 15.5k这是一个小商城原创 2021-03-10 17:52:29 · 293 阅读 · 0 评论 -
“夺笋”啊,你居然管这玩意叫分布式架构?
前言编程是一门艺术,它的魅力在于创造。65 哥已经工作两年了,一直做着简单重复的编程工作,活活熬成了一个只会 CRUD 的打工 boy。65 哥:总是听大佬讲分布式分布式,什么才是分布式系统呢?分布式系统是一个硬件或软件系统分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体,就好像是一个系统似的。系统拥有多种通用的物理和逻辑资源,可以动态的分配任务,分散的物理和逻辑资源通过计算机网络实现信息交换。原创 2021-03-07 21:14:18 · 286 阅读 · 0 评论 -
这波我不吹,Linux上配置git自动登录验证,看完我就会了
作者:@apocelipes出处:https://www.cnblogs.com/apocelipes/p/14491762.html记录一下配置git操作远程仓库时的自动验证,效果如下图:本文介绍的是Linux下的配置。Windows上默认已经启用凭证存储和自动验证(依靠wincred实现,以后会使用GCM-Core)。准备工作首先需要Linux系统上安装了dbus或者是gnome-keyring(依赖于dbus),如果可能的话需要安装libsecret,这是一个更现代的用于凭.原创 2021-03-06 22:14:53 · 635 阅读 · 0 评论 -
老生常谈,TCP三次握手、四次挥手过程及原理,这篇讲得很通俗
原创文章出自公众号:「码农富哥」TCP 协议简述TCP 提供面向有连接的通信传输,面向有连接是指在传送数据之前必须先建立连接,数据传送完成后要释放连接。无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在TCP/IP协议中,TCP协议提供可靠的连接服务,连接是通过三次握手进行初始化的。同时由于TCP协议是一种面向连接的、可靠的、基于字节流的运输层通信协议,TCP是全双工模式,所以需要四次挥手关闭连接。TCP包首部网络中传输的数据包由两部分组成:一部分是协议所要用到的首部.原创 2021-03-05 16:57:47 · 434 阅读 · 0 评论 -
三面遭阿里新微服务框架暴锤,含恨吃透这份手抄本笔记,终入阿里
近几年以 Netfilix Eureka 为代表的 Spring Cloud 核心中间件纷纷停止更新,许多组件设计老旧,在性能上已无法满足互联网大厂的要求。好在国内互联网企业的老大哥阿里,推出了 SpringCloud 的完美替代品—— SpringCloud Alibaba。同 Spring Cloud 一样,Spring Cloud Alibaba 也是一套微服务解决方案,包含开发分布式应用微服务的必需组件,方便开发者通过Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。.原创 2021-03-04 21:48:37 · 304 阅读 · 1 评论 -
冷淡的面试官,让我手写LRU缓存淘汰算法打发时间
背景在我们这个日益追求高效的世界,我们对任何事情的等待都显得十分的浮躁,网页页面刷新不出来,好烦,电脑打开运行程序慢,又是好烦!那怎么办,技术的产生不就是我们所服务么,今天我们就聊一聊缓存这个技术,并使用我们熟知的数据结构--用链表实现LRU缓存淘汰算法。在学习如何使用链表实现LRU缓存淘汰算法前,我们先提出几个问题,大家好好思考下,问题如下:什么是缓存,缓存的作用? 缓存的淘汰策略有哪些? 如何使用链表实现LRU缓存淘汰算法,有什么特点,如何优化?好了,我们带着上面的问题来学进行下面的学原创 2021-03-03 20:57:51 · 448 阅读 · 1 评论 -
微服务框架相关技术合集整理
微服务整体框架开发前后台分离:前台与后台之间,通过Restful风格接口通信(HTTP协议) 内部服务:Dubbo( RPC框架) 外部服务:SpringCloud Zuul(提供Restful API接口) 在这里插入图片描述 微服务应用开发 API Gateway API Gateway:网关,统一应用请求接口.API 网关在微服务们的最前端,让 API 网关变成由应用所发起的每个请求的入口,简化客户端实现和微服务应用程序间的沟通方式。API Gateway两转载 2021-03-03 16:27:17 · 601 阅读 · 2 评论 -
我有点不喜欢分布式中的TCC模式了,求面试官别再问了
前言分布式事务的解决方案中,TCC是比较经典的模式,使用2阶段提交的思想来实现分布式事务的最终一致。但最近我有点不喜欢TCC模式了。本文转载自微信公众号「程序员jinjunzhu」,作者jinjunzhu 。TCC回顾TCC到底是什么呢?以经典的电商系统来说,客户购买一件商品,系统需要3个服务来协作完成。订单服务增加订单,库存服务扣减库存,账户服务扣减金额。如下图:如果我们用上图的方式,每个服务各自提交事务,很有可能会出现数据不一致的情况。因为3个服务使用不同数据库,并不是一原创 2021-03-02 17:17:11 · 326 阅读 · 0 评论 -
Spring Boot 搭建ELK,这才是正确看日志的方式
为什么要用ELKELK实际上是三个工具,Elastricsearch + Logstash + Kibana,通过ELK,用来收集日志还有进行日志分析,最后通过可视化UI进行展示。一开始业务量比较小的时候,通过简单的SLF4J+Logger在服务器打印日志,通过grep进行简单查询,但是随着业务量增加,数据量也会不断增加,所以使用ELK可以进行大数量的日志收集和分析简单画了一下架构图在环境配置中,主要介绍Mac和Linux配置,Windows系统大致相同,当然,前提是大家都安装了JDK.原创 2021-03-01 21:36:33 · 844 阅读 · 0 评论 -
新鲜出炉,深入讲解Java反射的底层原理,这篇算讲得不错了
本文来源:https://segmentfault.com/a/1190000039302149?utm_source=tuicool&utm_medium=referral反射Java代码和Java文件Java代码基本格式 1. Java代码都在类内或者接口内 2. class 类名 { 成员变量 构造方法 成员方法 Annotation 注解 .原创 2021-02-28 22:15:02 · 342 阅读 · 0 评论 -
花一个周末,撸了SpringCloud Ribbon核心原理
前言继 SpringCloud Feign 之后的第二篇分布式框架文章,同样秉承单周末一个 SpringCloud 组件的大目标为原则。在平常使用 SpringCloud 中,一般会使用 Feign,因为 Feign 内部集成了 Ribbon。但是 Ribbon 又是一个不可忽视的知识点,并且比 Feign 要难很多。列举文章大纲主题。如何获取注册中心服务实例 非健康服务实例如何下线 Ribbon 底层原理实现 自定义 Ribbon 负载均衡策略文章使用 SpringCloud Ribbon原创 2021-02-27 15:05:35 · 285 阅读 · 0 评论 -
细!首席技术官在线优化Kubernetes上的JVM预热问题
前言JVM 预热(warm-up)是一个臭名昭著的问题。尽管基于JVM的应用程序有着出色的性能,但是需要一个预热的过程,在预热期间,性能不是最佳的。它可以归因于即时(JIT)编译之类的事情,它通过收集使用情况配置文件信息来优化常用代码。最终的负面影响是,与平均时间相比,在预热期间收到的请求将具有非常高的响应时间。在容器化,高吞吐量,频繁部署和自动伸缩的环境中,此问题可能会加剧。在这篇文章中,我将讨论我们在Kubernetes集群中使用Java服务关于JVM预热问题的经验和方法。创世记几年前,原创 2021-02-26 11:53:46 · 417 阅读 · 0 评论 -
奇怪!我把SpringBoot应用部署到K8S上,咋用着像Docker?
想要把一个复杂的微服务项目部署到K8S上去,首先我们得学会把单个SpringBoot应用部署上去。今天我们来讲下如何把SpringBoot应用部署到K8S上去,和使用Docker Compose部署非常类似,希望对大家有所帮助!学前准备学习本文需要有一些K8S基础,对K8S还不了解的朋友可以参考如下的文章。推送镜像到Docker Hub之前我们都是自建的镜像仓库,这次我们换种方式,把镜像上传到Docker Hub中去。首先我们得注册个Docker Hub的账号,Docker .原创 2021-02-26 10:20:02 · 299 阅读 · 0 评论 -
我身边的高T,问了Java面试者这样的问题
本文地址:https://segmentfault.com/a/1190000039248405本文作者:京东科技开发者前言今天来分享一个京东面试真题,这也是我前阵子听我工位旁边高T(高,实在是高)面试候选人的时候问的一个问题,他问,你能说说 MySQL的事务吗?MVCC有了解吗?话不多说,本文就深度解析一下MySQL事务及MVCC的实现原理。事务定义及四大特性事务是什么?事务的四大特性(简称ACID):原子性(Atomicity):一个事务是一个不可分割的工作单位,事务中包.原创 2021-02-25 17:10:48 · 249 阅读 · 0 评论 -
全网最深入的RocketMQ Consumer 学习笔记
消费模式消息消费有两种模式:1、并发消费并发消费是默认的处理方法,一个消费者使用线程池技术,可以并发消费多条消息,提升机器的资源利用率。默认配置是 20 个线程,所以一台机器默认情况下,同一瞬间可以消费 20 个消息。其中 ConsumeMessageConcurrentlyService 的构造函数如下:publicConsumeMessageConcurrentlyService(DefaultMQPushConsumerImpldefaultMQPushConsum...原创 2021-02-24 17:29:24 · 604 阅读 · 0 评论 -
阿里Dubbo疯狂更新,关Spring Cloud什么事?
最近,开源社区发生了一件大事,那个全国 Java 开发者使用最广的开源服务框架 Dubbo 低调重启维护,并且 3 个月连续发布了 4 个维护版本。我上次在写放弃Dubbo,选择最流行的Spring Cloud微服务架构实践与经验总结这篇文章的时候,就有很多的网友给我留言说,Dubbo 又开始更新了。我当然是清楚的,我也一直在关注着 Dubbo 的走向,在几个月前技术圈里面就有一个消息说是 Dubbo 又开始更新了,大家议论纷纷不知真伪。我还专门跑到 GitHub 上面进行了留言询问,最后在 Dubbo原创 2021-02-22 17:35:59 · 385 阅读 · 0 评论 -
阿里技术官珍藏“JVM全优笔记”,细节满分,吃透写精通没问题
摘要Tips:这份笔记是连莫枢(JVM专家)大佬都点赞推荐的,还不赶紧珍藏一份回头好好啃?JVM对实际简单开发的来说关联的还是不多,很少有人愿意花时间去学习JVM,理解什么是JVM,弄清JVM的工作原理。其实我个人认为这块是非常有必要认真学习的,对于中高级开发人员来说JVM就是Java基石,学习JVM也是为了帮助你更加深入的了解Java以及更好的解决线上排查问题。tip:如果想要面试阿里等大厂,一定一定要学好JVM我随便挑选了几个阿里面试常问的JVM底层知识,大家可以看看能回答上原创 2021-02-22 16:19:42 · 309 阅读 · 0 评论 -
阿里技术官设计的一个亿级消息量的IM系统,堪称精彩
前言本文不会给出一套通用的IM方案,也不会评判某种架构的好坏,而是讨论设计IM系统的常见难题跟业界的解决方案。因为也没有所谓的通用方案,不同的解决方案都有其优缺点,只有最满足业务需要的系统才是一个好的系统。而且,在有限的人力、物力跟时间资源下,通常需要做出很多权衡,此时,一个能够快速迭代、方便扩展的系统才是一个好的系统。IM核心概念用户:系统的使用者消息:是指用户之间的沟通内容。通常在IM系统中,消息会有以下几类:文本消息、表情消息、图片消息、视频消息、文件消息等等会话:通常指两个用户之原创 2021-02-21 21:34:03 · 990 阅读 · 0 评论 -
面试官:Elasticsearch如何设计索引?满分答案来了
本文为博客园作者所写: 一寸HUI,个人博客地址:https://www.cnblogs.com/zsql/最近在做es相关的工作,所以记录下自己的一些想法,可能很多方面不会很全面,但是基本都是经过验证的。本文主要是围绕着思考,从多个方面进行考虑,怎么设计索引比较好,直接进入主题吧,本文的es版本为elasticsearch7.8.1。一、索引设计的重要性首先索引创建后,索引的分片只能通过_split和_shrink接口对其进行成倍的增加和缩减,主要是因为es的数据是通过_routing分配.原创 2021-02-21 20:54:58 · 1490 阅读 · 0 评论 -
牛气冲天!BAT官方推送Java技术经验,当属新年第一干货
新年牛气冲天新的一年开始啦!希望阅读本文的人春风得意,点赞的人爱情甜蜜,转发的人大吉大利,评论的人依然好运气,祝大家牛年大吉,牛气冲天!话又说回来,我自认为对于我们这个行业的从业者来说,进入互联网大厂才算是对职业生涯的一种肯定,我相信这也是绝大多数同行的目标。如果想一直在这个行业发展的话,我建议大家以大厂的技术来要求自己,全方面提高自己的职业竞争力。因此,我想在这里跟大家分享BAT官方推送的Java技术经验,对你来说可以更好地了解各家技术侧重点在哪里,也能帮助你在面试时有针对性的梳理知识,请大家原创 2021-02-20 14:20:05 · 383 阅读 · 0 评论 -
SpringCloud微服务架构中分布式事务解决方案,讲烂了
说明Java生鲜电商平台中由于采用了微服务架构进行业务的处理,买家,卖家,配送,销售,供应商等进行服务化,但是不可避免存在分布式事务的问题。业界有很多的解决方案,对此我相信大家都百度一下子就有很多,但是我巨人大哥想说的是:微服务架构中应当尽量避免分布式事务。下面就是来讨论下,分布式事务中主要聚焦于强一致性和最终一致性的解决方案。微服务的发展微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇,很多互联网行原创 2021-02-19 22:21:14 · 536 阅读 · 0 评论 -
面试官:高并发下 HashMap 的死循环是怎么形成的?
代码回顾我常常听别人说,不要在并发情况下使用HashMap,可能会出现死循环,这个死循环是怎么形成的呢?我们都知道,HashMap的底层是由数组加链表来实现的当往HashMap中put一个键值对时,如果HashMap中的键值对数量 size 大于或等于阈值(threshold) 并且null != table[bucketIndex] 时会进行扩容bucketIndex为该键值对最后被散列到hash表table的位置比如 table的初始容量为4,加载因子为0.75,此原创 2021-02-07 15:57:13 · 452 阅读 · 0 评论 -
SpringCloud微服务架构中分布式事务解决方案,一次性给你说到烂
说明Java生鲜电商平台中由于采用了微服务架构进行业务的处理,买家,卖家,配送,销售,供应商等进行服务化,但是不可避免存在分布式事务的问题。业界有很多的解决方案,对此我相信大家都百度一下子就有很多,但是我巨人大哥想说的是:微服务架构中应当尽量避免分布式事务。下面就是来讨论下,分布式事务中主要聚焦于强一致性和最终一致性的解决方案。微服务的发展微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇,很多互联网行原创 2021-02-06 16:39:01 · 1013 阅读 · 0 评论 -
尴尬!面试讲不清MySQL索引底层,面试官让回家等通知
本文来源:https://mp.weixin.qq.com/s/TZvHp-lFON8IXYggKWUAHw作者:咔咔前言假如你去面试,面试官让你聊一下对索引的理解,然而你对索引的理解仅限于,检索数据就是快,是一种数据结构这个层面,那你就只能回家等通知了。为了避免这种尴尬的事情发生,咔咔用时两天将索引的内容在自己理解的范围内进行了整理,如有整理不全面的地方可以在评论区进行补充和提建议。MySQL 索引到底是什么相信大多数伙伴都买过技术类的书籍,看完没看完不知道,但是目录肯定看的次.转载 2021-02-06 14:21:51 · 279 阅读 · 0 评论 -
SpringBoot Admin集成诊断利器Arthas实践
前言Arthas 是 Alibaba 开源的 Java 诊断工具,具有实时查看系统的运行状况;查看函数调用参数、返回值和异常;在线热更新代码;秒解决类冲突问题;定位类加载路径;生成热点;通过网页诊断线上应用。如今在各大厂都有广泛应用,也延伸出很多产品。这里将介绍如何将 Arthas 集成进 Spring Boot 监控平台中。SpringBoot Admin为了方便,SpringBoot Admin 简称为 SBA(版本:1.5.x)。1.5 版本的 SBA 如果要开发插件比较麻烦,需要原创 2021-02-04 21:12:21 · 500 阅读 · 0 评论 -
高性能缓存 Caffeine 原理及实战
一、简介Caffeine 是基于Java 8 开发的、提供了近乎最佳命中率的高性能本地缓存组件,Spring5 开始不再支持 Guava Cache,改为使用 Caffeine。下面是Caffeine 官方测试报告。由上面三幅图可见:不管在并发读、并发写还是并发读写的场景下,Caffeine 的性能都大幅领先于其他本地开源缓存组件。本文先介绍 Caffeine 实现原理,再讲解如何在项目中使用 Caffeine 。二、Caffeine 原理2.1 淘汰算法2.1...原创 2021-02-03 21:22:30 · 851 阅读 · 0 评论 -
布隆过滤器四两拨千斤的作用真的牛!绝对干货分享
布隆过滤器布隆过滤器,在合理地使用场景中具有四两拨千斤的作用,由于使用场景是在大量数据的场景下,所以这东西类似于秒杀,虽然没有真的落地用过,但是也要说的头头是道。常见于面试环节:比如大集合中重复数据的判断、缓存穿透问题等。先分享一个布隆过滤器在腾讯短视频产品中的真实案例:https://toutiao.io/posts/mtrvsx/preview那么布隆过滤器是怎么做到上面的这些需求的呢?首先,布隆过滤器并不存储原始数据,因为它的功能只是针对某个元素,告诉你该元素是否存在.原创 2021-02-02 22:03:55 · 362 阅读 · 0 评论