自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 从本质彻底精通Git——4个模型1个周期1个史观1个工作流

一、什么是Git?  Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。  Git是Linus Torvalds为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。二、分布式VS集中式  VisualSVN、TortoiseSVN、Bazzar为集中式版本控制系统,而Mercurial、Git、Bitkeeper为分布式版本控制系统。  1. 集中式版本控制    优点:可以对具体的文件或目录进行权限控制,有全局的版本号。    缺点:

2021-03-29 15:11:47 180

原创 一个SQL错误的问题让我找到了公司框架中三个bug

本文是对之前开发中遇到的问题的一个总结,文章其实早就写好,但是觉得自己写得不够深入,就让文章一直躺在草稿箱里。昨天突然想起来了,就将文章重新修改了一下,还是发出来吧!问题1当时我在开发一个异常日志记录接口,其实业务流程很简单,就是前端提交错误日志到后台,后台接受到信息处理一番,然后插入数据库。因为这个接口的并发量比较高,为了不影响其他业务,并且同时提高响应的速度。于是采用 @Async 注解+ Spring线程池的方案来实现。线程池的配置如下:<task:annotation-drive

2021-03-24 23:00:09 183

原创 apollo在Spring boot加载过程解析

前言apollo 是一个开源的配置中心项目,功能很强大,apollo 本身的配置项并不复杂,但是因为配置的路径特别多,非常容易搞混了, 所以本文试图聚焦 spring-boot 的场景,在 spring-boot 微服务场景下,搞清楚 apollo-client 的加载过程集成使用1、添加 gradle 依赖 implementation "com.ctrip.framework.apollo:apollo-client:1.6.0"2、配置 application.pro

2021-03-24 22:58:26 608

原创 JVM之调优及常见场景分析

JVM调优GC调优是最后要做的工作,GC调优的目的可以总结为下面两点:减少对象晋升到老年代的数量 减少FullGC的执行时间通过监控排查问题及验证优化结果,可以分为:命令监控:jps、jinfo、jstack、jmap、jstat、jhat 图形化监控: JConsole和VisualVM 阿里巴巴开源的 Java 诊断工具: Arthas(阿尔萨斯) :如果GC执行时间满足下列所有条件,就没有必要进行GC优化了:Minor GC执行非常迅速(50ms以内) Minor.

2021-03-19 20:55:29 535

原创 盘点一下数据库的误操作有哪些后悔药?

前言无论是开发、测试,还是DBA,都难免会涉及到数据库的操作,比如:创建某张表,添加某个字段、添加数据、更新数据、删除数据、查询数据等等。正常情况下还好,但如果操作数据库时出现失误,比如:删除订单数据时where条件写错了,导致多删了很多用户订单。 更新会员有效时间时,一次性把所有会员的有效时间都更新了。 修复线上数据时,改错了,想还原。还有很多很多场景,我就不一一列举了。如果出现线上环境数据库误操作怎么办?有没有后悔药?答案是有的,请各位看官仔细往下看。1.不要用聊天工具

2021-03-19 20:49:20 427

原创 Spring boot记录sql探索

目标记录每次请求内的http、es、mysql耗时,本篇讨论mysql部分为什么说要探索,这不是很简单的事么?但是能满足以下几点么?能记录limit等参数 能将参数和sql写一起,能直接使用 能记录耗时 能计数累加,统计一次请求中sql执行的总数和总耗时spring原生能力#logging.level.org.hibernate.SQL=debuglogging.level.org.hibernate.type.descriptor.sql.BasicBinder=tr..

2021-03-16 22:13:30 242

原创 解析分布式应用框架Ray架构源

摘要:Ray的定位是分布式应用框架,主要目标是使能分布式应用的开发和运行。Ray是UC Berkeley大学 RISE lab(前AMP lab) 2017年12月 开源的新一代分布式应用框架(刚发布的时候定位是高性能分布式计算框架,20年中修改定位为分布式应用框架),通过一套引擎解决复杂场景问题,通过动态计算及状态共享提高效率,实现研发、运行时、容灾一体化Ray架构解析业务目标Ray的定位是分布式应用框架,主要目标是使能分布式应用的开发和运行。业务场景具体的粗粒度使用场景包括.

2021-03-16 22:12:02 971

原创 灵魂一问:SpringBoot启动流程你真的清楚吗?

一切从SpringApplication.run()开始,最终返回一个ConfigurableApplicationContext构造了一个SpringApplication对象,然后调用它的run方法。下面看下构造方法都做了什么1、推断Web应用类型(WebApplicationType),本例中是SERVLET2、设置 Bootstrapper、ApplicationContextInitializer 和 ApplicationListener3、推断main方法注意到,在

2021-03-16 22:08:47 109

原创 分布式事务之LCN、TCC特点、事务补偿机制缘由以及设计重点

在亿级流量架构之分布式事务解决方案对比中, 已经简单阐明了从本机事务到分布式事务的演变过程, 文章的最后简单说明了TCC事务, 这儿将会深入了解TCC事务是原理, 以及理论支持, 最后会用Demo举例实现。XA协议在上面提到的文章中, 分布式事务直接将二阶段提交, 思维逻辑有些断层, 但是那毕竟是比较解决方案, 在这儿从理论上推导分布式事务的根基, 也就是为什么要二阶段提交。在单体应用中, 往往由自己来保证事务的一致性, 但是分布式中, 涉及到跨网络调用就难以保证, 从理论上讲两台机器理论上无法

2021-03-16 22:05:38 430

原创 五位一体全方位解析Spring Boot,阿里爆款SpringBoot实战笔记也太香了

开发模式:本篇讲解了历史悠久,但现在依然被广泛使用的分层应用开发模式MVC ( ModelView Controller ),还讲解了当下逐渐火热的响应式开发模式WebFlux。ORM ( Object Relational Mapping,对象关系映射)框架:数据库的操作是程序开发中非常重要的一块,根据国内外用户的习惯,本书对比讲解了全球最火的JPA和中国最流行的MyBatis。安全框架:安全框架是必备的内容。本书讲解了相关书籍、资料非常少,国内很少用,但是超级实用和好用的Spring Boot官

2021-03-15 15:45:35 136

原创 想进阿里?RocketMQ必须要掌握!阿里内部强推RocketMQ核心笔记太香了!

前几天一个朋友跟我说,他拿到了阿里 Java 开发的 offer,准备入职了。半个多月的时间里,前前后后面试了4轮,而让他印象最深的一点是,想进阿里,RocketMQ 必须掌握。确实如此,一个用消息队列的人,不知道为啥用,就有点尴尬。尤其是在面对面试官的连环追问时,你很容易被问蒙,然后就开始胡扯了。其实这个问题,咱只答三个最主要的应用场景就没毛病,解耦、异步、削峰,但前提是你真的掌握底层原理,还真的在项目中有熟练应用才能说出个一二三来。毕竟,大厂面试官对知识点和项目经验的细节是一定会深究的。

2021-03-13 14:05:33 238

原创 MySQL基础:CharacterSet和Collation

A character set is a set of symbols and encodings. A collation is a set of rules for comparing characters in a character set.Character Set: 一套字符及其编码,即字符集;(文中很多地方也用 charset 一词) Collation:在字符集内用于比较或排序字符的一套规则,即校验规则。操作系统环境为MacOS Catalina, MySQL版本为: 8.0.13

2021-03-12 16:06:38 1212 2

原创 Sentinel流量控制&服务熔断降级详解

Sentinel流量控制&服务熔断降级介绍流量控制介绍在这里我用景区的例子解释一下一个旅游景点日接待游客数量为8K,8K以后的游客就无法买票进去景区。对应编程来说就是,一个接口QPS(每秒请求数)最大为100,在QPS100之后的请求我们就要限制其访问,并给出友好提示。不限制QPS无限的次数就会造成服务器的宕机。服务熔断降级在调用系统的时候,如果调用链路中的某个资源出现了不稳定,最终会导致请求发生堆积,进而导致级联错误而熔断降级就可以解决这个问题,所谓的熔断降

2021-03-12 16:03:50 977

原创 金三银四面试技术储备:阿里Spring Security Oauth2.0认证授权全套技术笔记开源分享!

金三银四即将到来,楼主也在疯狂的准备中,也在全网搜集面试题,也有一些面试中常问的面试知识点,今天就来分享最近Java面试热门技术框架:Spring Security Oauth2.0认证授权!总计分为五篇,前四篇为Spring Security相关的内容,最后一篇是Oauth2.0认证授权!同时也为大家整理了Oauth2.0认证授权的源码,皆是免费分享给大家!需要资料的小伙伴,点赞加收藏,关注我之后添加小助理vx:1426687161 即可获取免费下载方式下面我们先来看Spring Se

2021-03-10 14:32:12 219

原创 2021网络系统流行架构

2021年了,看看网络系统的流行架构。系统的质量属性要满足客户需求,所以架构的第一出发点也是需求。有偏好的需求构成场景,架构的取舍就是基于应用场景的偏好。网络系统在管道的位置,大致分为两类:傻快型:内容无感知,以交换和路由为主。如各种交换机,路由器等设备,主要靠硬件。纯软件实现上的需求主要是牺牲一些硬件的高性能,换取管理和维护的方便和统一,如SDN,NFV。目前为了融合硬件与软件,一般都采用x86的架构配合高速可编程的NIC和转发芯片(如支持P4)。以获得性能与管理的双重优势。

2021-03-09 17:15:03 247

原创 面试被吊打系列:气得我直接把简历上的精通数据库给删掉了

小张兴冲冲去面试,结果被面试官吊打!小张:面试官,你好。我是来参加面试的。面试官:你好,小张。我看了你的简历,精通MySQL数据库。那你肯定知道事务吧,你能说说事务有哪些特性吗?小张:一个事务有4个特性,即ACID。原子性(Atomicity):事务开始后的所有操作,要么全部成功要么全部失败。 一致性(Consistency):事务开始前后数据库的完整性约束没有被破坏,比如:A向B转钱,不可能出现A扣了钱,B没收到钱。 隔离性(Isolation):多个事务并发访问时,事务之间是...

2021-03-09 17:13:18 160

原创 2021金三银四阿里+腾讯+字节+滴滴+美团java面试题全梳理(高清脑图+面试答案)!

今天偶然获得了这份阿里+腾讯+字节+滴滴+美团java面试题及答案(2021版)的面试题,共计是1379道题,共享出来和大家一起学习目录大纲详细内容(脑图版)为了不影响大家的阅读体验,就不把全部内容展示出来了,脑图内容已全部收录成册(如下所示)需要的朋友点赞收藏,关注我之后直接添加小助理vx:1426687161 即可百分百免费获取!...

2021-03-09 15:08:21 209

原创 面试官:小伙子你给我说说MySql并发事务处理细节

❝最近同事开发时遇到了一个事务阻塞的问题,通过网上查询发现关于MySQL事务、锁这一块的资料都比较絮乱,让人看得云里雾里,所以借着这个机会,刚好也对这一块内容做一个总结梳理,希望能比较全面去写一下MySQL的并发事务处理。❞本文主线:简述事务的特性与隔离级别 聊聊MySql中各种类型的锁 然后再聊聊MVCC是个什么东东 接着再聊聊数据库锁的触发及升级,以及死锁 最后说下出现锁问题时的常见排查命令简述事务的特性与隔离级别:❝在讲锁之前,必须要先聊聊「 事务的特性与隔离级别 .

2021-03-07 18:23:59 148

原创 悟了!原来这才是分布式事务的正确打开方式

一、分布式事务的概念1,什么是事务事务可以看做是一次大的活动,它由不同的小活动组成,这些活动要么全部成功,要么全部失败。2,本地事务数据库事务的四大特性 ACID:A(Atomic): 原子性 ,构成事务的所有操作,要么都执行完成,要么全部不执行,不可能出现部分成功部分失败的情况。 C(Consistency): 一致性 ,在事务执行前后,数据库的一致性约束没有被破坏。比如:张三向李四转100元,转账前和转账后的数据是正确状态这叫一致性,如果出现张三转出100元,李四账户没有增加100

2021-03-07 18:22:38 313

原创 前端抱怨API响应慢,我们后端该做些什么?

分析API的耗时是将API的总耗时拆分为不同的部分,清晰地知道是什么原因导致耗时过高。我们借助不同的工具,在不同的网络环境下进行耗时分析,从而提出相应的优化建议。请求发送过慢导致耗时增加; DNS解析过慢导致耗时增加; 恶劣的网络环境导致耗时增加; 一直在排队导致响应过慢; 服务端响应过慢导致耗时增加; 响应体积过大导致耗时增加; 等等……一般从感官上觉得API接口响应慢,大部分人会直接归结于服务端处理慢,其实是不合理的。通过在内网环境下的API耗时分析和外网环境下的API耗时分析的对.

2021-03-07 17:54:39 598

原创 2021普通Java程序员如何在行业中脱颖而出?阿里进阶架构师不传之秘终于开源!

“倒挂”一词大家都不陌生,在程序员领域里更是屡见不鲜,尤其是在公司工作了一段时间后就会发现,后来的每个新人的工资都比自己高,你的工资是15k,新人的工资是30k,奈何人家能力强呢。而我们想要涨工资,那也是万万不可能的,除非你的工作能力突飞猛进,晋升成为大佬级别。所以就有了那句笑话,要想涨薪,不是去问领导,而是去换领导。不管是换领导还是要求涨薪,想要有更高的收入,就要看自己能不能在行业中脱颖而出,与同龄人相比是否有着更高的技术水平。从上面的招聘信息就可以看出现在企业所需要的是怎样.

2021-03-06 16:30:23 111

原创 干货来袭!2021面试必备阿里巴巴Java性能优化速成笔记我粉了!

众所周知性能调优可以使系统稳定,用户体验更佳,甚至在比较大的系统中,还能帮公司节约资源。但是在项目的开始阶段,我们没有必要过早地介入性能优化,只需在编码的时候保证其优秀、高效,以及良好的程序设计。在完成项目后,我们就可以进行系统测试了,我们可以将以下性能指标,作为性能调优的标准,响应时间、吞吐量、计算机资源分配使用率、负载承受能力。回顾我自己的项目经验,在阿里有电商系统、支付系统以及游戏充值计费系统,用户都是千万级别,且要承受各种大型抢购活动,所以我对系统的性能要求非常苛刻。除了通过观察以上指标

2021-03-05 13:51:41 184

原创 「源码解析」 消息队列Kombu基本架构综述

0x00 摘要从本文开始,我们通过一个系列来介绍消息队列 Kombu(为后续Celery分析打基础)。Kombu 的定位是一个兼容 AMQP 协议的消息队列抽象,是一个把消息传递封装成统一接口的库。其特点是支持多种的符合APMQ协议的消息队列系统。不仅支持原生的AMQP消息队列如RabbitMQ、Qpid,还支持虚拟的消息队列如redis、mongodb、beantalk、couchdb、in-memory等。通过本系列,大家可以了解 Kombu 是如何实现 AMQP。本文先介绍相关概念和整体逻

2021-03-04 14:07:11 604 1

原创 实战教程:Spring Boot2.x整合kafka全过程

首先得自己搭建一个kafka,搭建教程请自行百度,本人是使用docker搭建了一个单机版的zookeeper+kafka作为演示,文末会有完整代码包提供给大家下载参考废话不多说,教程开始一、老规矩,先在pom.xml中添加kafka相关依赖 <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artif

2021-03-04 14:05:12 508 2

原创 5G时代,为什么NoSQL和SQL存在短板?

01 介绍当今的通信服务提供商(CSP)需要能够在处理海量复杂的数据的同时,不会下降或者减慢网络响应速度和可靠性。5G时代,设备和用户数量呈指数级增长,这对业务支持服务(BSS)提出了新需求,也成为了一项特别艰巨的任务。正如您目前所看到的现实情况,电信网络策略响应,个性化报价或防止欺诈交易等应用程序,必须能够在几毫秒内对数据事件做出反应,才能增加营收或防止亏损。为了更好地满足这些日益复杂的需求,CSP需要知道如何在日益拥挤的数据库环境中进行最佳的数据管理,而且这类场景似乎每年都会出现新的类别。最新类

2021-03-04 14:03:08 792 1

原创 MySQL索引由浅入深!万字长文详解MySQL

索引是SQL优化中最重要的手段之一,本文从基础到原理,带你深度掌握索引。一、索引基础1、什么是索引MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构,索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要。索引优化应该是对查询性能优化最有效的手段了。索引能够轻易将查询性能提高好几个数量级。通俗来讲,索引类似文章的目录,用来提高查询的效率。2、索引分类常见的索引类型有:主键索引、唯一索引、普通索引、全文索引.

2021-03-04 14:01:52 123 1

原创 终于有阿里大牛把Redis源码技术精髓收录成册,全网开源了

RedisRedis以其高速、轻量和丰富的数据结构与功能被越来越多的工程师所钟爱。然而用Redis的人很多,真正懂Redis的人很少!谈到Redis,相信很多铁汁脑海里的第一印象就是缓存与分布式锁,往下深究,知道Redis的方方面面,从原理层面真正懂得Redis也会越来越少。如何才能真正学好Redis?如果你现在公司业务正需要Redis并希望进一步深入理解Redis,最有效的也是最直接的方法当然是去阅读Redis源码。学习源码是成为大牛的必经之路!阅读源码有很多好处,源码里面有大牛们的技术精髓沉

2021-03-03 15:43:03 176 2

原创 2021金三银四Java程序员面试高频分布式架构核心知识全梳理!

今年的金三银四又要开始了,去年受疫情的影响,互联网整个行业都不太景气,程序员、企业的跳槽与招聘都憋了整整一年。由此可以想到今年的金三银四到底会多么的火爆;在IT界也流传着一个观点:1个优秀程序员的效率是普通程序员的10倍,但凡对于有点创新型的项目,企业宁愿付2倍的薪水去选择一个优秀程序员,也不愿意花同样的钱雇佣两个平庸的程序员。要知道现在的招聘信息里透露的两个主要信息: 即使在“降薪失业”的疫情下,企业也是愿意为有能力的资深Java工程师付费的。 程序员能够聚焦到具体的技能.

2021-03-03 15:32:12 206 1

空空如也

空空如也

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

TA关注的人

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