自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(92)
  • 收藏
  • 关注

原创 被面试官质疑分布式系统的项目经验,当场给他把分布式事务掰扯清楚

分布式事务为什么需要分布式事务随着互联网的快速发展,业务越来越复杂,一个完整的业务往往需要调用多个子服务,涉及的数据也越来越多。传统的系统难以支撑,就出现了分布式系统,而分布式系统又带来了数据一致性的问题,从而产生了分布式事务。什么叫分布式事务分布式条件下,多个节点操作的整体事务一致性。特别是在微服务场景下,业务A和业务B关联,如果事务A成功了,事务B失败了。由于跨系统,事务B...

2021-08-04 15:24:32 227

原创 太强了!Github大佬从零实现一个操作系统内核(附源码)!毕设/项目经验不愁了~...

计算机的三座大山:编译原理,计算机网络和操作系统。说实话,小编当年上大学的时候,也觉得操作系统挺难的,但是这门课对于大部分学生来说有很重要。因为操作系统涉及的很多问题,不光考研要考,还在应届生技术面试中也会经常被问到,为啥面试官会经常性问,因为操作系统的部分实现原理也会应用到你工作中维护的系统中,如果你对这块很了解,那么解决系统中的一些奇葩bug,也相对容易的多。特别是当你工作的时候,就会觉得...

2021-07-30 15:47:28 1455

原创 推荐一款国内首个开源全链路压测平台

前不久国内知名的系统高可用专家数列科技宣布开源旗下核心产品能力,对外开放生产全链路压测平台产品的源代码,并正式命名为:Takin。目前,该项目已在Github上发布开源,作为国内首款开源的全链路压测平台,Takin的开源将为更多企业提供超低门槛、超低成本、超高效率的性能保障能力。1. 什么是生产环境全链路压测?全链路压测简单来说,就是基于实际的生产业务场景、系统环境,模拟海量的用户请求和数...

2021-07-30 14:23:52 321

原创 【SpringBoot】多种环境自由切换,只需要配置文件这么写

yml配置文件很好用,但是实际生产中会有很多问题。测试是一套配置,生产是一套配置;不同人开发不同的模块,共用一个yml文件容易发生冲突;本地开发需要本地化配置调试,本节咱们就把这些头疼的问题统统解决掉。首先我们建立一个工程,将application.properties文件后缀改成application.yml。name: 张三lesson: springbootdesc: $...

2021-07-29 20:29:43 164

原创 Redis中一个String类型引发的惨案

Redis中一个String类型引发的惨案曾经看到这么一个案例,有一个团队需要开发一个图片存储系统,要求这个系统能快速记录图片ID和图片存储对象ID,同时还需要能够根据图片的ID快速找到图片存储对象ID。我们假设用10位数来表示图片ID和图片存储对象ID,例如图片的ID为1101021043,它所对应的图片存储对象的ID为2301010051,可以看到图片ID和图片存储ID正好是一一对...

2021-07-24 16:07:44 156

原创 三分钟掌握共享内存 & Actor并发模型

共享内存面向对象编程中,万物都是对象,数据+行为=对象;多核时代,可并行多个线程,但是受限于资源对象,线程之间存在对共享内存的抢占/等待,实质是多线程调用对象的行为方法,这涉及#线程安全#线程同步#。假如现在有一个任务,找100000以内的素数的个数,如果用共享内存的方法,代码如下:可以看到,这些线程共享了sum变量,对sum做sum++操作时必须上锁。using System...

2021-07-21 13:55:08 187

原创 JSON 字符串是如何被解析的?JsonParser 了解一下

版本约定Jackson 版本:2.11.0Spring Framework 版本:5.2.6.RELEASESpring Boot 版本:2.3.0.RELEASE小贴士:截止到本文,本系列前面所有示例都只仅仅导入jackson-core而已,后续若要新增 jar 包我会额外说明,否则相同什么叫读 JSON?就是把一个 JSON 字符串 解析为对象 or 树模型嘛,因此也称...

2020-08-28 11:13:07 2493

原创 Docker服务开放了这个端口,服务器分分钟变肉机!

之前有很多朋友提过,当使用docker-maven-plugin打包SpringBoot应用的Docker镜像时,服务器需要开放2375端口。由于开放了端口没有做任何安全保护,会引起安全漏洞,被人入侵、挖矿、CPU飙升这些情况都有发生,今天我们来聊聊如何解决这个问题。问题产生的原因首先我们要明白问题产生的原因,才能更好地解决问题!Docker为了实现集群管理,提供了远程管理的端口。Doc...

2020-08-21 11:37:56 383

原创 老板:再用Log4j就收拾东西回家吧!

之前一段时间,为我们发现的一个SaaS应用程序会间歇性地卡顿、变慢,因为很长时间都没有定位到原因,所以解决的办法就只能是重启。这个现象和之前我们遇到的程序变得卡顿不太一样,因为我们发现这个应用程序不仅在高流量期间时会变慢,有时在低流量时期也会变慢。所以这令大家都很奇怪。这类应用程序的变慢,重新启动之后就可以维持...

2020-08-19 16:01:01 108

原创 用了Dapper之后通篇还是SqlConnection,真的看不下去了

一:背景1. 讲故事前几天看公司一个新项目的底层使用了dapper,大家都知道dapper是一个非常强大的半自动化orm,帮程序员解决了繁琐的mapping问题,用起来非常爽,但我还是遇到了一件非常不爽的事情,如下代码所示:public classUserDAL : BaseDAL { public List<UserModel> GetList() ...

2020-08-09 21:09:22 119

原创 mybatis 插件的原理-责任链和动态代理的体现

责任链设计模式理解起来很简单, 网上找个例子看看即可。mybatis 插件的原理使用的是动态代理和责任链来实现的。1 拦截哪些方法可以通过注解 Intecepts 和 Signature 来进行指定拦截哪些方法。 然而, 并不是说所有的方法都可以拦截的。mybatis 拦截器所拦截的方法, 有如下类型:1\. Executor (update, query, flushStatement...

2020-08-07 21:34:27 100

原创 应届毕业生面试第一句话:工资不到一万免谈,HR:我当时就懵了

现在的社会发展非常迅速,经济变化也特别快,就像去年的猪肉,忽然就从不稀罕吃变成了想吃都吃不起的地步,所以现在很多年轻人,特别是毕业生,在找工作的时候都想直接找一份高薪的岗位,之前小编在网上就看到一位互联网公司的HR发的帖子,下面分享给大家。可以看到,应届生,没有任何工作经验,上来就直接要了1万月薪,恐怕这个价格就算是一些工龄超过10年的老员工都不敢这么要吧,毕竟那些月薪超过1万的都...

2020-08-06 17:09:41 298

原创 10张流程图+部署图,讲透单点登录原理与简单实现!

一、单系统登录机制1、http无状态协议web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求;要限制浏览器请求,必须鉴...

2020-07-24 10:12:44 692 1

原创 SpringBoot + Spring Cloud Consul 服务注册和发现

歪头儿在帝都https://www.cnblogs.com/sword-successful/p/13363977.html什么是ConsulConsul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其它分布式服务注册与发现的方案,Consul 的方案更“一站式”,内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value 存储...

2020-07-23 17:30:55 318

原创 面试官:rm 删除文件空间就释放了吗?

在 Linux,你是不是曾经天真的以为,使用rm删除一个文件,占用的空间就释放了?事情可能不是常常如人意。产生一个指定大小的随机内容文件我们先看一下当前各个挂载目录的空间大小:$ df -h /dev/sda11 454M 280M 147M 66% /boot我这里挑选了其中一个结果展示(你可以选择任一挂载目录),接下来准备在/boot下生成一个文件。首先我们产生一...

2020-07-22 17:02:18 106

原创 超牛的MySQL索引知识点详解,不用再去找别的了

数据库索引,相信大家都不陌生吧。索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。作为辅助查询的工具,合理的设计索引能很大程度上减轻db的查询压力,db我们都知道,是项目最核心也是最薄弱的地方,如果压力太大很容易产生故障,造成难以预计的影响。所以,不管是日常开发还是面试,索引这一块知识体系都是必须掌握的。当然,虽说是必须掌握,但索引的知识...

2020-07-21 13:39:55 118

原创 瑞幸退市,董事长被罢免,但是我并不同情他!

分享作者 l Hollis来源 l Hollis(ID:hollischuang)刚一进入2020年7月,纳斯达克泥石流,瑞·国货之光·幸咖啡即发布公告称发现公司前CEO钱治亚和前COO刘剑,以及部分员工均参与了伪造交易。并且实锤道这是今年3月成立的特别委员会在经过审查了60多名保管人手中的55万份文件,采访了六十多名证人,并且进行了法务会计和数据分析测试后得出的结论。7月...

2020-07-18 20:48:15 330

原创 重磅消息,Redis开源作者宣布不再维护Redis项目!辞职信曝光

Redis 作者 antirez 在博客公布了从 Redis 项目辞职的消息,将不再担任 Redis 项目的领导者和维护者。antirez 选择将 Redis 交给 Redis 社区打理,并邀请到了两位同事 Yossi Gottlieb 和 Oran Agra 继续维护 Redis 项目。而他将成为 Redis Labs 顾问委员会的一员,会为 Redis 的更多发展可能性输出自己...

2020-07-11 22:17:10 252

原创 腾讯大战老干妈,到底是谁输了呢?我笑疯了!

Sayings:今天是2020下半年的第一天,我本来是要写上半年吐槽的。现在我准备先放一放,先来写这个。太牛逼了,宛如百度弱智吧的新闻。腾讯和老干妈昨天中午开始大战,大战了两天不到,腾讯就败了。这一败不要紧,简直为在网上冲浪的大家贡献了一场小品。2020下半年第一个笑话:互联网铁头拥有号称东半球最强法务团南山不败、南山必胜客的腾讯,被骗了。南山不败,...

2020-07-02 15:34:31 417

原创 Lambda初次使用很慢?从JIT到类加载再到实现原理

问题回顾描述的话不多说,直接上图:看到输出结果了吗?为什么第一次和第二次的时间相差如此之多?咱们一起琢磨琢磨,也可以先去看看结论再回过头看分析注:并非仅第二次快,而是除了第一次,之后的每一次都很快给与猜想是否和操作系统预热有关?是否和JIT(即时编译)有关?是否和ClassLoader类加载有关?是否和Lambda有关,并非foreach的问题验证猜想操作...

2020-07-01 17:33:20 216

原创 2020年排名前20的基于SpringBoot搭建的开源项目,帮你快速进行项目搭建!

SpringBoot一直是开发者比较青睐的一款轻量级框架,他不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。现在很多Java系的软件开发都是基于SpringBoot的,这就要求开发人员都要掌握基于SpringBoot的开发。由于SpringBoot体系非常庞大,导致很多人并不能完全掌握如何使用,尤其是涉及分布式相关的开发时,如何和...

2020-06-29 15:04:54 497

原创 为什么老外不愿意用 MyBatis?

来源:知乎@陈龙链接:zhihu.com/question/309662829/answer/579433240Spring 团队的Josh Long自己在Twitter上做了一个调查。1625次投票,样本量不算大,但也能说明问题。和我答案最后的那些调查图表基本一致。我们看一下Google Trends的数据:搜索条件是这样的:World Wide:...

2020-06-28 22:11:01 108

原创 写了个全局变量的bug,被同事们打脸!!!

推荐阅读:我总结了72份面试题,累计3170页,斩获了30+互联网公司offer(含BATJM)2020首战告捷,这份Java面试神技Plus版,让我成功拿到了阿里、京东、字节跳动等大厂offer疫情之下,收到美团电话面试(成功拿下offer),附学习路线+刷题库话说栈长前阵子写了一个功能,测试 0 bug 就上线了,上线后也运行好好的,好多天都没有人反馈bug,超爽。。不出问题还好...

2020-06-15 20:38:30 160

原创 看了这篇,我确定你已经彻底搞懂Git了

推荐阅读:我总结了72份面试题,累计3170页,斩获了30+互联网公司offer(含BATJM)2020首战告捷,这份Java面试神技Plus版,让我成功拿到了阿里、京东、字节跳动等大厂offer疫情之下,收到美团电话面试(成功拿下offer),附学习路线+刷题库版本控制版本控制就是记录项目文件的历史变化。它为我们查阅日志,回退,协作等方面提供了有力的帮助。版本控制一般分为集中化版...

2020-06-09 21:06:14 116

原创 微服务架构带来的分布式单体,更好还是更坏,一念之间

前言微服务架构其实是为了服务可以独立的开发、独立的部署,快速迭代,并且技术多样性。然而我们经常在开发微服务的时候没有弄清楚微服务的边界,导致了一个更大的坑,由单体架构拆分成了微服务单体架构,带来了更大的灾难:开发单体的痛苦一个都没少,面向服务的好处一点没捞着。如果不解决这些问题,随着服务生态系统的增长,情况越来越糟。一、好的微服务架构职责单一,高内聚低耦合...

2020-05-28 14:34:08 574

原创 免费分享一套SpringBoot开发博客系统源码,含完整开发文档和视频教程!

基本信息项目名称:eblog摘要:eblog是一个基于Springboot2.1.2开发的博客学习项目,为了让项目融合更多的知识点,达到学习目的,编写了详细的从0到1开发文档。主要学习包括:自定义Freemarker标签,使用shiro+redis完成了会话共享,redis的zset结构完成本周热议排行榜,t-io+websocket完成即时消息通知和群聊,rabbitmq+elasticse...

2020-05-27 18:03:01 1263

原创 Redis的漏洞利用,原来大佬都是这样操作的

出自:Tide安全团队1、前言Redis相关的漏洞存在很长时间了,仍然存在可以利用的情景,本次整理复现下redis相关的漏洞利用,以便以后遇到能够快速建立利用思路。2、redis介绍redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set()、zset(sorted set –有序)和...

2020-05-26 20:52:46 1919

原创 Java程序员精选高频面试笔试题全家桶,通往BAT必备法宝!《附赠PDF》

作为一名即将求职的程序员,面对一个可能跟近些年非常不同的 2019 年,你的就业机会和风口会出现在哪里?在这种新环境下,工作应该选择大厂还是小公司?已有几年工作经验的老兵,又应该如何保持和提升自身竞争力,转被动为主动?最近这波互联网裁员浪潮下,许多朋友被裁之后几周内陆陆续续找到工作,但也有部分现在还在求职中,其中重要区别就是在于平时是否坚持积累和成长。面对工作,与其选择满不情愿,最后收获痛...

2020-05-22 17:32:16 180

原创 高并发系统下,常见的几种缓存失效问题及解决方案

缓存穿透介绍:当查询一个不存在的数据,此时缓存是不命中的,就会去查询 db,这将导致每次查询这个不存在的数据都要去访问 db,缓存就没有意义了。如果不怀好意的人利用不存在的数据进行攻击,可能导致数据库崩溃解决:查询到的不存在的数据也放入缓存,可以存为 null,并加入短暂的过期时间;但如果别人每次都请求一个不同的 key,会导致大量无用 key 存在 redis 中。在 redis 和...

2020-05-21 16:46:11 464

原创 【已开源】某乎获赞5K+的面试总结,蚂蚁高级工程师的技术笔记,共12W字

疫情结束之后,招聘市场回暖,大规模的扎堆现象必然会增加面试的门槛,竞争会更加激烈,你不努力,别人就会超过你,你就会被淘汰!这段时期好好修炼内功,才是你最应该做的事,为了帮助大家更好地学习,我特意准备了一份大礼,免费送给大家。2020年最新学习资料汇总内容非常全面,从初级到高级、框架、数据库、并发知识、分布式、以及企业的面试真题整理!Java基础篇Java面试,基础乃是重中之重...

2020-05-20 17:53:28 136

原创 Lambda表达式典型案例,你想要的的都在这儿了!!

写在前面不得不说,有些小伙伴的学习热情真高,学完了Lambda表达式的语法,想来几个典型案例再强化下。案例一需求调用Collections.sort()方法,通过定制排序比较两个Employee(先比较年龄,年龄相同按姓名比较),使用Lambda表达式作为参数传递。实现这里,我们先创建一个Employee类,为了满足需求,我们在Employee类中定义了姓名、年龄和工资三个字段,如...

2020-05-19 20:23:11 335

原创 这份4577页的Java面试PDF,让我成功斩获阿里、字节等大厂offer!现开放下载!!!...

我为大家准备了一份超级全面的Java 学习面试笔记,这份电子版笔记涵盖了诸多后端技术栈的面试题和答案,相信可以帮助大家在最短的时间内复习Java后端的大多数技术点和面试题,从而拿到自己心仪的offer。共4577页。整体还是比较清爽的,大家拿到后具体看就知道了。本手册目前为最新版本,内容有以下板块:DeBug调试技巧Dubbo连环炮Git从入门到成神GitHub资源整合...

2020-05-17 20:48:05 616 1

原创 MySQL锁:InnoDB行锁需要避免的坑

前言因为新公司工作中MySQL库经常出现查询慢,锁等待,节点挂掉........等一系列问题。导致每个程序员头都很大,一味抱怨“为什么我就查一条数据这么卡”,"我TM加了索引的啊,怎么还怎么慢"...........我想默默说的是,大部分MySQL出现锁等待,查询奇慢的情况基本都是因为SQL写的不好(有坑),或者数据表设计的不完善。对,不用想!这些所有的坑很大一部分都是自己造成的。那么是什么原...

2020-05-13 17:17:27 763 1

原创 一个奇怪的MySQL慢查询,打懵了一群不懂业务的DBA!

前言最近,开发人员需要定期的删除表里一定时间以前的数据,SQL如下:mysql > delete from testtable WHERE biz_date <= '2017-08-21 00:00:00' AND status = 2 limit 500\G前段时间在优化的时候,我们已经在相应的查询条件上加上了索引,如下:KEY `idx_bizdate_st` (`b...

2020-05-12 21:21:55 103

原创 Mysql 单表适合的最大数据量是多少?如何优化其性能?

Mysql 单表适合的最大数据量是多少?我们说 Mysql 单表适合存储的最大数据量,自然不是说能够存储的最大数据量,如果是说能够存储的最大量,那么,如果你使用自增 ID,最大就可以存储 2^32 或 2^64 条记录了,这是按自增 ID 的数据类型 int 或 bigint 来计算的;如果你不使用自增 id,且没有 id 最大值的限制,如使用足够长度的随机字符串,那么能够限制单表最大数据量的就...

2020-05-10 22:10:46 4302

原创 天天写order by,你知道Mysql底层执行原理吗?

前言在实际的开发中一定会碰到根据某个字段进行排序后来显示结果的需求,但是你真的理解order by在 Mysql 底层是如何执行的吗?假设你要查询城市是苏州的所有人名字,并且按照姓名进行排序返回前 1000 个人的姓名、年龄,这条 sql 语句应该如何写?首先创建一张用户表,sql 语句如下:CREATE TABLE user ( id int(11) NOT NU...

2020-04-17 17:27:04 161

原创 最详细的MySQL事务解析:ACID的原理及实现

提到MySQL的事务,我相信对MySQL有了解的同学都能聊上几句,无论是面试求职,还是日常开发,MySQL的事务都跟我们息息相关。而事务的ACID(即原子性Atomicity、一致性Consistency、隔离性Isolation、持久性Durability)可以说涵盖了事务的全部知识点,所以,我们不仅要知道ACID是什么,还要了解ACID背后的实现,只有这样,无论在日常开发还是...

2020-04-14 21:24:30 234

原创 什么是缓存一致性问题?如何解决呢?

当程序在运行过程中,会将运算需要的数据从主存复制一份到CPU高速缓存中,那么CPU进行计算时就可以从它的高速缓存读取数据和向其中写入数据,当运算结束后,再将高速缓存中的数据刷新到主存当中。举个简单的例子,比如下面的这段代码:当线程执行这个语句时,会先从主存当中读取i的值,然后复制一份到高速缓存当中,然后CPU执行指令对i指令进行加1操作,然后将数据写入高速缓存,最后将高速缓存中i...

2020-04-13 17:29:54 456

原创 什么情况下JVM内存中的一个对象会被垃圾回收?

新生代满了会触发 Young GC,老年代满了会触发 Old GC。GC时会回收对象,那么具体是什么样的对象会被垃圾回收器回收呢?可达性分析算法,判断是否被 GC Roots 引用判断引用类型:强引用、软引用、弱引用、虚引用是否调用finialize()方法自救首先,JVM 会通过可达性分析算法来判断哪些对象会被回收,哪些不会被回收。可达性分析算法会从一个对象触发,一层...

2020-04-12 22:29:49 180

原创 kafka消费者组与重平衡机制,了解一下?

消费组组(Consumer group)可以说是kafka很有亮点的一个设计。传统的消息引擎处理模型主要有两种,队列模型,和发布-订阅模型。队列模型:早期消息处理引擎就是按照队列模型设计的,所谓队列模型,跟队列数据结构类似,生产者产生消息,就是入队,消费者接收消息就是出队,并删除队列中数据,消息只能被消费一次。但这种模型有一个问题,那就是只能由一个消费者消费,无法直接让多个消费...

2020-04-11 20:32:56 209

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除