自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 docker常用中间件安装

本文将详细介绍使用docker如何安装目前各种常用中间件的安装教程,主要包括:mysql、gitlab、nacos、redis、xxljob、zipkin、sentinel、seata、rocketMQ、jenkins、oracle、zookeeper、kafaka。Linux-CentOS7安装docker。

2023-09-02 11:16:59 940

原创 nginx使用详解

本文将详细介绍nginx的各个功能使用,主要包括这些是Nginx的一些高级用法示例,Nginx非常强大和灵活,可以根据具体需求配置各种复杂的规则和行为。

2023-09-04 21:07:55 1282

原创 Nginx配置文件详解

Nginx("engine-x"的缩写)是一个高性能的Web服务器和反向代理服务器,通常用于托管网站、负载均衡和缓存。Nginx的配置文件是用来定义服务器行为的关键组成部分。以下是Nginx配置文件的基本结构和一些常见指令的详细解释。Nginx配置文件通常位于,但也可以在主配置文件中包含其他文件,以便更好地组织和管理配置。

2023-09-04 20:46:51 456

原创 微服务-kubernetes安装

本文将详细介绍kubernetes安装流程。

2023-09-04 20:12:48 907

原创 微服务-OpenFeign基本使用

(1)gzip介绍:gzip是一种数据格式,采用用deflate算法压缩数据;gzip是一种流行的数据压缩算法,应用十分广泛,尤其是在Linux平台。(2)gzip能力:当Gzip压缩到一个纯文本数据时,效果是非常明显的,大约可以减少70%以上的数据大小。(3)gzip作用:网络数据经过压缩后实际上降低了网络传输的字节数,最明显的好处就是可以加快网页加载的速度。网页加载速度加快的好处不言而喻,除了节省流量,改善用户的浏览体验外,另一个潜在的好处是Gzip与搜索引擎的抓取工具有着更好的关系。

2023-09-04 16:15:36 1482

原创 Java问题诊断和排查工具

在数字世界中,Java作为一种流行的编程语言,广泛应用于开发各种类型的应用程序。然而,在开发过程中,不可避免地会出现各种问题。本文将探讨一些用于诊断和排查Java问题的工具。该命令适用的场景是程序内存不足或者GC频繁,这时候很可能是内存泄漏。通过用以上命令查看堆使用情况、大量对象被持续引用等情况。

2023-09-04 15:25:19 654

原创 设计模式-代理模式

代理模式是一种结构型设计模式,它允许你提供一个替代物或占位符以控制对其他对象的访问。代理可以用于多种情况,例如延迟加载、权限控制、日志记录等。代理模式是一种强大的设计模式,可以用于许多不同的应用场景,例如延迟加载、权限控制、日志记录等。通过代理,我们可以在不改变原始对象的情况下增强其功能。在设计和编写代码时,考虑使用代理模式来提高代码的可维护性和可扩展性。

2023-09-04 10:53:54 1324

原创 Java对象内存分配流程

Java对象内存分配流程是Java虚拟机(JVM)中的重要过程,它负责在堆内存和栈内存中分配对象的空间,并管理对象的生命周期。本文将详细介绍Java对象内存分配流程,帮助大家更好地理解JVM的工作原理。逃逸分析是一种有效的减少Java程序中同步负载和内存堆分配压力的跨函数全局数据流分析算法。它通过分析对象的动态作用域,判断对象是否有可能被外部访问或共享,从而决定是否需要将对象分配到堆上。大对象是指需要大量连续内存空间的对象,比如过长的字符串、数组等。

2023-09-04 10:34:31 168

原创 微服务-gateway跨域配置

在SpringCloud项目中,前后端分离目前很常见,在调试时会遇到前端页面通过不同域名或IP访问微服务的后台,此时,如果不加任何配置,前端页面的请求会被浏览器跨域限制拦截,所以,业务服务常常会添加跨域配置跨域请求是指来自不同源(域名、端口或协议)的前端应用发起的HTTP请求。由于浏览器的同源策略,这种请求通常被阻止,除非服务器明确允许。因此,当你的前端应用和后端服务位于不同的域时,就会面临跨域问题。在Web应用程序中,跨域请求是一个常见的问题。

2023-09-04 10:00:02 2910

原创 设计模式-中介者模式

本文将详细介绍设计模式中的中介者模式,其中包括,中介者模式的优点、缺点、各组成部分。中介者模式(Mediator Pattern)是一种设计模式,它定义了一个中介者类,该类将多个对象之间的通信抽象化,使得这些对象可以通过中介者进行通信,从而降低它们之间的直接耦合度。中介者模式适用于多个对象之间存在复杂的交互关系,直接耦合会导致代码变得复杂、难以维护和扩展。中介者模式是一种重要的设计模式,它通过引入中介者类来降低多个对象之间的直接耦合度,从而提高代码的可维护性和可扩展性。

2023-09-02 21:12:21 953 1

原创 设计模式-职责链模式

职责链模式是一种处理多级请求的有效方式,它能够降低耦合度、增加灵活性和可复用性。但在使用时需要考虑可能的问题,并合理地解决。

2023-09-02 20:20:47 1045

原创 设计模式-观察者模式

观察者(Observer)模式的定义:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式,它是对象行为型模式。在某些平台上,可以向目标对象同时注册一个观察者对象和它的某个方法(成员函数)。这样当目标对象的状态改变时,它就调用这个观察者对象的这个注册的方法,而不一定要去调用它的update方法。这就允许这些观察者对象没有update方法,即它们不用都继承自同一个父类。

2023-09-02 17:04:04 841

原创 设计模式—简单工厂

简单工厂模式不属于GoF23种设计模式之一,但是实际中用途广泛,并且可以作为学习“工厂方法模式”以及“抽象工厂模式”的基础。在简单工厂模式中,工厂类提供一个创建产品的工厂方法,用于创建各种产品。客户端只需传入对应的参数,利用该方法即可根据传入参数的不同返回不同的具体产品对象。

2023-09-02 16:41:11 1126 13

原创 JVM内存模型

本文将详细介绍JVM内存模型,JVM定义了若干个程序执行期间使用的数据区域。这个区域里的一些数据在JVM启动的时候创建,在JVM退出的时候销毁。而其他的数据依赖于每一个线程,在线程创建时创建,在线程退出时销毁。

2023-09-02 15:01:44 319

原创 微服务-gateway鉴权

网关是介于客户端和服务器端之间的中间层,所有的外部请求都会先经过 网关这一层。也就是说,API 的实现方面更多的考虑业务逻辑,而安全、性能、监控可以交由 网关来做,这样既提高业务灵活性又不缺安全性。RBAC基于角色访问控制,目前使用最为广泛的权限模型。相信大家对这种权限模型已经比较了解了。此模型有三个用户、角色和权限,在传统的权限模型用户直接关联加了角色,解耦了用户和权限,使得权限系统有了更清晰的职责划分和更高的灵活度。

2023-09-02 10:33:01 2965

原创 Linux安装Nginx

本文将详细介绍在Linux系统下如何安装nginxnginx [engine x] 是 HTTP 和反向代理服务器、邮件代理服务器和通用 TCP/UDP 代理服务器。nginx 的特点是占有内存少,并发能力强,事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。在高连接并发的情况下,nginx是Apache服务器不错的替代品,能够支持高达50000个并发连接数的响应。

2023-09-02 09:40:16 351

原创 Linux-Centos7安装Docker

本文将详细介绍Linux系统下如何安装Docker。

2023-09-02 09:10:15 471

原创 ArrayList(扩容机制)

对于ArrayList集合可能大家并不陌生,但ArrayList集合的扩容机制大家是否了解呢?我们今天着重来看看ArrayList的扩容机制是自动管理的,它会在需要时动态地扩展内部数组的容量,以适应不断增加的元素。这个机制确保了ArrayList在添加元素时能够保持高效性能,但也需要考虑到扩容操作可能引入的性能开销。因此,在处理大量数据时,可以通过手动设置足够大的初始容量来减少扩容的次数,从而提高性能。​。

2023-09-01 20:55:49 1786

原创 SpringBoot项目集成Druid

本文将介绍Druid的相关内容以及项目如何集成Druid,请多多指教。Druid是阿里开源的一个数据库连接池的解决方案。它本身还自带一个监控平台,可以查看时时产生的sql、uri等监控数据,可以排查慢sql、慢请求,方便对sql和项目代码进行调优。这里展示了当前项目数据源的全部详细信息;Druid的SQL监控功能使得用户能够使用标准SQL语法来访问和分析存储在Druid集群中的实时数据,为数据分析提供了更大的灵活性和便利性。

2023-09-01 20:37:32 429

原创 微服务-gateway基本使用

微服务架构已经成为现代软件开发的主流范式之一。它允许开发团队将复杂的应用程序拆分成小的、自治的服务单元,以便更容易进行开发、部署和维护。然而,随着微服务数量的增加,管理和维护这些服务变得越来越复杂。这时候,微服务网关就成了一个不可或缺的组件,用于提高可维护性、安全性和性能。微服务网关是位于微服务架构和外部客户端之间的中间层。它充当了微服务体系结构的入口点,负责处理所有与客户端之间的通信。微服务网关有多个职责,包括路由请求、负载均衡、认证、授权、日志记录和安全性。

2023-09-01 17:09:01 1368

原创 微服务-sentinel详解

在分布式系统领域,流量控制和系统熔断是保障系统稳定性和可用性的重要手段。Spring Cloud作为微服务架构的代表性框架,提供了多种流量控制和熔断的组件。其中,Sentinel是阿里巴巴出品的一款专门用于流量控制和系统熔断的组件,它具有轻量级、高性能、易用性等优点。本文将详细介绍Sentinel的各个方面,包括其基本概念、核心功能、使用方法以及与Spring Cloud其他组件的集成。

2023-09-01 10:52:31 1584 2

原创 MybatisPlus-Generator

本文将详细介绍mybatisplus-generator的相关使用,mybatisplus-generator是 MyBatis Plus 框架中的一个代码生成工具,它能够自动生成与数据库表对应的 Java 实体类、Mapper 接口以及 XML 配置文件。它的出现极大地提高了开发效率,让开发者能够将更多的精力集中在业务逻辑上,而不是繁琐的 CRUD 操作上。

2023-08-31 10:42:14 5481

原创 MybatisPlus插件篇—逻辑删除+p6spy

本文将介绍mybatisplus中的其余插件,主要包括逻辑删除插件、执行SQL分析打印插件、代码生成器插件的相关使用及介绍说明。MyBatis-Plus 的逻辑删除插件和执行 SQL 分析打印插件都为开发者提供了便利,提高了开发效率和调试方便性。逻辑删除插件使得数据的逻辑删除操作更加灵活,符合现实业务需求,同时也避免了直接删除数据可能引发的数据丢失问题。执行 SQL 分析打印插件则为开发者提供了一种快速分析 SQL 语句执行情况的方式,方便调试和性能优化。

2023-08-30 15:58:01 612

原创 MybatisPlus-插件篇

本文将详细介绍mybatisplus中常用插件的使用。Mybatis-Plus 插件提供了很多便捷的方法和功能,能够大幅简化 MyBatis 的开发,减少重复劳动。通过配置依赖、实体类、Mapper 接口以及相应的插件,可以在 Spring Boot 项目中高效地进行数据库操作。

2023-08-29 11:52:02 1918

原创 MybatisPlus核心功能

MyBatis-Plus 是一个基于 MyBatis 的增强工具,提供了一系列强大的功能,能够极大地简化 Java 持久层的开发。本文将深入探讨 MyBatis-Plus 的核心功能,包括条件构造器、主键策略以及自定义 ID 生成器。如果以上内置的主键策略不满足需求,你还可以使用自定义的 ID 生成策略。首先,你需要实现接口,然后在实体类中使用指定使用自定义生成器。@Component@Override// 自定义 ID 生成逻辑// 返回生成的 ID。

2023-08-29 11:10:57 146

原创 Spring Boot集成MyBatis Plus

在现代软件开发中,构建高效、可维护的项目是至关重要的。Spring Boot 是一个流行的框架,它简化了Java应用程序的开发过程。而 MyBatis Plus 则是一个强大的持久层框架,通过简化数据库操作,提升了开发效率。本文将介绍如何使用 Spring Boot 结合 MyBatis Plus 构建高效的项目,附带代码实现。通过结合 Spring Boot 和 MyBatis Plus,我们可以快速构建一个高效的项目。

2023-08-28 21:15:23 717

原创 C# 泛型

泛型是C#中的一个强大特性,它使我们能够编写更具通用性和可复用性的代码,同时保持类型安全。通过泛型,我们可以在不同的数据类型上执行相似的操作,而无需为每种数据类型编写重复的代码。在本篇博客中,我们将深入探讨C#泛型的相关概念、用法和实际代码示例。泛型是一种参数化类型的机制,它允许我们在定义类、方法或接口时使用占位符来代表类型。这些占位符类型在实际使用时会被具体的类型替代,从而实现代码的通用性。泛型能够让我们编写更加灵活、安全和高效的代码。

2023-08-28 09:53:14 1578 16

原创 设计模式-策略模式

在软件设计中,我们经常会面临需要根据不同情况选择不同算法或方法的问题。这些情况可能是基于不同的输入、不同的需求或不同的环境。策略模式(Strategy Pattern)是一种行为型设计模式,它能够让我们以一种优雅的方式在运行时选择算法,从而提高代码的灵活性和可维护性。策略模式定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化不会影响到使用算法的客户。策略模式是一种强大的工具,可以帮助我们在代码中处理不同算法的选择问题。

2023-08-25 10:33:50 1165

原创 ArrayList源码解读

ArrayList,又名动态数组,也就是可增长的数组,可调整大小的数组。动态数组克服了静态数组的限制,静态数组的容量是固定的,只能在首次创建的时候指定。而动态数组会随着元素的增加自动调整大小,更符合实际的开发需求。

2023-08-23 17:42:56 83

原创 Java集合框架扫盲

此篇文章总结了常用集合的一些基本操作,当然,我们不能只会使用它,更加去研究它是如何实现的,这样才能去学习它,成为它,超越它。

2023-08-23 09:48:28 94

原创 多线程与高并发编程一

以往的经验中,只要用到synchronized就以为它已经成为了重量级锁。在jdk1.2之前确实如此,后来发现太重了,消耗了太多操作系统资源,所以对synchronized进行了优化。以后可以直接用,至于锁的力度如何,JVM底层已经做好了我们直接用就行。

2023-08-21 16:23:22 81

原创 JVM及垃圾回收机制

当成功标记出内存中的垃圾对象之后,标记压缩法会将所有的存活对象都移动到一个规整且连续的内存空间中,然后执行Full GC(老年代的垃圾回收,或者被称为Major GC)回收无用对象所占用的内存空间。JVM规范中规定所有的对象和数组都应该存放在堆中,在执行字节码指令时,会把创建的对象存入堆中,对象对应的引用地址存入虚拟机栈中的栈帧中,不过当方法执行完之后,刚刚所创建的对象并不会立马回收,而是要等JVM后台执行GC后,对象才会被回收。Full GC的主要目标是清理堆内存中的无用对象,释放出更多的空间。

2023-08-21 09:22:05 1230

原创 Java实现CAS的原理

CAS(Compare and Swap)是一种并发编程中的技术,用于实现多线程之间的原子操作。它允许你比较一个内存位置的值和一个预期的值,如果相等,则将新值设置到该内存位置,从而实现原子性的修改操作。CAS是乐观锁,线程执行的时候不会加锁,假设没有冲突去完成某项操作,如果因为冲突失败了就重试,最后直到成功为止。虽然CAS存在这三大问题,但在很多情况下仍然是非常有用的,并且在并发编程中发挥着重要的作用。

2023-08-19 10:03:05 206

原创 ThreadLocal详解

ThreadLocal叫做线程变量,意思是ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。ThreadLoal 变量,线程局部变量,同一个 ThreadLocal 所包含的对象,在不同的 Thread 中有不同的副本。因为每个 Thread 内有自己的实例副本,且该副本只能由当前 Thread 使用。

2023-08-08 09:34:51 694

原创 深入了解Redis-实战篇-分布式锁

Redis分布式锁是保障分布式系统数据一致性的重要工具,而Redisson则为Java开发者提供了强大且易用的分布式锁实现。通过了解分布式锁基本原理、不同实现方式对比以及Redisson的可重入锁原理及其特性,我们可以更好地在分布式环境下使用锁来确保数据的安全性和一致性。

2023-08-03 10:46:25 289

原创 深入了解Redis-实战篇-短信登录

短信验证码修改为以手机号为key验证码为value保存在redis中,在用户使用手机号登录时,获取redis中的验证码和请求参数中的验证码比对,一致则去库里查该手机号的用户是否存在,不存在则新建用户,并把该用户对象存在在redis中。

2023-08-01 09:59:59 297

原创 深入了解Redis-基础篇

Redis是一个开源的内存中数据结构存储,用作数据库、缓存、消息代理和流引擎。Redis提供数据结构,如字符串、散列、列表、集合、带范围查询的排序集合、位图、超日志、地理空间索引和流。Redis具有内置复制、Lua脚本、LRU驱逐、事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis Cluster的自动分区提供高可用性。本文阐述了Redis的一些基本概念、Redis的几种基本数据类型以及Redis的Java客户端的基本使用,后续还会更新Redis的一些实战应用以及底层相关内容。

2023-07-15 17:08:05 418

原创 深入了解Spring Data JPA-基础篇

JPA(Java Persistence API)是一种用于管理Java应用程序中对象与关系型数据库之间映射的规范。它定义了一组接口和注解,通过这些接口和注解,开发人员可以将Java对象持久化到数据库中,以及从数据库中检索和操作数据。JPA提供了一种统一的编程模型,使得开发人员可以脱离特定的数据库实现,更加关注业务逻辑的实现。Spring Data JPA是一个强大的数据访问层框架,它简化了数据库操作和持久化实体管理的方式。

2023-06-28 09:38:26 553 1

原创 设计模式-工厂方法模式

工厂方法模式提供了一种将对象的创建与使用分离的方式,通过定义一个创建对象的工厂接口,让子类决定实例化哪个具体类。工厂方法模式可以在不知道具体对象类型的情况下创建对象,使代码更加灵活和可扩展。​。

2023-06-24 09:47:36 766 1

原创 Nacos配置中心:优化微服务架构的配置管理利器

在现代的分布式系统和微服务架构中,应用程序的配置管理是一项关键任务。随着应用程序的规模不断增大,配置的管理和更新变得越来越复杂。为了解决这个问题,Nacos配置中心应运而生。Nacos作为一个功能强大的配置管理平台,为微服务架构提供了便捷的配置管理和动态更新能力。Nacos是一个开源的分布式配置中心和服务注册发现平台,由阿里巴巴集团开发并开源。它提供了统一的配置管理、服务注册与发现以及动态配置更新等功能。Nacos支持多种语言和多种部署方式,适用于各种规模的应用系统。

2023-06-24 09:37:52 516

空空如也

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

TA关注的人

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