自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 分布式事务问题

在分布式系统中,系统间的网络不能100%保证健康,一定会有故障的时候,而服务有必须对外保证服务。因此Partition Tolerance不可避免。当节点接收到新的数据变更时,就会出现问题了:如果此时要保证一致性,就必须等待网络恢复,完成数据同步后,整个集群才对外提供服务,服务处于阻塞状态,不可用。如果此时要保证可用性,就不能等待网络恢复,那node01、node02与node03之间就会出现数据不一致。也就是说,在P一定会出现的情况下,A和C之间只能实现一个。

2024-01-06 10:15:00 961

原创 seata的部署和集成

Seata是 2019 年 1 月份蚂蚁金服和阿里巴巴共同开源的分布式事务解决方案。致力于提供高性能和简单易用的分布式事务服务,为用户打造一站式的分布式解决方案。,其中的文档、播客中提供了大量的使用说明、源码分析。

2024-01-05 14:22:54 1004

原创 微服务雪崩问题及解决方案

Sentinel是阿里巴巴开源的一款微服务流量控制组件。丰富的应用场景、完备的实时监控、广泛的开源生态、完善的SPI扩展点•直接:对当前资源限流•关联:高优先级资源触发阈值,对低优先级资源限流。•链路:阈值统计时,只统计从指定资源进入当前资源的请求,是对请求来源的限流快速失败:QPS超过阈值时,拒绝新的请求warm up: QPS超过阈值时,拒绝新的请求;QPS阈值是逐渐提升的,可以避免冷启动时高并发导致服务宕机。排队等待:请求会进入队列,按照阈值允许的时间间隔依次执行请求;

2024-01-01 23:22:05 1731 2

原创 部署es集群

在单机上利用docker容器运行多个es实例来模拟es集群。不过生产环境推荐大家每一台服务节点仅部署一个es的实例。部署es集群可以直接使用docker-compose来完成,但这要求你的Linux虚拟机至少有的内存空间。

2023-12-31 12:56:30 1165

原创 centos安装Docker和DockerCompose

Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10, CentOS 7 满足最低内核的要求,所以我们在CentOS 7安装Docker。

2023-12-30 22:18:47 787

原创 RestClient操作文档

文档操作的基本步骤:初始化RestHighLevelClient创建XxxRequest。XXX是Index、Get、Update、Delete、Bulk准备参数(Index、Update、Bulk时需要)发送请求。调用RestHighLevelClient#.xxx()方法,xxx是index、get、update、delete、bulk解析结果(Get时需要)

2023-12-30 10:30:00 455

原创 Rest Client

JavaRestClient操作elasticsearch的流程基本类似。核心是client.indices()方法来获取索引库的操作对象。索引库操作的基本步骤:初始化RestHighLevelClient创建XxxIndexRequest。XXX是Create、Get、Delete准备DSL( Create时需要,其它是无参)发送请求。调用RestHighLevelClient#indices().xxx()方法,xxx是create、exists、delete。

2023-12-29 10:45:00 529

原创 elasticsearch

elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等领域:elasticsearch底层是基于来实现的。是一个Java语言的搜索引擎类库,是Apache公司的顶级项目,由DougCutting于1999年研发。。

2023-12-28 10:15:00 853

原创 RabbitMQ

基本消息队列的消息发送流程:建立connection创建channel利用channel声明队列利用channel向队列发送消息基本消息队列的消息接收流程:建立connection创建channel利用channel声明队列定义consumer的消费行为handleDelivery()利用channel将消费者与队列绑定。

2023-12-27 11:45:00 941

原创 Gateway服务网关

Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等响应式编程和事件流技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。网关的请求路由权限控制限流:网关作为微服务入口,需要校验用户是是否有请求资格,如果没有则进行拦截。

2023-12-26 10:00:00 401

原创 Feign远程调用

​Feign是一个声明式的http客户端,官方地址:GitHub - OpenFeign/feign: Feign makes writing java http clients easier其作用就是帮助我们优雅的实现http请求的发送

2023-12-25 10:15:00 915

原创 Nacos配置管理

Nacos除了可以做注册中心,同样可以做配置管理来使用。

2023-12-24 10:00:00 490

原创 Nacos注册中心

是阿里巴巴的产品,现在是中的一个组件。相比功能更加丰富,在国内受欢迎程度较高。

2023-12-23 10:00:00 1282

原创 Eureka注册中心

Eureka注册中心是Netflix开源的一款服务发现工具,用于实现微服务架构中的服务注册与发现。Eureka注册中心可以用于管理和监控微服务架构中的各个服务实例,并提供了服务发现和故障转移功能。通过Eureka注册中心,微服务之间可以互相感知和调用,实现高可用性和弹性扩展。Eureka注册中心具有简单易用、可靠性强、支持大规模部署等特点,被广泛应用于微服务架构中。

2023-12-22 10:15:00 1418

原创 Apache POI

Apache POI 是一个处理Miscrosoft Office各种文件格式的开源项目。简单来说就是,我们可以使用 POI 在 Java 程序中对Miscrosoft Office各种文件进行读写操作。一般情况下,POI 都是用于操作 Excel 文件。应用场景:导出交易明细、业务系统导出Excel报表、批量导入业务数据。

2023-12-21 10:00:00 524

原创 Apache ECharts

Apache ECharts 是一款基于 Javascript 的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。

2023-12-20 10:00:00 447

原创 WebSocket

<button onclick="send()">发送消息</button><button onclick="closeWebSocket()">关闭连接</button></div>

2023-12-19 10:00:00 676

原创 Spring Task

*** 自定义定时任务类*/@Component@Slf4j/*** 定时任务 每隔5秒触发一次*/")log.info("定时任务开始执行:{}",new Date());

2023-12-18 10:15:00 91 1

原创 CentOS安装软件的几种方法

使用软件包管理工具安装:除了Yum和RPM,还有一些第三方的软件包管理工具,如dnf、snap等,可以使用这些工具安装软件。使用RPM包安装:RPM是CentOS上常见的软件包格式,可以使用rpm命令直接安装RPM包。使用Yum命令安装:Yum是CentOS的包管理器,可通过命令行安装、更新和卸载软件包。使用Yum组安装:Yum还提供了一些软件包组的安装方式,可以一次性安装一组软件包。以上是几种常用的安装软件的方式,根据具体的需求和软件包的获取方式,选择合适的安装方式即可。

2023-12-17 14:43:34 757 1

原创 Spring Cache

Spring Cache 是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。Spring Cache 提供了一层抽象,底层可以切换不同的缓存实现,例如:EHCacheCaffeineRedis(常用)导入Spring Cache和Redis相关maven坐标。

2023-12-16 10:15:00 335 1

原创 Spring-Boot-Starter-Data-Redis快速使用

Spring Boot Data Redis是Spring Boot框架提供的一套用于操作Redis的工具。它简化了在Spring Boot应用中使用Redis的流程,提供了一些便捷的注解和方法,可以方便地对Redis进行数据的存储、读取和删除操作。

2023-12-15 15:22:22 719

原创 Redis

Redis是一个基于的key-value结构数据库。Redis 是互联网技术领域使用最为广泛的。基于内存存储,读写性能高适合存储热点数据(热点商品、资讯、新闻)企业应用广泛。

2023-12-14 13:24:00 21 1

原创 Java基础——IO流

IO流的作用:就是可以对文件或者网络中的数据进行读、写的操作。把数据从磁盘、网络中读取到程序中来,用到的是输入流。把程序中的数据写入磁盘、网络中,用到的是输出流。

2023-12-13 16:49:29 351 1

原创 Spring MVC 应用程序中的不同 web 请求的注解

和是 Spring 框架中用于处理 Spring MVC 应用程序中的不同 web 请求方面的注解。

2023-12-12 20:41:42 351

原创 SpringBoot项目使用PageHelper

PageHelper是Mybatis的一款功能强大、方便易用的分页插件,支持任何形式的单标、多表的分页查询。

2023-12-11 14:05:31 91 1

原创 SpringBoot使用阿里云OSS

2.定义OSS相关配置application-dev.ymlapplication.yml3.读取OSS配置 4.生成OSS工具类对象 5.定义文件上传接口

2023-12-10 17:09:19 41 1

原创 软件开发流程

需求分析:需求规格说明书、产品原型设计:UI设计、数据库设计、接口设计编码:项目代码、单元测试测试:测试用例、测试报告上线运维:软件环境安装、配置角色分工项目经理:对整个项目负责,任务分配、把控进度产品经理:进行需求调研,输出需求调研文档、产品原型等UI设计师:根据产品原型输出界面效果图架构师:项目整体架构设计、技术选型等开发工程师:代码实现测试工程师:编写测试用例,输出测试报告运维工程师:软件环境搭建、项目上线软件环境开发环境(development)

2023-12-09 15:29:44 28

原创 SpringBoot项目使用kni4j(Swagger)

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务(它的主要作用是:使得前后端分离开发更加方便,有利于团队协作接口的文档在线自动生成,降低后端开发人员编写接口文档的负担功能测试Spring已经将Swagger纳入自身的标准,建立了Spring-swagger项目,现在叫Springfox。通过在项目中引入Springfox ,即可非常简单快捷的使用Swagger。

2023-12-09 14:21:55 55

原创 Java基础

api全称是Application Program Interface 应用程序接口,就是别人写好的一些程序,给咱们程序员直接拿去调用。泛型类,在实际工作中一般都是源代码中写好,我们直接用的,就是ArrayList<E>这样的,自己定义泛型类是非常少的。

2023-12-08 13:02:12 120

原创 Java基础

数组有两种初始化的方式,一种是静态初始化、一种是动态初始化。

2023-12-07 16:58:35 26 1

原创 Map集合

就称之为一个键值对,而且在Java中有一个类叫Entry类,Entry的对象用来表示键值对对象。方式二:键值对 使用Entry对象 使用entry的getKey getValue。TreeMap(由键决定)按大小默认升序排序、不重复、无索引。LinkedHashMap(由键决定)有序、不重复、无索引。双列集合,就是说集合中的元素是一对一对的。Map集合中的每一个元素是以。HashMap(由键决定)无序、不重复、无索引。方式一:键找值 需要使用keySet、get方法。方式三:Lambda。

2023-12-03 10:07:25 14 1

原创 Collection集合体系

List集合:添加的元素是有序、可重复、有索引ArrayList、LinkedList:有序、可重复、有索引Set系列集合:添加元素是无序、不重复、无索引HashSet:无序、不重复、无索引LinkedHashSet:有序、不重复、无索引TreeSeT:按照大小默认升序、不重复、无索引。

2023-12-02 09:50:25 17

原创 一条sql在Mysql的执行过程

2.开始执行sql之前会查询缓存,如果当前mysql开启了查询缓存的情况下,会把sql语句当成一个key去缓存当中查询,如果命中就直接返回,但是查询缓存对于一般的业务是很鸡肋的,一直在变动,缓存中的数据也会跟着一起变,耗费性能,所以mysql8以后移除了查询缓存。mysql的底层组件:server层(连接器,查询缓存,分析器,优化器,执行器)与引擎层(My ISAM,InnoDb)5.然后交给执行器执行语句,执行器会调用我们具体存储引擎的接口,进行数据的查询。一条sql在Mysql的执行过程。

2023-12-01 14:39:02 20 1

原创 垃圾回收器算法

标记清除算法,可以加上整理,还有各种控制参数,可以控制老年代的开始调用gc的阈值,分为初始标记->并发标记->重新标记->并发清除->并发重置,cms会产生漏标和多标的问题,多标就是会产生浮动垃圾,下一次gc。标记整理算法,标记清除算法(因为老年代的对象基本不会被回收,所以用当前方法比较好),标记复制算法(年轻代的算法)分为黑(当前所有引用的对象都被gc标记过了),灰(至少还有一个引用的对象没有被回收器标记),白(一直没有被标记)单线程的垃圾收集器,老年代采用的标记整理算法。清除,漏标会采用写屏障。

2023-12-01 14:10:47 18 1

原创 JVM内存模型

元空间存储类的元信息,静态变量和常量池等并入堆中,永久代中的数据被元空间和对内存瓜分了。2、类及方法的信息比较难确定其大小,因为永久代的大小指定比较困难,太小容易出现永久带溢出,太大容易导致老年代溢出。运行时数据区:根据JVM规范,JVM内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法。类装载子系统、执行引擎、本地方法接口、本地方法库、运行时数据区(JVM内存结构)根据JVM规范,JVM内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法。方法区:类信息:静态变量,常量,类信、运行时常量池。

2023-12-01 13:29:15 17 1

原创 jvm类加载

1、使用new关键字实例化对象2、读取或者设置一个类的静态变量3、调用类对应的静态方法4、对类进行放射调用的时候5、初始子类的时候,父类会先被初始化6、虚拟机启动时,定义的main()方法的那个类先初始化。

2023-12-01 11:30:35 29 1

空空如也

空空如也

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

TA关注的人

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