自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SHELL编程基础2

SHELL编程 if ,for,while及正则表达式

2023-10-24 10:35:11 677 3

原创 SHELL基础编程

环境变量(变量名通常大写,有操作系统维护)位置变量(bash内置变量,存储脚本执行时的参数)预定义变量(bash内置变量,可以调用但是不能赋值或修改)自定义变量(用户自主设置)定义变量可以是数字,字母,下划线变量名不能使用特殊符号,会报错不能以数字开头查看变量echo ${变量名}echo $变量名定义变量[root@som ~]# echo $a #调用变量,查看变量的值[root@som ~]# a=33 #变量名已经存在,再次赋值,里面的内容会被覆盖。

2023-10-24 10:09:12 222

原创 用户与权限linux篇

在 Linux 系统中,用户和权限是管理和控制文件系统访问的重要组成部分。用户是使用 Linux 系统的个体或实体。每个用户都有一个唯一的用户名和用户 ID(UID),用于标识用户。用户组是一组相关用户的集合。每个用户可以属于一个或多个用户组。用户组有一个唯一的组名和组 ID(GID),用于标识组。每个文件和目录都有与之关联的权限设置,用于定义对其进行读取、写入和执行的访问权限。权限由三个组(所有者、所属组和其他人)的三种类型(读取、写入和执行)组合来表示。文件或目录的所有者是创建该文件或目录的用户。

2023-09-22 16:25:48 401

原创 运维必会的常用linux命令<建议收藏>

Linux是一种操作系统,操作系统是一大堆软件的集合曾经,被Microsoft视为最大的威胁,服务器领域幕后的老大。

2023-09-20 17:54:15 278

原创 Seata分布式事务

本地事务,也就是传统的单机事务。在传统数据库事务中,必须要满足四个原则:分布式事务,就是指不是在单个服务或单个数据库架构下,产生的事务,例如:订单的创建、库存的扣减、账户扣款在每一个服务和数据库内是一个本地事务,可以保证ACID原则。但是当我们把三件事情看做一个"业务",要满足保证“业务”的原子性,要么所有操作全部成功,要么全部失败,不允许出现部分成功部分失败的现象,这就是分布式系统下的事务了。此时ACID难以满足,这是分布式事务要解决的问题Consistency(一致性):用户访问分布式系统中的任意节

2023-09-13 16:07:18 155

原创 MySQL事务详细讲解

事务(Transaction)是指数据库中执行的一系列操作被视为一个逻辑单元,要么全部成功执行,要么全部失败回滚,保证数据的一致性和完整性。举个简单的例子,假设有一个银行账户转账的场景:假设有两个账户,账户 A 的余额为 1000 元,账户 B 的余额为 500 元。现在要将账户 A 中的 200 元转到账户 B 中。使用事务来执行这个转账过程可以保证数据的一致性,即要么转账成功并更新两个账户的余额,要么转账失败并不对账户余额做任何修改。

2023-09-11 19:50:18 211

原创 Spring-SpringBoot-SpringMVC-MyBatis常见面试题

Spring-SpringBoot-SpringMVC-MyBatis常见面试题

2023-08-30 19:35:20 3032 57

原创 MySql存储过程详解

存储过程是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。封装,复用 -----------------------> 可以把某一业务SQL封装在存储过程中,需要用到的时候直接调用即可。可以接收参数,也可以返回数据 --------> 再存储过程中,可以传递参数,也可以接收返回值。

2023-08-13 17:55:53 724 46

原创 MySQL存储结构及索引

大家可能没有听说过存储引擎,但是一定听过引擎这个词,引擎就是发动机,是一个机器的核心组件。比如,对于舰载机、直升机、火箭来说,他们都有各自的引擎,是他们最为核心的组件。而我们在选择引擎的时候,需要在合适的场景,选择合适的存储引擎,就像在直升机上,我们不能选择舰载机的引擎一样。而对于存储引擎,也是一样,他是mysql数据库的核心,我们也需要在合适的场景选择合适的存储引擎。接下来就来介绍一下存储引擎。存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。

2023-08-11 19:26:06 684 5

原创 Kafka入门,保姆级教学

producer:发布消息的对象称之为主题生产者(Kafka topic producer)topic:Kafka将消息分门别类,每一类的消息称之为一个主题(Topic)consumer:订阅消息并处理发布的消息的对象称之为主题消费者(consumers)broker:已发布的消息保存在一组服务器中,称之为Kafka集群。集群中的每一个服务器都是一个代理(Broker)。消费者可以订阅一个或多个主题(topic),并从Broker拉数据,从而消费这些已发布的消息。

2023-08-06 17:30:52 960 3

原创 Docker入门及安装

Docker是一个用来开发、运输和运行应用程序的开放平台。使用Docker可以将应用程序与基础结构分离,以便快速交付软件。使用Docker,您可以以管理应用程序的方式管理基础架构。通过利用Docker的方法快速传送、测试和部署代码,可以显著减少编写代码和在生产中运行代码之间的延迟。

2023-08-04 18:33:24 307 16

原创 Spring基于注解管理bean及全注解开发

Spring是一款主流的Java EE 轻量级开源框架,目的是用于简化Java企业级引用的开发难度和开发周期。从简单性、可测试性和松耦合度的角度而言,任何Java应用都可以从Spring中受益。Spring框架提供自己提供功能外,还提供整合其他技术和框架的能力。Spring自诞生以来备受青睐,一直被广大开发人员作为Java企业级应用程序开发的首选。时至今日,Spring俨然成为了Java EE的代名词,成为了构建Java EE 应用的事实标准。

2023-07-28 13:08:58 880 31

原创 SpringBoot分布式架构报错:javax.servlet.servletcohtext.getvirtualserverName()Ljava/lang/string;解决方案

main依赖分层的模块,依赖中存在servlet-api,会和main starter-web冲突。spring-boot-starter-web 底层web容器 默认tomcat。tomcat容器里默认加载servlet容器,会有servlet-api存在.

2023-07-27 19:34:03 394 2

原创 Mybatis基于注解与XML开发

Spring Boot 是一个快速开发的框架,它简化了基于 Spring 框架的应用程序的初始化和配置过程。MyBatis 是一个流行的持久层框架,它可以帮助我们更便捷地与关系型数据库进行交互。

2023-07-27 11:32:19 1145 19

原创 Java开发中的分层开发和整洁架构

中,提到的解决的思想.核心稳定的模块,如果依赖了容易变动不稳定模块,不满足整洁架构的思想.分层开发没有达到最终的目的,实现解耦,实现扩展维护方便.让程序维护简单,扩展简单就是正确。核心点: 分层的众多模块中,

2023-07-26 21:56:30 1169 2

原创 MinIO

MinIO基于Apache License v2.0开源协议的对象存储服务,可以做为云存储的解决方案用来保存海量的图片,视频,文档。由于采用,服务端可以工作在Windows,Linux, OS X和FreeBSD上。配置简单,基本是复制可执行程序,单行命令可以运行起来。MinIO兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。

2023-07-26 11:28:15 368 3

原创 RocketMQ重复消费的解决方案::分布式锁直击面试!

需要结合业务,设计key值(redis中最主要的功能,都关系到key值的设计),抢锁的逻辑中,满足是业务数据,满足重复消费的重复数据.就可以实现这个key值的设计.目标: 多线程执行业务之前,先判断执行权限,抢锁,抢到锁的才能执行业务,抢不到的不执行.(当前案例中,抢锁,然后执行的业务逻辑是:orderAdd): 如果有一个消费者抢到锁了,执行了业务方法.执行完成后,没有释放锁的机制.如果引入等待重抢的机制,由于抢到锁的没有释放,会导致。上述整改的流程中避免了死锁问题,但是存在删除失败导致死锁的问题.

2023-07-25 20:08:57 1857 2

原创 SpringBoot整合RocketMQ 不多说直接上代码

doSend方法,将Message对象中的payLoad做了序列化,存储到rocketmq message的body中. 将header存储到header头中. 方便消费的时候做反序列化.可以将同步转化成异步.这样做的好处,提升请求并发qps. 缺点是不知道订单到底是成功还是失败.(业务处理落地方案选型在这里是需要平衡的,并发和业务用户体验)可以异步.只要订单新增成功,说明库存够用.删除购物车,可以不在当前业务同步执行,降低订单处理时长,提升RT效率.考虑: 是不是所有的同步,都有必要转化成异步.

2023-07-25 19:49:49 118

原创 RocketMQ基本概念与入门

消费者组是同一类消费者的集合,这类Consumer消费的是同一个Topic类型的消息,对应同一类消息数据。消费者组使得在消息消费方面,实现负载均衡(将一个Topic中的不同的Queue平均分配给同一个Consumer Group的不同的Consumer,生产者发送的某一条消息,只能指向一个主题,多条消息可以指向同一个主题,同一个主题中有多个消息队列保存消息,消费端可以根据订阅的主题消费不同主题的消息.这样可以实现业务隔离.(分布式体现的关键),每个Queue中存放的就是该Topic的消息。

2023-07-25 19:30:16 712

原创 Freemarker从0到1深入讲解

那就意味着要准备数据在真实编程语言中来显示,比如数据库查询和业务运算, 之后模板显示已经准备好的数据。FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。4、文本,仅文本信息,这些不是freemarker的注释、插值、FTL指令的内容会被freemarker忽略解析,直接输出内容。3、FTL指令:和HTML标记类似,名字前加#予以区分,Freemarker会解析标签中的表达式或逻辑。例: ${name!

2023-07-22 15:05:05 115

原创 sentinel深入讲解流量控制/熔断降级

在10秒钟之内,最少达到1次请求前提下,超过1毫秒的资源处理时间记录为慢调用,如果所有调用请求的慢调用比例达到50%,则资源会熔断,熔断持续时间10秒,10秒后,断路器半开,尝试访问资源,再次计算熔断规则.

2023-07-20 18:47:40 685 5

原创 SpringCloud Gateway网关

微服务网关是一个用于管理和监控微服务的入口,用于转发和路由来自客户端的请求。微服务网关可以将来自客户端的请求转发给后端的多个微服务,同时也可以处理跨域、身份验证、限流、缓存、流量控制等一系列与微服务相关的功能,从而简化了微服务架构的服务开发的复杂度。集中管理:微服务很多,接口api也很多,所以通过网关为所有的微服务api接口提供统一管理维护的功能安全考虑:为了安全考虑,几乎绝大部分微服务都需要认证授权,和访问控制,网关可以提前完成这个任务,为微服务提供保障.

2023-07-18 19:23:47 756 2

原创 Dubbo框架保姆级教学[手把手教会你]

RPC协议中不约束底层通信协议,dubbo作为RPC框架原则上也不限制约束。但是Dubbo官方推荐通信协议使用dubbo,这个协议也是Dubbo框架默认协议。spring cloud alibaba众多组件的核心组件注册中心。第一个是zookeeper。他是分布式协调的服务注册发现组件。这个Hessian协议是dubbo可以选择的一个序列化协议。Dubbo协议(也是默认的,也是我们使用的)RPC包含2部分内容。

2023-07-17 20:08:17 141 2

原创 Nacos注册与配置中心:使用详讲

nacos结构:角色2个: 服务端(nacos-server进程),客户端(spring cloud整合到web应用组件)nacos功能:服务注册: 在微服务中,服务注册目的,是为了让别的服务发现,获取当前服务信息服务发现: 为了调用别的服务,从而在nacos进行信息的抓取。

2023-07-13 19:08:28 2281 1

原创 微服务-Nacos环境安装

Nacos保姆级教程及相关错误解决方案:::Nacos(全称:Dynamic Naming and Configuration Service)是一个开源的动态服务发现、配置和服务管理平台。它提供了服务注册与发现、动态配置管理和服务元数据管理等功能,可以帮助开发人员更容易地构建和管理微服务架构。

2023-07-12 18:49:41 1735 7

原创 Maven详见及在Idea中的使用方法[保姆级包学包会]

意义: 统一多模块mvn命令和顺序的执行实现: 聚合工程packaging类型pom ,指向module被聚合工程本质: pom文件加载的顺序,通过modules关联起来了.

2023-07-10 13:01:25 1445 3

原创 Git常用命令及在Idea中如何使用创建分支等,详讲带图[保姆级]

注意:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错( fatal: refusing to merge unrelated histories )Git中的标签,指的是某个分支某个特定时间点的状态。通过标签,可以很方便的切换到标记时的状态。使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。同一个仓库可以有多个分支,各个分支相互独立,互不干扰。注意:这些文件的状态会随着我们执行Git的命令发生变化。

2023-07-10 09:36:41 4948 4

原创 Elasticsearch从0到1保姆级教学附带代码(适合小白白们学习)

注意:执行以上搜索时,会自动对关键字进行分词,例如,关键是“套装”时,“散装”也会出现在结果中,因为会对“套装”进行分词,得到“套装”、“套”、“装”这些词,而“散装”也包含了“装”,所以,会出现在结果中!注意:执行以上搜索时,如果搜索的字段是text类型,会自动对关键词进行分词,如果字段是keyword,则不会分词,仅有完全匹配的数据才会被搜索到!注意:此类操作会使用请求参数替换原有的整个数据,如果原数据有5个属性,请求参数只有2个属性,执行后,数据将只有本次请求的2个属性!所以,整体效率非常之高!

2023-07-06 19:31:42 1649 1

原创 Java就业冲刺之数据结构-递归-双向链表-树

删除的节点只有一颗子树,让该节点的父节点的left/right,指向删除节点的子节点即可。删除的节点有两颗子树,让删除节点的前驱节点/后继节点来替换该节点,才能保证树已让是有序的。删除的是叶子节点,此时直接删除即可,让其父节点指向该节点的引用置为null,即可。增删元素:(默认在尾部添加)将链断开,然后重新链接,从而实现添加/删除元素。为了避免失衡二叉树,对二叉排序树进行了优化,产生了两种新的数据结构。查找元素: get(int index):E。Comparator–外比较器。

2023-07-04 20:14:39 121 2

原创 Redis基础,文图及代码讲解保姆保姆教学

Redis本身并没有要求Key应该如何定义,但是,由于Redis被设计为可以存放特别多数据,并且,各种各样的数据都可以放在Redis中,所以,在实际应用中,应该使用有规律的Key,否则,后续读写数据时会很麻烦。由于在关系型数据库和Redis中都存储了数据,如果某个数据需要修改,最终修改的肯定是关系型数据库中的数据,但是,如果Redis中的数据没有及时更新,却仍从Redis中读取数据,则读取到的数据就是“不准确的”当登录Redis的客户端后(命令提示符变成127.0.0.1:6379>状态后),可以:!

2023-07-03 14:24:05 150

原创 Redis可视化工具Windows版 Another Redis Desktop Manager 安装与使用_保姆级别

Another Redis Desktop Manager(简称:RedisDesktopManager或RDM)是一个Redis数据库的可视化管理工具。它是一个跨平台的桌面应用程序,能够让用户更轻松地与Redis进行交互和管理。以下是Another Redis Desktop Manager的一些特点和功能:可视化界面:提供直观、用户友好的可视化界面,使用户能够以图形化的方式管理Redis数据库。多连接支持:允许用户同时管理多个Redis数据库实例,并在界面上进行切换。

2023-06-29 19:12:55 21517

原创 Java面试题及答案整理汇总(2023最新版)从基础到框架

整理不易,各位看官点赞再看更舒适,2023版从基础到框架

2023-06-28 17:44:49 636 3

原创 Session与Token的不同及解决思路

服务器端的应用程序通常是基于HTTP协议的,HTTP协议本身是一种“无状态”协议,所以,它并不能保存客户端的状态,例如,无法识别客户端的身份,所以,即使同一个客户端多次访问同一个服务器,服务器并不能识别出它就是此前来访的客户端!在开发实践中,大多是需要能够识别客户端身份的,通常可以使用Session机制来解决!

2023-06-25 17:58:07 159

原创 Spring保姆级入门案例

Spring是一款主流的Java EE 轻量级开源框架,目的是用于简化Java企业级引用的开发难度和开发周期。从简单性、可测试性和松耦合度的角度而言,任何Java应用都可以从Spring中受益。Spring框架提供自己提供功能外,还提供整合其他技术和框架的能力。Spring自诞生以来备受青睐,一直被广大开发人员作为Java企业级应用程序开发的首选。时至今日,Spring俨然成为了Java EE的代名词,成为了构建Java EE 应用的事实标准。

2023-06-22 13:46:54 182 2

原创 数据库三大范式讲解实用篇

lNF:在关系模型中,对于添加的一个规范要求,所有的域都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项,简单来说就是:列不可再分2NF:在1NF的基础上,非码属性必须完全依赖于候选码,简单来说就是:非主属性不能只依赖主键的一部分3NF︰在2NF基础上,任何非主属性不依赖于其它非主属性,简单来说就是:每列数据都与主键直接相关。

2023-06-20 18:56:33 795

原创 基于SpringBoot+Mybatis-Plus框架--淘茶宝项目基本配置内容讲解及软件生命周期

软件生命周期讲解;@Sql注解讲解;DAO架构讲解;Service讲解;关于异常;Controller讲解;RequestMapping讲解;MockMvc单元测试;Knife4j使用;全局异常处理

2023-06-15 20:08:57 72 4

原创 GPT 对我们生活中的应用深度剖析及镜像

ChatGPT是一种基于GPT模型的聊天机器人,能够回答各种问题和完成多种任务。它使用自然语言处理技术,能够进行对话,并根据用户输入的问题提供相应的响应。

2023-06-13 22:59:46 463 10

原创 淘茶宝项目基本搭建

- MyBatis Plus (简称MP)是一个MyBatis的增强工具,已连续5年 (2017.2018、2019、2020、2021)获得“OSC年度最受欢迎中国开源软件”奖

2023-06-13 20:25:24 41 1

原创 Mybatis-Plus代码生成器模板

Mybatis-Plus代码生成器是基于 MyBatis 核心框架进行封装的一款快速生成Java代码的工具。它结合了 Mybatis-Plus 自身的代码增强功能和 Mybatis 的 XML 配置文件生成器,可以帮助开发者快速地生成 Java 实体类、XML 配置文件、Mapper 接口以及 Service 和 Controller 等代码,可以大大提高开发效率。支持多种生成方式:Mybatis-Plus 支持使用命令行、Maven 插件和IDEA插件等多种方式进行生成。

2023-06-13 10:11:32 1002

原创 淘茶宝项目第一天

1:数据库设计规范,2:资讯表设计,3:SQL源码

2023-06-12 18:37:48 34

将MinIO封装为starter

封装为starter后,可以提供一系列的便捷API和功能,使开发人员更容易地使用MinIO。例如,可以提供一些常用的上传、下载和删除文件的方法,而无需开发人员自己编写复杂的操作代码,减少了在多个项目中重复配置的工作,将MinIO封装为starter后,可以更好地与Spring Boot框架和其他组件进行集成这样,可以将MinIO融入到项目的整体架构中,提高系统的灵活性和可扩展性。

2023-07-22

适合小白写的项目 烘焙坊前端项目源码

主要为烘焙坊前端项目,适合新手学习,附带源码

2023-06-02

空空如也

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

TA关注的人

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