- 博客(57)
- 收藏
- 关注
原创 基于Gradle搭建Spring6.2.x版本源码阅读环境
阅读源码是程序猿成长的必经一环,正所谓。我们在开发成长道路上不仅需要知道如何使用,更要懂得其背后的原理,如此方可得心应手。本篇文章旨在指导大家搭建以上版本的源码阅读环境,方便大家在学习源码的过程中更好的附加注释,便于理解。
2024-11-24 17:42:36
790
1
原创 项目搭建之统一返回值
Getter/*** 操作失败**/RC999("999","操作XXX失败"),/*** 操作成功**//*** 服务降级**/RC201("201","服务开启降级保护,请稍后再试!"),/*** 热点参数限流**/RC202("202","热点参数限流,请稍后再试!"),/*** 系统规则不满足**/RC203("203","系统规则不满足要求,请稍后再试!"),/*** 授权规则不通过**/RC204("204","授权规则不通过,请稍后再试!"),
2024-03-27 22:04:51
441
1
原创 Swagger3探索之游龙入海
后端开发中常用的接口调用工具一般使用Postman、ApiPost工具,但后期需要与前端联调,要补充接口文档花费大量时间,此时Swagger3应运而生,大大提高沟通交流的效率。
2024-03-27 20:58:48
675
原创 nginx实现反向代理
Nginx (“engine x”) 是一个高性能的HTTP和反向代理服务器,特点是。Nginx可以作为静态页面的web服务器,同时还支持CGI协议的动态语言,比如perl、php等。但是不支持java。Java程序只能通过与tomcat配合完成。Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常,能经受高负载的考验。
2023-07-16 15:53:56
420
原创 Ant理解事件循环
程序运行需要有它自己专属的,可以将此内存空间简单的理解为进程;每个应用至少有一个进程,进程之间相互独立,即使要通信,也需要双方同意。
2023-04-07 00:37:03
237
原创 RabbitMQ之延迟队列
延时队列,队列内部是有序的,最重要的特性就体现在它的延时属性上,延时队列中的元素是希望在指定时间到了以后或之前取出和处理,简单来说,延时队列就是用来存放需要在被处理的元素的队列。
2023-04-02 10:44:24
567
原创 RabbitMQ之初介绍
这两种方式都不是很优雅,使用消息总线,可以很方便解决这个问题A 调用B 服务后,只需要监听 B 处理完成的消息,当B 处理完成后,会发送一条消息给 MO,MO 会将此消息转发给A 服务。功能支持功能较为简单,主要支持简单的 MQ 功能,在大数据领域的实时计算以及。缺点: Kafka 单机超过 64 个队列/分区,Load 会发生明显的飙高现象,队列越多,load 越高,发送消息响应时间变长,使用短轮询方式,实时性取决于轮询间隔时间,消费失败不支持重试,支持消息顺序但是一台代理宕机后,就会产生消息乱序,
2023-02-14 00:16:09
186
原创 Java面试专题九之GC
GC算法()是内存回收的方法论,垃圾收集器就是算法落地的实现。四种主要垃圾收集器:垃圾回收的方式:Serial、Parallel、CMS、G1串行垃圾回收器(Serial):它为单线程环境设计且只使用一个线程进行垃圾回收,会暂停所有的用户线程。所以不适合服务器环境;并行垃圾回收器(Parallel):多个垃圾收集线程并行工作,此时用户线程是暂停的,适用于科学计算/大数据处理首台处理等弱交互场景;
2023-01-12 21:13:47
281
原创 Java面试专题八之OOM
GC回收时间过长时会抛出0utofMemroyError。过长的定义是,超过98%的时间用来做GC并且回收了不到2%的堆内存。连续多次GC 都只回收了不到2%的极端情况下才会抛出。假如不抛出 GC overhead limit 错误会发生什么情况呢?那就是GC清理的这么点内存很快会再次填满,追使GC再次执行,这样就形成恶性循环,一直是100%,而GC却没有任何成果。
2023-01-10 23:47:32
77
原创 Java面试专题七之Reference
当内存不足,JVM开始垃圾回收,对于强引用的对象,就算是出现了OOM也不会对该对象进行回收,死都不收。强引用是我们最常见的普通对象引用,只要还有强引用指向一个对象,就能表明对象还“活着”,垃圾收集器不会碰这种对象。在 Java中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的,即使该对象以后永远都不会被用到JVM也不会回收。因此强引用是造成Java内存泄漏的主要原因之一。
2023-01-07 23:53:30
90
原创 Java面试专题五
死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种瓦相等待的现象,若无外力干涉那它们都将无法推进下去,如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。Java 中的线程池是通过 Executor 框架实现的,该框架中用到了 Executor,Executors,ExecutorService,ThreadPoolExecutor这几个类。threadFactory:表示生成线程池中工作线程的线程工厂,用于创建线程的一般用默认的即可。
2022-12-21 15:30:12
85
原创 Java面试专题四
在多线程领域:所谓阻塞,在某些情况下会挂起线程(即阻塞),一旦条件满足,被挂起的线程又会自动。阻寨队列,顾名思义,首先它是一个队列,而一个阻塞队列在数据结构中所起的作用大致如下图所示。试图从空的阻寒队列中获取元素的线程将会被阻寒,直到其他的线程往空的队列插入新的元素。当阻寨队列是空时,从队列中获取元素的操作将会被阻寨;:不存储元素的阻塞队列,也即单个元素的队列。
2022-12-19 00:32:48
79
原创 Java面试专题三
它要做的事情是,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,宜到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续干活,线程进入屏障通过CyclicBarrier的await()方法。CountDownLatch主要有两个方法,当一个或多个线程调用await方法时,调用线程会被阻塞。其它线程调用countDown方法会将计数器减1(调用countDown方法的线程不会阻塞)当计数器的值变为零时,因调用await方法被阻塞的线程会被唤醒,继续执行。的互斥使用,另一个用于。
2022-12-12 00:20:24
81
原创 Java面试专题二
公平锁,就是很公平,在并发环境中,每个线程在获取锁时会先查看此锁维护的等待队列,如果为空,或者当前线程是等待队列的第一个,就占有锁,否则就会加入到等待队列中,以后会按照FIFO的规则从队列中取到自己。指的是同一线程外层函数获得锁之后 ,内层递归函数仍然能获取该锁的代码,在同一个线程在外层方法获取锁的时候,在进入内层方法会自动获取锁。【非公平锁】指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁。【公平锁】指多个线程按照申请锁的顺序来获取锁,类似排队打饭,先来后到;
2022-12-09 00:06:35
95
原创 Java面试专题一
volatile是Java虚拟机提供的Java内存模型(Java Memory Model)本身是一种抽象的概念,并不真实存在,描述的是一组规范或规则,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式。JMM关于同步的规定:1、线程解锁前,必须把共享变量的值刷新回主内存2、线程加锁前,必须读取主内存的最新值到自己的工作内存3、加锁解锁是同一把锁。
2022-12-02 00:06:13
132
原创 Kafka集成Spark
集成Spark一、Scala环境准备二、Spark消费者1.添加配置文件Spark是一个在大数据开发中非常常用的组件。可以用于Kafka的生产者,也可用于Spark的消费者。一、Scala环境准备二、Spark消费者1.添加配置文件<dependencies> <dependency> <groupId>org.apache.spark</groupId> <artif
2022-04-10 23:07:50
1394
原创 Kafka集成SpringBoot
集成SpringBoot一、SpringBoot生产者二、SpringBoot消费者SpringBoot是一个在JavaEE开发中非常常用的组件。可以用于Kafka的生产者,也可以用于SpringBoot的消费者。1)在IDEA中安装lombok插件,注意安装完后要重启;2)SpringBoot环境准备创建一个Spring Initializer<dependencies> <dependency> <groupId>
2022-04-06 22:47:21
2261
原创 Kafka集成Flink
集成Flink一、Flink环境准备二、Flink生产者1.在包名下创建java类:FlinkKafkaProducer三、Flink消费者Flink是一个在大数据开发中非常常用的组件。可以用于Kafka的生产者,亦可以用于Flink的消费者一、Flink环境准备创建一个maven项目flink-kafka添加配置文件<dependencies> <dependency> <groupId>org
2022-04-05 21:54:12
1829
原创 Kafka外部系统集成之集成Flume
文章目录集成Flume`提示:Flume是一个在大数据开发中非常常用的组件。可以用于Kafka的生产者,也可以用于Flume的消费者`1.1 、Flume1.2 Flume消费者集成Flume提示:Flume是一个在大数据开发中非常常用的组件。可以用于Kafka的生产者,也可以用于Flume的消费者1.1 、Flume准备工作:Flume安装部署:linux下修改环境变量步骤:sodo vim /etc/profile.d/my_env.sh配置Flume:可参考
2022-04-04 21:16:50
1245
原创 Kafka-Kraft模式
Kafka-Kraft模式一、Kafka-Kraft架构二、Kafka-Kraft集群部署三、Kafka-Kraft集群启动停止脚本独立消费者案例(订阅分区)消费者组案例生产经验-分区的分配以及再平衡Range以及再平衡RoundRobin以及再平衡Sticky以及再平衡offset位移offset的默认维护位置自动提交offset手动提交offset指定时间消费漏消费和重复消费分析生产经验-消费者事务生产经验-数据积压(消费者如何
2022-03-05 09:19:12
2062
原创 Kafka Broker
文章目录Kafka BrokerKafka Broker工作流程Zookeeper存储的Kafka信息Kafka Broker总体工作流程Broker重要参数生产经验-节点服役和退役服役新节点退役旧节点Kafka副本副本基本信息Leader选举流程Leader和Follower故障处理细节分区副本分配生产经验-手动调整分区副本存储生产经验-Leader Partition负载平衡生产经验-增加副本因子文件存储文件存储机制文件清理机制高效读写数据一、pandas是什么?二、使用步骤1.引入库2.读入数据总结
2022-03-01 23:23:25
1819
原创 Kafka生产者
Kafka生产者文章目录Kafka生产者生产者消息发送流程发送原理发送流程异步发送API一、panda
2022-02-25 23:51:48
751
原创 Kafka快速入门
Kafka快速入门前言一、安装部署1.1.1 集群规划1.1.2 集群部署配置环境变量二、Kafka命令行操作2.1 主题命令行操作2.2 生产者命令行操作2.3 消费者命令操作2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、安装部署1.1.1 集群规划hadoop102hadoop103hadoo
2022-02-22 23:20:36
874
原创 Kafka简介
Kafka定义前端埋点记录用户购买商品的行为数据(浏览、点赞、收藏、评论等)。1. Kafka传统定义Kafka是一个分布式的基于***发布/订阅***模式的消息队列(Message Queue),主要应用于大数据实时处理领域1.1 发布/订阅消息的发布者不会将消息直接发送给特定的订阅者,而是将 发布的消息分为不同的类别 ,订阅者只接收感兴趣的消息。2. Kafka最新定义Kafka是一个开源的分布式事件流平台,被数千家企业用于高性能数据管道、流分析、数据集成和关键任务应用。3 消息队列
2022-02-20 22:10:15
723
原创 Mybatis-Plus爬坑记录
ERROR: relation “my_product_entity” does not exist测试接口出现报错,经检查是注解使用错误!实体类名称原本是MyProduct,使用注解@Table(“name=my_product”),测试没有问题!代码规范修改时将类名改为“MyProductEntity”,注解没变,接口测试就报错原因分析,mybatis-plus默认解析类名当作表名了,将MyProductEntity解析成"my_product_entity"解决办法:使用注解@TableNa
2021-07-29 20:04:04
298
原创 RestTemplate
RestTemplate提供了多种便捷访问远程Http服务的方法,是一种简单便捷的访问restful服务模板类,是Spring提供的用于访问Rest服务的客户端模板工具集。官网地址http://docs.spring.io/spring-framework/docs/5.2.2.RELEASE/javadoc-api/org/springframework/web/client/RestTemplate.html使用restTemplate访问restful接口非常简单粗暴无脑。(url, reque
2020-08-30 22:26:56
205
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人