自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 「面试必背」Redis面试题(2022最新版)

作为一个后端开发人员,不只是要求开发人员需要掌握 Redis,也要求运维人员也要懂 Redis。由于 Redis 的运用广泛,我们也知道它的重要性,至此面试中经常被问到。在这 80道 Redis 面试题中,考察知识点包括基础、数据结构指令、高并发处理、持久化、集群、复制、Redis 应用等。如果你最近在准备面试或者在学习 Redis,我相信本次小编可以满足你的面试需要。也希望我花了半个月整理的这些题目,解答对你有所帮助。1、什么是 Redis?Redis 是一个使用 C 语言写成的,开源的高性能ke

2022-04-26 15:54:08 12738 5

原创 「面试必背」Spring Cloud面试题(2022最新版)

Spring Cloud 是一系列框架的有序集合。它利用 Spring Boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 Spring Boot 的开发风格做到一键启动和部署。Spring Cloud 并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过 Spring Boot 风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开

2022-04-26 15:37:37 109939 16

原创 图解:为什么非公平锁的性能更高?

本文我们介绍了公平锁和非公平锁的定义以及执行流程,从二者执行流程的细节可以看出,非公平锁因为不用按(顺)序执行,所以后来的锁也可以直接尝试获得锁,没有了阻塞和恢复执行的步骤,所以它的性能会更高。学习更多JAVA知识与技巧,关注与私信博主(222)学习JAVA 课件,源码,安装包,还有最新大厂面试资料等等等咱们下期见。

2022-09-28 15:09:26 443 1

原创 Java 定时任务技术趋势

定时任务是每个业务常见的需求,比如每分钟扫描超时支付的订单,每小时清理一次数据库历史数据,每天统计前一天的数据并生成报表等等。Java 中自带的解决方案1使用 Timer创建 java.util.TimerTask 任务,在 run 方法中实现业务逻辑。通过 java.util.Timer 进行调度,支持按照固定频率执行。所有的 TimerTask 是在同一个线程中串行执行,相互影响。

2022-09-19 20:37:05 504

原创 如何正确的停掉线程?

中断和关闭线程的方式五花八门,看起来很相似,其实里头大有门道。处理不好,可是会导致程序崩溃的。

2022-09-19 20:30:28 1801

原创 谈谈Redis高可用之主从复制

本文主要总结了redis实现主从复制的实现细节和注意事项。redis的主从复制是实现高可用的重要基石,后边的文章将总结哨兵和集群的搭建。

2022-09-18 15:58:55 924

原创 三个月面试6大厂,亲身经验告诉你大厂面试没你想的那么难

多家面试总结下来,考察的范围都很广,包括基础知识、项目和算法。基础知识这块,需要花大量时间准备每一个细节,知其所以然,这样才能面试的时候问起来,都能头头是道。比如Java的AQS原理,多线程,JVM内存等,框架的话,有Spring,MySQL、Redis、Kafka、ES、ZK等,都要十分熟悉。项目,阿里比较注重项目,所以不仅要熟悉项目做了什么事情,而且要提炼出项目中的闪光点或者说不一样的地方,为什么要选择这种技术、架构怎么设计、以后如何扩展、出问题了怎么定位等等;这些在面试之前都要想清楚。

2022-09-07 20:24:10 1174

原创 40 个 SpringBoot 常用注解:让生产力爆表!

本次课程总结了Spring Boot中常见的各类型注解的使用方式,让大家能够统一的对Spring Boot常用注解有一个全面的了解。

2022-09-07 14:33:36 274

原创 金九银十面试资料

一、JVM篇(2022)(含:JVM类加载机制,JVM内存模型,垃圾收集机制,类字节码实现机制,JVM调优案例,GC日志详解等)二、Java并发编程(2022)(含:java内存模型,并发集合,线程池,阻塞队列,CAS与原子操作,无锁并发框架Disruptor等)三、Spring篇(2022)(含:spring IOC,spring AOP原理,spring 5,springMVC,事务管理,循环依赖,spring设计模式等)四、Mysql篇(2022)(含:SQL执行原理,索引底层机制,SQL执行计划分析

2022-09-06 13:40:32 499

原创 一张图看懂微服务架构路线

随着你的应用服务的数量越来越多,服务需要知道彼此的服务实例地址,但是在有很多服务的大型应用中,这是无法处理的。此外,如果你的应用程序由多个服务组成,你的客户端需要知道每个服务地址,并且在更改服务地址的情况下,应该更新多个地方。例如,如果你决定实现一个微服务架构,你应该熟悉应用程序生命周期中的各种关注点,如持久化、日志记录、监控、负载均衡、缓存等,此外你还应该知道哪些哪些工具比较好或哪些堆栈更适合你的应用程序。云服务提供商是一个第三方公司,提供基于云的平台,基础设施,应用程序或存储服务。

2022-09-04 15:56:49 473

原创 从 @SpringBootApplication 入手,理解 Spring 注解驱动编程

几乎所有的 Spring Boot 应用都会在启动类上添加,可以说它是 Spring Boot 应用最核心的注解了。Spring Boot 基于,也不例外,这篇希望在理解的基础上将Spring注解的内容进行串联,以便达到融会贯通的效果。这篇我们在介绍的基础上,介绍了有关这个注解更底层的一些内容,包括注解编程模型、组件扫描、自动装配。

2022-09-04 15:40:56 703 2

原创 分布式事务最经典的七种解决方案

本文介绍了分布式事务的一些基础理论,并对常用的分布式事务方案进行了讲解,在文章的后半部分还给出了事务异常的原因、分类以及优雅的解决方案。学习更多JAVA知识与技巧,关注博主学习JAVA 课件,源码,安装包,还有最新大厂面试资料等等等咱们下期见。

2022-09-01 21:34:32 235

原创 几乎涵盖了近半年90%的Java面试题,可以肝起来了!

扎实充分的面试准备和积累,节奏快速的调整和高效的复习,让每一场面试,都比上一次要好;没有其他能帮助大家的,总结了一些小伙伴的面试经验,和我自己多年的资料库存,给大家整理了一个“Java面试题库”:结合各大厂面试真题,分技术点整理了上千道,最终,拿到了多个中大厂和大厂的Offer,薪资都是原来的2倍或者3倍,比如携程给到27K,最终他选择去了标准大厂字节,薪资一年算下来是原来的最少3倍。不管是面试还是跳槽,面试前的准备和集中刷题,都是尤其关键的一环,大家要严肃对待这个环节,它关乎你的薪资回报是否能符合预期。.

2022-08-31 19:36:41 141

原创 横贯八方揭秘RabbitMQ、RocketMQ、Kafka 的核心原理(建议收藏)

今天我们通过一篇文章来认识一下常见消息队列RabbitMQ、RocketMQ、Kafka。

2022-08-31 16:14:45 351

原创 一篇文章带你搞定Java封装

在文件的最上方加上一个package语句指定该代码在哪个包中包名需要尽量指定成唯一的名字,通常会用公司的域名的颠倒形式(例如com.bit.demo1).包名要和代码路径相匹配。例如创建com.bit.demo1的包,那么会存在一个对应的路径com/bit/demo1来存储代码如果一个类没有package语句,则该类被放到一个默认包中。...

2022-08-28 16:31:57 252

原创 RocketMQ的NameServer的架构设计及其启动流程源码分析

Broker启动的时候会向所有的NameServer注册,生产者在发送消息时会先从NameServer中获取Broker消息服务器的地址列表,根据负载均衡算法选取一台Broker消息服务器发送消息。NameServer与每台Broker之间保持着长连接,并且每隔10秒会检查Broker是否存活,如果检测到Broker超过120秒未发送心跳,则从路由注册表中将该Broker移除。......

2022-08-28 16:26:27 220

原创 RocketMQ普通消息实战演练

同步消息是指发送出消息后,,直到接收到Broker才会继续发送下一个消息。这个方式可以确保消息发送到Broker成功,一些重要的消息可以使用此方式,比如重要的通知。

2022-08-28 16:17:03 213

原创 面试反馈:SpringCloud 的25连环炮

上周,一位朋友在面试被问到了Spring Cloud,然后结合他的反馈,今天我们继续走起SpringCloud面试连环炮。下面是一张Spring Cloud核心组件关系图:从这张图中,其实我们是可以获取很多信息的,希望大家细细品尝。话不多说,我们直接开始 Spring Cloud 连环炮。Spring cloud 流应用程序启动器是基于 Spring Boot 的 Spring 集成应用程序,提供与外部系统的集成。

2022-08-24 19:45:50 143

原创 一款Linux、数据库、Redis、MongoDB统一管理平台,有点牛逼了!

基于DDD分层实现的web版 linux(终端 文件 脚本 进程)、数据库(mysql postgres)、redis(单机 集群)、mongo统一管理操作平台功能介绍ssh终端,文件查看(可根据常见后缀名高亮显示关键词等)、修改、上传、下载、删除等,脚本管理执行,进程操作,运行状态查看等(可当做堡垒机使用)。可视化数据增删改查,sql语句提示,表信息、索引信息、建表语句查看,建表等(类似mini版navicat)。

2022-08-22 21:13:29 342

原创 微服务架构中的10个最重要的设计模式

同样,在企业环境中,应用程序通常部署在各种运行时中(本地,开发,生产)。EventStoreDB,Apache Kafka,Confluent Cloud,AWS Kinesis,Azure事件中心,GCP发布/订阅,Azure Cosmos DB,MongoDB,Cassandra。微服务架构旨在将大型,复杂的系统垂直(按功能或业务要求)划分为较小的子系统,这些子系统属于流程(因此可独立部署),并且这些子系统之间通过与语言无关的轻量级网络通信相互通信(例如REST,gRPC)或异步(通过消息传递)方式。

2022-08-19 19:42:18 333

转载 Spring Cloud Gateway 整合 sentinel 实现流控熔断

在微服务架构中,网关层可以屏蔽外部服务直接对内部服务进行调用,对内部服务起到隔离保护的作用,网关限流,顾名思义,就是通过网关层对服务进行限流,从而达到保护后端服务的作用。即在配置文件中配置的路由条目,资源名为对应的 routeId,这种属于粗粒度的限流,一般是对某个微服务进行限流。用户可以利用 Sentinel 提供的API来自定义一些API分组,这种属于细粒度的限流,针对某一类的uri进行匹配限流,可以跨多个微服务。

2022-08-19 19:40:23 619

原创 浅聊一下线程池的10个坑

使用线程池时,如果没有给线程池一个有意义的名称,将不好排查回溯问题。这不算一个坑吧,只能说给以后排查埋坑,哈哈。我还是单独把它放出来算一个点,因为个人觉得这个还是比较重要的。});}}Hello,Java可以发现,默认打印的线程池名字是,如果排查问题起来,并不友好。因此建议大家给自己线程池自定义个容易识别的名字。其实用});}}

2022-08-19 19:36:39 131

原创 聊聊Spring事务控制策略以及@Transactional失效问题避坑

在大部分涉及到数据库操作的项目里面,。比如,需要对SQL执行过程进行事务的控制与处理的时候,其整体的处理流程会是如下的示意:首先是要开启事务、然后执行具体SQL,如果执行异常则回滚事务,否则提交事务,最后关闭事务,完成整个处理过程。不难发现,上面大段的代码逻辑并不复杂,对于业务而言其实仅仅只是执行了一个insert操作而已。但是杂糅的事务控制代码,显然。常规项目的代码中,涉及到DB处理的场景很多,如果每个地方都有这么一段事务控制的逻辑,那么整体代码的可维护性将会比较差,想想都令人窒息。...

2022-08-12 20:31:59 248

原创 最强分布式锁工具:Redisson

Redisson整体实现分布式加解锁流程的实现稍显复杂,作者Rui Gu对Netty和JUC、Redis研究深入,利用了很多高级特性和语义,值得深入学习,本次介绍也只是单机Redis下锁实现。

2022-08-11 15:53:04 336

原创 为什么 Redis 的查询很快, Redis 如何保证查询的高效

Redis 使用单线程,来避免共享资源的竞争,使用多路复用实现高性能的I/O,它是内存数据库,所有操作都在内存上完成,使用哈希表,跳表等一系列高效的数据结构,这些特性保证了 Redis 的高性能。学习更多JAVA知识与技巧,关注博主学习JAVA 课件,源码,安装包,还有最新大厂面试资料等等等咱们下期见。...

2022-08-09 21:17:45 481

原创 DDD领域驱动设计实战-服务和数据在微服务各层协作的最佳实践

表述应用和用户行为,负责服务的组合、编排和转发,负责处理业务用例的执行顺序以及结果的拼装,负责不同聚合之间的服务和数据协调,负责微服务之间的事件发布和订阅。虽然实体、实体方法和领域服务都在领域层,但实体和实体方法只能暴露给领域服务,领域服务只能暴露给应用服务。当实体方法或领域服务发生变更,由于服务同时被多层服务调用和组合,难以找出哪些上层服务调用和组合了它,不方便通知到所有的服务调用方。用来表述应用和用户行为,负责服务的组合、编排和转发,负责处理业务用例的执行顺序以及结果拼装,对外提供粗粒度的服务。...

2022-08-07 20:05:49 895

原创 可落地的DDD-战术设计上的一些误区

以上问题将会在下文解释清楚。

2022-08-03 15:22:58 115

原创 拿捏大厂面试,2022年面试必问的Java面试八股文及答案整理(超详细)

以上就是有关程序员面试专题的一些总结,面试不仅考的是技术还有心态,只要你有足够的技术支撑,心态要好,拿到offer肯定不在话下。先不要把它想得很困难,自己给自己设置槛!希望大家都可以拿到心仪offer,走向升职、跳槽、涨薪、赢娶白富美之路!httpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttps。...

2022-08-01 19:27:01 219

原创 面试官让我手写一个RPC框架

远程服务调用(Remoteprocedurecall)的概念历史已久,1981年就已经被提出,最初的目的就是为了调用远程方法像调用本地方法一样简单,经历了四十多年的更新与迭代,RPC的大体思路已经趋于稳定,如今百家争鸣的RPC协议和框架,诸如Dubbo(阿里)、Thrift(FaceBook)、gRpc(Google)、brpc(百度)等都在不同侧重点去解决最初的目的,有的想极致完美,有的追求极致性能,有的偏向极致简单。Javassist如何实现代理。Javassisthttps。...

2022-08-01 15:00:35 110

原创 MySQL最大建议行数2000w, 靠谱吗?

作为在后端圈开车的多年老司机,是不是经常听到过,“mysql 单表最好不要超过 2000w”,“单表超过 2000w 就要考虑数据迁移了”,“你这个表数据都马上要到 2000w 了,难怪查询速度慢”这些名言民语就和 “群里只讨论技术,不开车,开车速度不要超过 120 码,否则自动踢群”,只听过,没试过,哈哈。下面我们就把车速踩到底,干到 180 码试试…….实验一把看看…建一张表插入一条数据利用 mysql 伪列 rownum 设置伪列起始点为 1运行下面的 sql,连续执行 20 次,就是 2 的 20

2022-08-01 14:03:10 97

原创 学会 arthas,让你 3 年经验掌握 5 年功力!

Arthas是Alibaba开源的Java诊断工具,动态跟踪Java代码;实时监控JVM状态,可以在不中断程序执行的情况下轻松完成JVM相关问题排查工作。支持JDK6+,支持Linux/Mac/Windows。这个工具真的很好用,而且入门超简单,十分推荐。...

2022-08-01 14:00:01 470

原创 2022年Flink面试题整理

Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。并且Flink提供了数据分布、容错机制以及资源管理等核心功能。Flink提供了诸多高抽象层的API以便用户编写分布式任务DataSetAPI,对静态数据进行批处理操作,将静态数据抽象成分布式的数据集,用户可以方便地使用Flink提供的各种操作符对分布式数据集进行处理,支持Java、Scala和Python。图计算库,提供了图计算的相关API及多种图计算算法实现。...

2022-07-31 16:23:41 454

原创 2022最新Java后端面试题(带答案),重点都给画出来了!你不看?

1.String类为什么是final的2.HashMap的源码,实现原理,底层结。3.说说你知道的几个Java集合类list、set、queue、map实现类咯。。。4.描述一下ArrayList和LinkedList各自实现和区别5.Java中的队列都有哪些,有什么区别。6.反射中,Class.forName和classloader的区别Class.forName会执行静态代码块,7.Java7、Java8的新特性(baidu问的,好BT)...

2022-07-27 14:32:06 2544 1

原创 DDD—Repository仓储&工厂模式

而一旦涉及到数据逻辑的修改,就要到领域层中去修改代码,重新调试领域层与基础层的交互,或者当切换异构数据库类型时,需要大量修改领域层的代码,将业务逻辑和数据处理逻辑重新适配(主要在于异构数据库导致的SQL或数据对象调整),因此技术升级会变得特别麻烦。DO对象创建时,需要确保聚合根和它依赖的对象同时被创建,如果这项工作交给聚合根来实现,则聚合根的构造函数将变得异常庞大,所以我们把通用的初始化DO的逻辑,放到工厂中去实现,通过工厂模式封装聚合内复杂对象的创建过程,完成聚合根,实体和值对象的创建。...

2022-07-27 14:11:56 1534

原创 Spring Cloud 优雅下线+灰度发布

文章目录前言优雅下线常见的下线方式优雅的下线方式灰度发布蓝绿部署滚动部署金丝雀部署在生产环境中,如何保证在服务升级的时候,不影响用户的体验,这个是一个非常重要的问题。如果在我们升级服务的时候,会造成一段时间内的服务不可用,这就是不够优雅的。那什么是优雅的呢?主要就是指在服务升级的时候,不中断整个服务,让用户无感知,进而不会影响用户的体验,这就是优雅的。实际上,优雅下线是目标,而不是手段,它是一个相对的概念,例如killPID和都是暴力杀死服务,相对于来说,killPID就是优雅的。...

2022-07-26 20:59:55 160

原创 你见过哪些目瞪口呆的 Java 代码技巧?

当实际工作中,完成了几个API的DTO转化时,我们会发现,这样的操作有很多很多,那么应该定义好一个接口,让所有这样的操作都有规则的进行。如果接口被定义以后,那么convertFor这个方法的语义将产生变化,它将是一个实现类。看一下抽象后的接口。...

2022-07-26 20:50:47 88

原创 阿里云Redis开发规范

本文介绍了在使用阿里云Redis的开发规范,从键值设计、命令使用、客户端使用、相关工具等方面进行说明,通过本文的介绍可以减少使用Redis过程带来的问题。

2022-07-26 20:13:20 106

原创 Docker 火了!外部网络可直接访问映射到 127.0.0.1 的服务。。。

同理,如果主机的地址为192.168.0.100,掩码为24,那么dockerrun-p192.168.0.10054325432的iptables规则就应该是​​​​​​​。首先要严格限制允许访问容器端口的源地址和网络接口,例如dockerrun-p127.0.0.154325432的原iptables规则如下​​​​​​​。如果本文对你有帮助,别忘记给我个3连,点赞,转发,评论,改进后的iptables规则如下​​​​​​​。下面通过一个例子来验证。...

2022-07-25 15:39:16 305

原创 面试难题:分布式 Session 实现难点,这篇就够!

那如何来解决分布式Session问题呢?一、解决方案列举二、Java代码实现解决分布式Session平常做的项目都是在一台应用系统,并且所有的操作都在一台Tomcat服务器上,并不会引发Session共享的问题,所以并不会对我们的系统产生影响,但是当我们部署多个微服务的时候,再搭配Nginx进行负载均衡时,如果不处理分布式Session问题,我们在系统中访问不同功能时就会频繁出现用户登录的操作🦋🦋用户登录成功后想要访问图中其他两个模块的功能时,由于Nginx使用默认负载均衡策略(Tomcat1。...

2022-07-25 15:22:35 100

原创 DDD洋葱架构才是 yyds!阿里大牛手记(DDD)领域驱动设计应对之道

虽然身为架构师,设计一个高质量的架构依然是复杂与困难的。简单来说,动用大量的资源只为了一套优质的三高架构并不正确,而是该在了解当前业务现状的情况下,创造出灵活、可维护、健硕能成长的。就拿近两年程序员行业饱受争议的DDD(领域驱动设计)来说,事实上,领域驱动设计的思维可以很好的解决企业的大型架构所遇到的绝大部分难题(理论层面至少是这样),例如上下映射,就可以在本质上把业务的架构模块解耦,最高程度做到降低成本增强功效。在实际应用中,落地的DDD好处也是十分明显。,一本书搞透。...

2022-07-24 15:28:21 282

空空如也

空空如也

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

TA关注的人

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