自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Tomcat组成与工作原理

开源的 Java Web 应用服务器,实现了 Java EE(Java Platform Enterprise Edition)的部 分技术规范,比如 Java Servlet、Java Server Page、JSTL、Java WebSocket。Java EE 是 Sun 公 司为企业级应用推出的标准平台,定义了一系列用于企业级开发的技术规范,除了上述的之外,还有 EJB、Java Mail、JPA、JTA、JMS 等,而这些都依赖具体容器的实现。

2023-10-10 22:43:18 131

原创 限流的场景和应用

1. 防止流量过大导致系统崩溃:当流量突然增大时,限流可以确保系统不会因为过大的流量导致资源耗尽和系统崩溃。2. 防止恶意请求:限流可以用来针对一些恶意请求进行限制,避免这些请求对系统造成损害。3. 避免线程池耗尽:当请求很多时,后端的线程池可能会耗尽,导致许多请求得不到响应。加上限流可以避免这种情况的发生。4. 防止缓存击穿:当缓存失效时,后端系统会接收大量的请求。限流可以确保后端系统不会因为缓存失效而被打垮。

2023-06-25 15:36:34 798

原创 Prometheus监控K8S

Cadvisor + node-exporter + prometheus + grafana是一套非常流行的Kubernetes监控方案。它们的功能如下:- Cadvisor:容器资源监控工具,可以实时监控CPU、内存、存储、网络等容器指标,并暴露Metrics接口。- node-exporter:节点级指标导出工具,可以监控节点的CPU、内存、磁盘、网络等指标,并暴露Metrics接口。

2023-06-16 23:48:13 7133 10

原创 Kubernetes master集群高可用

Kubernetes master高可用一般有三种实现方案:1. kubeadm 高可用安装使用kubeadm工具安装Kubernetes集群,通过增加master节点数量和指定vip实现master高可用。具体步骤如下:- 安装一主两备master节点(由kubeadm完成)- 配置vip(使用keepalived或haproxy等工具)

2023-06-01 17:21:12 1464 1

原创 kubernetes环境搭建

1.一个主多个工作节点: 一台Master节点和多台Node节点,搭建简单,但是有单机故障风险,适合用于测试环境。在kubernetes中service有两种代理模型,-种是基于iptables的, - -种是基于ipvs的。2.多主节点多工作节点:多台Master节点和多台Node节点,搭建麻烦,安全性高,适合用于生产环境。

2023-05-20 18:16:24 777

转载 Docker

docker run -i(保持容器一直运行)-t(给容器一个伪终端)-d(后台运行,不直接进入容器) --name=tomcat9.2(给启动容器起名字)-p 8080:8080(宿主:docker容器)tomcat:9.2(启动的容器) 【参数】(加入容器初始化命令)而docker就是基于他的基础上发展过来的。2. Docker的主要目标是‘build ,ship and run any app,anywhere’,也就是说通过对应用程序组件的封装,分发,部署,运行等生命周期的管理。

2023-03-26 16:52:57 1411 1

转载 分布式日志采集(elk+kafka)

分布式系统的日志,每个服务器节点web服务都会产生各自的日志文件,如果想要整合或者排查日志,就需要到每个节点下逐一查看日志文件这样会比较麻烦。所以需要一个方案将日志采集放到一个位置进行存储和查询。这里就可以使用elk+kafka的方式解决。

2023-03-24 23:15:22 2290 2

原创 MYSQL-性能优化篇

索引的建立是表中比较有指向性的字段,相当于目录,比如说行政区域代码,同一个地域的行政区域代码都是相同的,那么给这一列加上索引,避免让它重复扫描,从而达到优化的目的!增加索引会有利于查询效率,但会降低insert,update,delete的效率,但实际上往往不是这样的,过多的索引会不但会影响使用效率,同时会影响查询效率,这是由于数据库进行查询分析时,首先要选择使用哪一个索引进行查询,如果索引过多,分析过程就会越慢,这样同样的减少查询的效率,因此我们要知道如何增加,有时候要知道维护和删除不需要的索引。

2023-03-20 21:00:38 1968

原创 HBase详解

HBase 是一种分布式、可扩展、支持海量数据存储的 NoSQL 数据库。逻辑上,HBase 的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列。但从 HBase 的底层物理存储结构(K-V)来看,HBase 更像是一个 multi-dimensionalmap。

2023-02-12 20:54:44 1233

原创 SparkStreaming

SparkStreaming用于流式数据的处理。SparkStreaming支持的数据输入源有很多,例如:KafKa、Flume和简单的TCP套接字等等。数据输入后可以用Spark的高度抽象原语如:map、reduce、join、window等进行运算。而结果也能保存在很多地方,如HDFS,数据库等

2023-02-06 17:24:47 449

原创 SparkSQL详解

Spark SQL是 Spark 用来处理结构化数据的一个模块,它提供了 2 个编程抽象:DataFrame 和DataSet,并且作为分布式 SQL 查询引擎的作用。

2023-02-06 17:00:19 2508

原创 Spark详解

Spark 是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。在之前的学习中,Hadoop的 MapReduce 是大家广为熟知的计算框架,那为什么咱们还要学习新的计算框架 Spark 呢,这里就不得不提到 Spark 和 Hadoop 的关系。

2023-02-06 15:47:39 6933

原创 Hive详解

1)hive简介Hive:由 Facebook 开源用于解决海量结构化日志的数据统计工具。Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件 映射为一张表,并提供类SQL 查询功能。

2023-02-06 11:50:49 3513

原创 Hadoop(部署篇)

Hadoop 运行模式包括:本地模式、伪分布式模式以及完全分布式模式。

2023-02-05 23:07:30 1503

原创 Hadoop 简介

Hadoop 生态圈是指围绕 Hadoop 软件框架为核心而出现的越来越多的相关软件框架,这些软件框架和 Hadoop 框架一起构成了一个生机勃勃的 Hadoop 生态圈

2023-02-05 18:11:13 51332 1

原创 虚拟机上搭建Linux环境

用虚拟机搭建三台linux环境

2023-01-10 17:14:25 581

转载 如何更好地使用Kafka

要确保Kafka在使用过程中的稳定性,需要从kafka在业务中的使用周期进行依次保障。主要可以分为:事先预防(通过规范的使用、开发,预防问题产生)、运行时监控(保障集群稳定,出问题能及时发现)、故障时解决(有完整的应急预案)这三阶段。事先预防即通过规范的使用、开发,预防问题产生。主要包含集群/生产端/消费端的一些最佳实践、上线前测试以及一些针对紧急情况(如消息积压等)的临时开关功能。Kafka调优原则:1.确定优化目标,并且定量给出目标(Kafka 常见的优化目标是吞吐量、延时、持久性和可用性)。

2022-12-01 17:31:05 351

转载 RocketMQ介绍

今天和大家一起深入生产级别消息中间件 - RocketMQ 的内核实现,来看看真正落地能支撑万亿级消息容量、低延迟的消息队列到底是如何设计的。这篇文章我会先介绍整体的架构设计,然后再深入各核心模块的详细设计、核心流程的剖析。还会提及使用的一些注意点和最佳实践。对于消息队列的用处和一些概念不太清楚的同学强烈建议先看消息队列面试连环问,这篇文章介绍了消息队列的使用场景、基本概念和常见面试题。

2022-11-10 17:36:17 375

转载 RocketMQ与kafka的区别

kafka和RocketMQ的总体区别是,kafka设计初衷是用于日志传输,而RocketMQ的设计用于解决各类应用可靠的消息传输,阿里云官网承诺RocketMQ数据可靠性为10个9,服务可靠性为99.95%。kafka相比RocketMQ的优势1、单机吞吐量TPS可上百万,远高于RocketMQ的TPS7万每秒,适用于日志类消息。2、kafka支持多语言的客户端RocketMQ相比kafka的优势**1、保证消息不丢( 数据可靠性达10个9)2、可严格保证消息有序。

2022-11-10 17:13:06 3529

转载 kafka的rebalance机制

Reblance就像他的名称一样,意思是再平衡,平衡什么?平衡和之间的对应关系。本质上来讲,Reblance是一种协议,规定了一个Consumer Group下所有Consumer如何达成一致,来分配订阅Topic的每个分区,尽量让每个消费者分配到相对均匀的分区,使Consumer的资源都能得到充分利用,防止有些Consumer比较忙,有的Consumer比较闲。

2022-11-10 16:01:25 5555

原创 HashMap底层原理

HashMap 基于键 HashCode 值唯一标识一条数据,根据hashCode定位到数组的具体下标,然后对存储的链表进行遍历查找到需要的数据,复杂度O(n).其中链表中每个元素都是一个Entry实例,包换4个属性,key,value,hash,next指向。为了减小链表遍历的开销,java8改成数组+链表+红黑树的方式,当链表元素超过8后会将链表结构转化成红黑树,提高查询效率。时间复杂度为O(logN),长度小于8的话会重新转化成链表。

2022-10-18 16:56:52 263

原创 Spring加载流程

​tomcat在启动ServletContext容器的时候会发布ServletContextEvent事件,Spring就通过实现ServletContextListener接口,监听该事件来监听ServletContext的生命周期。

2022-10-18 16:43:29 2754 1

原创 springMVC介绍

我们使用springMVC的时候,它的主要入口时dispatcherServlet类它最总实现了Servlet接口。Servlet初始化执行init()方法,其中springMVC子容器初始化的时候会调用DispatcherServlet的onRefresh()方法,而在onRefresh()方法中只做了一件事,就是调用initStrategies()方法来初始化springMVC的九大组件。

2022-10-18 14:59:27 161

转载 java中的锁

Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关(本文中的源码来自JDK 8)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的方式进行介绍,帮助大家更快捷的理解相关知识。

2022-10-14 23:40:19 100

原创 简单介绍Kafka

Kafka 是一种高吞吐量、分布式、基于发布/订阅的消息系统,最初由 LinkedIn 公司开发,使用Scala 语言编写,目前是 Apache 的开源项目。

2022-10-13 23:38:26 105

原创 java并发关键字

CountDownLatch类位于java.util.concurrent包下,是一个同步工具类 ,允许一个或多个线程一直等待其他线程的操作执行完后再执行相关操作。CountDownLatch 基于线程计数器来实现并发访问控制,主要用于主线程等待其他子线程都执行完毕后执行相关操作。

2022-10-11 11:27:15 290

原创 什么是AQS

AQS ( Abstract Queued Synchronizer )是一个抽象的队列同步器,通过维护一个共享资源状态( Volatile Int State )和一个先进先出( FIFO )的线程等待队列来实现一个多线程访问共享资源的同步框架。

2022-10-10 23:35:06 27647 1

原创 什么是 CAS

CAS (Compare And Swap)指比较并交换。CAS算法 CAS(V,E,N)包含3个参数,V表示要更新的变量,E表示预期的值,N表示新值。在且仅在V值等于E值时,才会将V值设为N,如果V值和E值不同,则说明已经有其他线程做了更新,当前线程什么都不做。最后CAS返回当前V的真实值。

2022-10-10 22:58:41 163

原创 Java阻塞队列

队列是种只允许在表的前端进行删除操作,而在表的后端进行插入操作的线性表。阻塞队列和一般队列的不同之处在于阻塞队列是“阻塞”的,这里的阻塞指的是操作队列的线程的一种状态。

2022-10-10 17:52:53 875

原创 如何排查java程序导致的cpu和内存过高异常

如何排查java程序引起的cpu和内存过高异常

2022-10-09 14:32:40 8009

转载 Kafka中怎么保证消息不会丢失和不重复消费?

Kafka中怎么保证消息不会丢失和不重复消费

2022-10-09 10:53:10 5402

java实现限流,封装的工具类

java实现限流,封装的工具类,需要注意的令牌桶和漏桶这块用的Semaphore,数据线程数量,的限制,如果需要业务上数据的限速此资源则不合适

2023-06-25

Prometheus监控K8S

prometheus+grafana+node-exproter安装所需要的yaml文件

2023-06-16

kube-flannel的yaml文件

安装k8s步骤中需要的flannel网络插件,亲试可用!

2023-06-12

空空如也

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

TA关注的人

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