- 博客(244)
- 问答 (3)
- 收藏
- 关注
原创 Jenkins自动化部署前端项目
Jenkins部署指南参考小黄另一篇文章通过gitlab合并方式,触发jenkins构建指令,构建uat分支上的代码,构建完成后,发送到另一台服务器的目录下。
2024-12-12 15:11:53
836
原创 Jenkins + GitLab + Docker实现自动化部署(Java项目)
因为Jenkins需要用到git、jdk、maven,后两者我们采取挂载的方式,git采用直接在容器中安装的方式,所以我们要做一个增强版的Jenkins镜像,编写Dockerfile文件。其他都默认,这边配置触发分支,我选择的是合并到uat分支时触发请求,另外生成密钥,配置gitlab中webhook会用到。插件可以选择默认的,我先是没安装插件,后来网上搜到的安装,我是把下面的插件都安装了,也有部分没用到,大家酌情安装。: 如果你的项目包含前端应用,可以使用此插件来安装和管理 Node.js 版本。
2024-10-24 15:39:51
1556
原创 Kubernetes基本概念
Kubernetes的本质是一组服务器集群,它可以在集群的每个节点上允许特定的程序,来对节点中的容器进行管理。自我修复:一旦某一个容器奔溃,能够在1秒中左右迅速启动新的容器弹性伸缩:可以根据需要,自动对集群中正在运行的容器数量进行调整,例如一下子流量大了,可以增加容器来处理流量服务发现:服务可以通过自动发现的形式找到它所依赖的服务负载均衡:如果一个服务启动了多个容器,能够自动实现请求的负载均衡版本回退:如果发现新发布的程序版本有问题,可以立即回退到原来的版本存储编排。
2024-08-06 21:35:20
777
1
原创 线程阻塞和线程中断
Java线程中断机制是一种用于协作式线程终止的机制。它通过将一个特殊的中断标志设置为线程的状态来实现。当线程被中断时,它可以检查这个中断标志并采取相应的措施来停止线程的执行。首先一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止,自己决定自己的命运其次在Java中没有办法立刻停止一条线程,中断也只是一种协商机制,Java并没有给中断增加任何语法,中断的过程需要程序员自己实现。是 Java 并发包中的一个工具类,提供了线程阻塞和唤醒的能力,说到线程阻塞和唤醒就不得不提到两种已经学过的方式。
2023-07-28 17:13:14
660
原创 异步任务——CompletabelFuture
本专栏学习内容又是来自有兴趣的小伙伴可以点击视频地址观看在学习之前,必须要先了解一下Future。
2023-07-19 16:22:25
845
原创 Netty进阶
魔数,用来在第一时间判定是否是无效数据包版本号,可以支持协议的升级序列化算法,消息正文到底采用哪种序列化反序列化方式,可以由此扩展,例如:json、protobuf、hessian、jdk指令类型,是登录、注册、单聊、群聊… 跟业务相关请求序号,为了双工通信,提供异步能力正文长度消息正文。
2023-05-23 14:28:43
832
2
原创 SpringCloudAlibaba分布式事务——Seata
Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。官网地址。
2023-04-27 09:46:53
1090
原创 SpringCloudAlibaba服务熔断、限流——Sentinel
Sentinel是Alibaba公司推出的一个熔断与限流工具,相当于我们之前学习的Hystrix,可以解决服务使用中的各种问题,例如:服务雪崩、服务降级、服务熔断、服务限流。中文文档和Hystrix类似,通过属性来定义处理方法兜底方法参数不可省略!系统保护规则是从应用级别的入口流量进行控制,从单台机器的 load、CPU 使用率、平均 RT、入口 QPS 和并发线程数等几个维度监控应用指标,让系统尽可能跑在最大吞吐量的同时保证系统整体的稳定性。系统保护规则是应用整体维度的,而不是资源维度的,并且。
2023-04-25 13:06:18
1226
原创 SpringCloudAlibaba服务注册与配置中心——Nacos
Nacos是阿里巴巴推出的服务注册和配置中心。等价于Eureka+Config+Bus,可以替代Eureka做服务注册中心,替代Config做服务配置中心。官方文档。
2023-04-24 09:44:09
677
原创 SpringCloud分布式请求链路跟踪——Sleuth
本专栏学习内容来自有兴趣的小伙伴可以点击视频地址观看随着微服务越来越多,可能会出现A调B,B调C、D等多重调用的情况,出现问题不易排查。Spring Cloud Sleuth提供了一套完整的服务跟踪的解决方案,在分布式系统中提供追踪解决方案并且兼容支持了zipkin。
2023-04-20 17:14:33
431
原创 SpringCloud消息驱动——Stream
本专栏学习内容来自有兴趣的小伙伴可以点击视频地址观看SpringCloud Stream是SpringCloud的消息驱动,之前的微服务学的好好的,为什么会突然冒出一个这么个东西来增加我们的学习量呢?一听到消息,那肯定就想到了MQ、Kafka,在日常工作中可能不止用到一种MQ,这时候需要对所有的MQ进行系统的学习,当然也不是所有人都有经历去学习。这时候Stream就应运而生,可以理解为Stream对RabbitMQ、Kafka进行的封装,使用者只需要了解Stream即可。
2023-04-20 14:22:13
579
原创 SpringCloud消息总线——Bus
在微服务架构的系统中,通常会使用轻量级的消息代理来构建一个共用的消息主题,并让系统中所有微服务实例都连接上来。由于**该主题中产生的消息会被所有实例监听和消费,所以称它为消息总线。**在总线上的各个实例,都可以方便地广播一些需要让其他连接在该主题上的实例都知道的消息。
2023-04-19 17:04:41
561
2
原创 SpringCloud分布式配置中心——Config
本专栏学习内容来自有兴趣的小伙伴可以点击视频地址观看由于微服务越来越多,项目越来越庞大,每一个项目都至少有两三个不同环境的application.properties文件,不易管理,假设我们数据库迁移,那么所有配置文件中有关数据库的地址都需要更改,不仅工作量大,有时还可能会漏掉一些服务。SpringCloud Config分布式配置中心应运而生。
2023-04-19 15:11:42
578
原创 SpringCloud网关——GateWay
SpringCloud Gateway 是 Spring Cloud 的一个全新项目,基于 Spring 5.0+Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。
2023-04-19 09:44:34
1544
2
原创 SpringCloud断路器——Hystrix
Hystrix是一个用于处理分布式系统的延迟和容错的一个开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,Hystrix能保证在一个依赖出现问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的稳定性。“断路器”本身是一种开关装置,当某个服务单元发生故障之后,通过断路器的故障监控(类似熔断保险丝),向调用方返回一个符合预期的,可处理的备选响应。
2023-04-10 20:37:49
679
1
原创 SpringCloud服务接口调用——OpenFeign
Feign是一个声明式的Web服务客户端,让编写Web服务客户端变得非常容易,只需创建一个接口并在接口上添加注解即可。在学习Ribbon时,服务间调用使用的是RestTemplate+Ribbon实现,而Feign在此基础上继续进行了封装,使服务间调用变得更加方便。而OpenFeign可以理解为Feign的升级版。
2023-03-30 20:50:14
461
原创 SpringCloud负载均衡服务调用——Ribbon
Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们很容易使用Ribbon实现自定义的负载均衡算法。
2023-03-21 21:59:41
801
2
原创 SpringCloud服务注册中心——ZooKeeper
之前学习了使用Eureka作为服务注册中心,然而Eureka已经停更,这时候我们就需要新的技术来支撑服务注册中心,ZooKeeper也可以作为服务注册中心来注册服务。
2023-03-14 16:45:56
395
原创 SpringCloud服务注册中心——Eureka
Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。Eureka现已停更,但停更不停用。
2023-03-13 20:48:51
1462
1
原创 InnoDB数据存储结构
页a、页b、页c…这些页可以不在物理结构上相连,只要通过双向链表相关联即可。每个数据页中的记录会按照主键值从小到大的顺序组成一个单向链表,每个数据页都会为存储在它里边的记录生成一个页目录,在通过主键查找某条记录的时候可以在页目录中使用二分法快速定位到对应的槽,然后再遍历该槽对应分组中的记录即可快速找到指定的记录。
2023-01-11 22:24:34
449
原创 MySQL索引的数据结构
索引是帮助MySQL高校获取数据的数据结构。索引的本质:索引是数据结构,可以理解为“排好序的快速查找数据结构”,满足特定查找算法。这些数据结构以某种方式指向数据,这样就可以在这些数据结构的基础上实现高级查找算法索引是在存储引擎中实现的,因此每种存储引擎的索引不一定完全相同,并且每种存储引擎不一定支持所有索引类型。
2023-01-05 20:45:11
418
原创 第八篇章——垃圾回收器
本专栏学习内容来自以及有兴趣的小伙伴可以点击视频地址观看,也可以点击下载电子书有了虚拟机,就一定需要收集垃圾的机制,这就是Garbage Collection(GC),对应的产品(垃圾收集器)称为Garbage Collector(GC)两个都称为GC,本文中的GC理解为垃圾收集器。...
2022-08-30 15:21:09
429
原创 ArrayList源码解析
在项目中大家肯定经常使用ArrayList,但是你对ArrayList了解多少呢?ArrayList有很多值得学习的地方,接下来我们更深入的了解ArrayList。
2022-08-15 23:10:45
222
原创 第五篇章——执行引擎
执行引擎是Java虚拟机核心的组成部分之一“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约的定制指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式。...
2022-08-15 22:35:05
235
原创 第三篇章:运行时数据区——独立空间
JVM所有的步骤其实可以理解为厨师炒菜JVM在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是以来用户线程的启动和结束而建立和销毁。JVM中的运行时数据区分为以下五块内容如下图所示,JVM支持多线程,在多线程的情况下,方法区和堆中的对象是共享的,程序计数器、本地方法栈和虚拟机栈是每个线程各拥有一份的。PC寄存器是一块很小的内存空间,几乎可以忽略不计,也是运行速度最快的存储区域在JVM规范中,
2022-07-13 09:22:31
203
原创 第二篇章:类加载子系统
如下图所示,类的加载过程分为三步,分别是加载——链接——初始化目的在于确保.class文件的字节流中包含信息符合当前虚拟机要求,保证被加载类的正确性,不会危害虚拟机自身安全。如下图所示,所有能够被JVM所识别的字节码文件的起始都是,可以亲切的称呼它为“咖啡宝贝”为类变量分配内存并且设置该类型的默认初始值,比如int类型为0,引用类型为null。需要注意的是这里不包含用final修饰的static,因为final在编译时就会分配了,准备阶段会显式初始化。不会为实例变量设置初始值,类变量会分配在方法区中,而实例
2022-07-05 11:23:29
399
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人