自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JWT详解及实战教程

RFC 7519HMACRSAorECDSA---[摘自官网]# 1.翻译- 官网地址: https://jwt.io/introduction/- 翻译: jsonwebtoken(JWT)是一个开放标准(rfc7519),它定义了一种紧凑的、自包含的方式,用于在各方之间以JSON对象安全地传输信息。此信息可以验证和信任,因为它是数字签名的。jwt可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对进行签名​# 2.通俗解释。

2024-04-13 11:28:59 556

原创 面试题(六)

基于性能的考虑,NameServer本身的实现⾮常轻量,⽽且可以通过增加机器的⽅式⽔平扩展,增加集群的抗压能⼒,⽽zookeeper的写是不可扩展的,⽽zookeeper要解决这个问题只能通过划分领域,划分多个zookeeper集群来解决,⾸先操作起来太复杂,其次这样还是⼜违反了CAP中的A的设计,导致服务之间是不连通的。在其他⽇志⽂件当中,并没有使⽤零拷⻉的⽅式。⾸先要确保消息不多发,这个不常出现,也⽐较难控制,因为如果出现了多发,很⼤的原因是⽣产者⾃⼰的原因,如果要避免出现问题,就需要在消费端做控制。

2024-04-01 19:51:37 424

原创 面试题(五)

RPC,表示远程过程调⽤,对于Java这种⾯试对象语⾔,也可以理解为远程⽅法调⽤,RPC调⽤和 HTTP调⽤是有区别的,RPC表示的是⼀种调⽤远程⽅法的⽅式,可以使⽤HTTP协议、或直接基于TCP 协议来实现RPC,在Java中,我们可以通过直接使⽤某个服务接⼝的代理对象来执⾏⽅法,⽽底层则通 过构造HTTP请求来调⽤远端的⽅法,所以,有⼀种说法是RPC协议是HTTP协议之上的⼀种协议,也是可以理解的。时间戳 值在⾼位,中间是固定的机器码,⾃增的序列在低位,整个ID是趋势递增的。

2024-04-01 19:42:47 759

原创 面试题(四)

Cluster模式:Cluster模式是⽤得⽐较多的模式,它⽀持多主多从,这种模式会按照key进⾏槽位的分配,可以使得不同的key分散到不同的主节点上,利⽤这种模式可以使得整个集群⽀持更⼤的数据 容量,同时每个主节点可以拥有⾃⼰的多个从节点,如果该主节点宕机,会从它的从节点中选举⼀ 个新的主节点。否则,redis的服务就被中断 了。服务器运⾏ID(runid):每个Redis节点,都有其运⾏ID,运⾏ID由节点在启动时⾃动⽣成,主节点会 将⾃⼰的运⾏ID发送给从节点,从节点会将主节点的运⾏ID存起来。

2024-03-28 14:35:20 886

原创 面试题(三)

多个事务⽅法相互调⽤时,事务如何在这些⽅法间传播,⽅法A是⼀个事务的⽅法,⽅法A执⾏过程中调 ⽤了⽅法B,那么⽅法B有⽆事务以及⽅法B对事务的要求不同都会对⽅法A的事务具体执⾏造成影响, 同时⽅法A的事务对⽅法B的事务执⾏也有影响,这种影响具体是什么就由两个⽅法所定义的事务传播类型所决定。另外,Bean是不是线程安全,跟Bean的作⽤域没有关系,Bean的作⽤域只是表示Bean的⽣命周期范 围,对于任何⽣命周期的Bean都是⼀个对象,这个对象是不是线程安全的,还是得看这个Bean对象本身。

2024-03-25 20:34:00 1106

原创 面试题(二)

线程安全指的是,我们写的某段代码,在多个线程同时执⾏这段代码时,不会产⽣混乱,依然能够得到 正常的结果,⽐如i++,i初始化值为0,那么两个线程来同时执⾏这⾏代码,如果代码是线程安全的,那么最终的结果应该就是⼀个线程的结果为1,⼀个线程的结果为2,如果出现了两个线程的结果都为1,则 表示这段代码是线程不安全的。线程分为⽤户线程和守护线程,⽤户线程就是普通线程,守护线程就是JVM的后台线程,⽐如垃圾回收 线程就是⼀个守护线程,守护线程会在其他普通线程都停⽌运⾏之后⾃动关闭。各种算法的优化就是减少STW。

2024-03-24 14:24:54 496

原创 面试题(一)

1.JDK、JRE、JVM之间的区别2.hashcode()和equals()的区别hashcode(): 意思就是就是当对象调用hashcode()方法时,会计算出一个hash值,其实就行相当于那个对象的指纹信息,但是Java中不能保证每个对象的指纹信息(hash值)唯一,就是不能完全保证不相同,也是会有相同的可能性,比如:1.如果这两个对象的hashcode不相同,则这两个对象肯定不会是同一个。2.如果这两个对象的hashcode相同,并不能说是同一对象,也有可能是两个对象。

2024-03-23 14:19:16 543

原创 RabbitMQ详细讲解

虽然并行已经提高的处理时间,但是,前面说过,邮件和短信对我正常的使用网站没有任何影响,客户端没有必要等着其发送完成才显示注册成功,应该是写入数据库后就返回.由此可以看出,引入消息队列后,用户的响应时间就等于写入数据库的时间+写入消息队列的时间(可以忽略不计),引入消息队列后处理后,响应时间是串行的3倍,是并行的2倍。当消息处理比较耗时的时候,可能生产消息的速度会远远大于消息的消费速度。将注册信息写入数据库后,发送邮件的同时,发送短信,以上三个任务完成后,返回给客户端,并行的方式能提高处理的时间。

2024-03-20 17:44:49 1210

原创 RabbitMQ 安装保姆级教程

MQ(Message Quene) : 翻译为消息队列,通过典型的生产者和消费者模型,生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的侵入,轻松的实现系统间解耦。别名为消息中间件通过利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。connections:无论生产者还是消费者,都需要与RabbitMQ建立连接后才可以完成消息的生产和消费,在这里可以查看连接情况。

2024-03-19 12:58:22 1372 1

原创 SpringBoot整合ElasticSearch应用

映射: 用来决定放入文档的每个字段以什么样方式录入到 ES 中 字段类型 分词器..文档: 可以被索引最小单元 json 数据格式。特点: 始终使用面向对象方式操作 ES。索引: 用来存放相似文档集合。

2024-03-17 22:36:14 321

原创 ElasticSearch 看这一篇就够了,详解!!!

可以在highlight中使用。

2024-03-15 20:07:38 800

原创 ElasticSearch 学习(docker,传统方式安装、安装遇到的问题解决,)

简称ES,是基于构建的开源搜索引擎,是当前最流行的企业级搜索引擎。Lucene本身就可以被认为迄今为止性能最好的一款开源搜索引擎工具包,但是lucene的API相对复杂,需要深厚的搜索理论。很难集成到实际的应用中去。ES是采用java语言编写,提供了简单易用的RestFul API,开发者可以使用其简单的RestFul API,开发相关的搜索功能,从而避免lucene的复杂性。是一个针对的开源分析及可视化平台,使用Kibana可以查询、查看并与存储在ES索引的数据进行交互操作。

2024-03-10 22:52:36 808

原创 SpringBoot整合 R2DBC

1、导入R2DBC依赖。

2024-03-10 22:36:31 361

原创 设计模式之依赖倒转原则

依赖倒转原则(Dependence Inversion Principle)是指:高层模块不应该依赖低层模块,二者都应该依赖其抽象(抽象类/接口),不要去依赖一个具体的子类抽象不应该依赖细节,细节应该依赖抽象(这样稳定性会比较好)依赖倒转(倒置)的中心思想是面向接口编程依赖倒转原则是基于这样的设计理念:相对于细节的多变性,抽象的东西要稳定的多。以抽象为基础搭建的架构比以细节为基础的架构要稳定的多。在 java 中,抽象指的是接口或抽象类,细节就是具体的实现类。

2024-03-06 23:20:14 621

原创 Spring Webflux 详解

容器中注入这个类型的组件,重写底层逻辑​//配置底层@Bean​@Override。

2024-03-06 22:23:52 1375

原创 浅谈设计模式(目的、七大原则、UML图、具体分类、举例源码、优缺点)描述

单例模式(Single Pattern):某个类只能存在一个对象实例工厂模式(Factory Pattern):由工厂对象决定创建出哪种产品类的实例原型模式(Prototype Pattern):用原型实例指定创建对象种类,并通过拷贝原型创建新的对象建造者模式 / 生成器模式(Builder Pattern):将复杂对象的建造过程抽象出来,使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象适配器模式(Adapter Pattern):将某个类的接口转换成客户端期望的另一个接口表示。

2024-03-04 21:09:38 869

原创 Reactor详解

Reactor 是一个用于JVM的完全非阻塞的响应式编程框架,具备高效的需求管理(即对 “背压(backpressure)”的控制)能力。它与 Java 8 函数式 API 直接集成,比如 CompletableFuture, Stream, 以及 Duration。它提供了异步序列 API Flux(用于[N]个元素)和 Mono(用于 [0|1]个元素),并完全遵循和实现了“响应式扩展规范”(Reactive Extensions Specification)。

2024-03-04 20:23:01 921

原创 Lambda、Function、StreamAPI详解

最佳实战:以后凡是你写for循环处理数据的统一全部用StreamAPI进行替换;1、有入参,无出参【消费者】: function.accept。get/test/apply/accept调用的函数方法;一个数据源(可以是一个数组、集合、生成器函数、I/O管道)flatMap:打散、散列、展开、扩维:一对多映射。零或多个中间操作(将一个流变形成另一个流)map: 映射: 一一映射,a 变成 b。:参数列表 + 箭头 + 方法体。4、无入参 ,有出参【2、有入参,有出参【3、无入参,无出参【

2024-03-03 21:38:54 496

原创 设计模式之策略模式详解

他将定义的算法家族、分别封装起来,让他们之间可以相互替换,从而让算法的变化不会影响到使用算法的用户。策略模式使用的就是面向对象的继承和多态机制,从而实现同一行为在不同场景下具备不同实现。

2024-03-03 10:43:55 419

原创 fatal: unable to access ‘https://github.com/.../...git/‘: Failed to connect to github.com port 443

1. 因为git在拉取或者提交项目时,中间会有git的http和https代理,但是我们本地环境本身就有SSL协议了,所以取消git的https代理即可,不行再取消http的代理。3. git clone 再次拉取即可成功。2.修改git的端口号和本机一样。在git中输入以下指令。

2024-01-19 10:33:56 647

原创 MySQL数据类型详解

整数类型一共有 5 种,包括 TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)和 BIGINT。整数类型字节有符号数取值范围无符号数取值范围TINYINT1-128~1270~255SMALLINT20~65535MEDIUMINT30~167772154BIGINT8浮点数和定点数类型的特点是可以 处理小数 ,你可以把整数看成小数的一个特例。因此,浮点数和定点 数的使用场景,比整数大多了。

2024-01-13 23:18:17 912

原创 MYSQL学习——聚合函数

HAVING 在 GROUP BY 之 后,可以使用分组字段和分组中的计算函数,对分组的结果集进行筛选,这个功能是 WHERE 无法完成 的。同时因为 SQL 是一门类似英语的结构化查询语言,所以我们在写 SELECT 语句的时候,还要注意相应的 关键字顺序,所谓底层运行的原理,就是我们刚才讲到的执行顺序。最后在 vt6 的基础上,取出指定行的记录,也就是 LIMIT 阶段 ,得到最终的结果,对应的是虚拟表 vt7。当然如果我们操作的是两张以上的表,还会重复上面的步骤,直到所有表都被处理完为止。

2024-01-12 16:58:57 977

原创 MYSQL的学习——单行函数详解

流程处理函数可以根据不同的条件,执行不同的处理流程,可以在SQL语句中实现不同的条件选择。MySQL中的流程处理函数主要包括IF()、IFNULL()和CASE()函数。MySQL中内置了一些可以查询MySQL信息的函数,这些函数主要用于帮助数据库开发或运维人员更好地 对数据库进行维护工作。加密与解密函数主要用于对数据库中的数据进行加密和解密处理,以防止数据被他人窃取。MySQL中有些函数无法对其进行具体的分类,但是这些函数在MySQL的开发和运维过程中也是不容忽视 的。

2024-01-11 23:06:57 1335

原创 js中国标准时间转换

【代码】js中国标准时间转换。

2023-12-18 19:05:37 478

原创 Redis实现延迟队列

延时队列相比于普通队列最大的区别就体现在其延时的属性上,普通队列的元素是先进先出,按入队顺序进行处理,而延时队列中的元素在入队时会指定一个延迟时间,表示其希望能够在经过该指定时间后处理或者是在某个时间进行处理。

2023-12-16 19:07:07 664

原创 Linux详解——安装JDK

注意: 以上两个选项选择任意一个即可source可以不用重启立即生效,某些情况下source无法生效时,可以使用重启试试。注意: 以上两个选项选择任意一个即可source可以不用重启立即生效,某些情况下source无法生效时,可以使用重启试试。source /etc/profile 加载配置生效。source /etc/profile 加载配置生效。# 5.在文件末尾加入如下配置。# 4.在文件末尾加入如下配置。# 4.配置环境变量。# 6.加载配置生效。# 3.配置环境变量。

2023-11-29 22:59:58 1471

原创 Linux详解——常用命令(二)

一般在执行kill命令之前,先用ps或pstree来查询一下将要被杀掉的进程的进程号。ps -aux 说明:查询系统中所有运行的进程,包括后台进程,其中参数a是所有进程,参数x包括不占用控制台的进程,参数u显示用户。----------------重点---------------------------------------------重点--------------------------------------------重点------------------------

2023-11-28 23:20:26 574

原创 Mysql 解决1251- Client does not support authentication protocol requested by server...的问题

我的电脑上是已经安装了5.几版本的Mysql数据库,然后我又装了一个8.0.35的Mysql数据库,当我用Navicat Premium 连接8版本的数据库时,报如下错。

2023-11-28 08:30:00 623

原创 Linux详解——常用命令(一)

tar -cvf aaa.tar file1.txt file2.txt 将file1和2打包成aaa.tar。tar -zcvf aaa.tar.gz file1.txt file2.txt 将file1和2打包成aaa.tar并压缩。tar -zxvf aaa.tar.gz file1.txt file2.txt 将aaa.tar.gz解压。-a (all) 显示所有文件和目录(包含隐藏文件和目录)

2023-11-27 22:28:26 1214

原创 使用@Transactional事务注解时,需要指定rollbackFor或者在方法中显式的rollback——编程规范 及 修改办法

抛出异常之后,我们自习写一个try catch捕获,在这里我用了一个自定义异常类来处理异常。我们只需要在方法名上声明事务并设置回滚。

2023-11-26 20:23:15 1010 1

原创 SpringCloudAlibaba之sentinel 流量卫兵(流控,熔断降级) ——详细讲解

Sentineltakes "flow" as the breakthrough point, and works on multiple fields including flow control, circuit breaking and load protection to protect service reliability. ---[摘自官网]说明翻译:随着微服务的普及,服务调用的稳定性变得越来越重要。

2023-11-25 19:00:16 1642

原创 SpringCloudAlibaba之Nacos的持久化和高可用——详细讲解

3.修改conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。集群 cluster : 统一种软件服务的多个节点对一个系统提供服务称之为这个软件服务集群 tomcat集群 mysql集群 redis集群 es集群...3.加载配置启动 ./nginx -c /usr/nginx/conf/nginx.conf。3).修改nacos conf目录中cluster.conf文件添加所有集群节点。

2023-11-24 16:14:27 1166 2

原创 SpringCloudAlibaba之Nacos——详细讲解

spring cloud 用来解决微服务系统中(分布式系统)解决方案spring cloud alibaba 用来解决微服务系统中解决方案原文翻译阿里云为分布式应用开发提供了一站式解决方案。它包含了开发分布式应用程序所需的所有组件,使您可以轻松地使用springcloud开发应用程序。有了阿里云,你只需要添加一些注解和少量的配置,就可以将Spring云应用连接到阿里的分布式解决方案上,用阿里中间件搭建一个分布式应用系统。

2023-11-23 14:10:38 695

原创 SpringCloud之服务网关Gateway组件使用——详解

说明网关统一服务入口,可方便实现对平台众多服务接口进行管控,对访问服务的身份认证、防报文重放与防数据篡改、功能调用的业务鉴权、响应数据的脱敏、流量与并发控制,甚至基于API调用的计量或者计费等等。网关 = 路由转发 + 过滤器`路由转发:接收一切外界请求,转发到后端的微服务上去;`在服务网关中可以完成一系列的横切功能,例如权限校验、限流以及监控等,这些都可以通过过滤器完成1.- 官网:路由过滤器允许以某种方式修改传入的HTTP请求或传出的HTTP响应。

2023-11-22 13:39:03 505

原创 Element-ui中el-select选择器实现输入和搜索,可显示输入值的详细讲解

在使用el-select选择器中,遇到了如下问题点击下方下拉框里面的值,才能进行值得显示,但是当你输入一个匹配不上的数据时,等这个in-put失去焦点时,就会把值清空,不会值的完成绑定。如下图失去焦点后。

2023-11-20 16:36:53 2289 1

原创 SpringCloud之Hystrix——详细使用

目录一、介绍1. 说明2. 作用二、服务雪崩1.服务雪崩2.图解雪崩效应 三、服务熔断 四、服务降级1.服务降级说明2.服务降级图示五、降级和熔断总结 六、服务熔断的实现1.服务熔断的实现思路2.项目中引入hystrix依赖 3.开启断路器4.使用HystrixCommand注解实现断路5.总结6.断路器打开条件 7.断路器流程​编辑8.默认的服务FallBack处理方法七、服务降级的实现1.客户端openfeign + hystrix实现服务降级实现2.开启openfeign支持服务降级3.在openfe

2023-11-19 22:39:18 756

原创 SpringCloud之openFeign调用服务并传参

服务和服务之间通信,不仅仅是调用,往往在调用过程中还伴随着参数传递,接下来重点来看看OpenFeign在调用服务时如何传递参数。

2023-11-18 23:57:00 576 1

原创 SpringCloud之服务间通信方式和负载均衡(RestTemplate和Ribbon和OpenFeign)详细讲解

在整个微服务架构中,我们比较关心的就是服务间的服务改如何调用,有哪些调用方式?1.基于RestTemplate的服务调用2.OpenFeign组件的使用rest Template是直接基于服务地址调用没有在服务注册中心获取服务,也没有办法完成服务的负载均衡如果需要实现服务的负载均衡需要自己书写服务负载均衡策略。

2023-11-17 17:22:28 287 1

原创 SpringCloud之服务注册中心Consul详细讲解

consul是一个可以提供服务发现,健康检查,多数据中心,Key/Value存储等功能的分布式服务框架,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,使用起来也较为简单。Consul用Golang实现,因此具有天然可移植性(支持Linux、Windows和Mac OS X);安装包仅包含一个可执行文件,方便部署。

2023-11-16 23:59:23 354 1

原创 SpringCloud之服务注册中心Eureka 详细讲解

Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务。SpringCloud将它集成在其子项目spring-cloud-netflix中, 以实现SpringCloud的服务注册和发现功能。Eureka包含两个组件:Eureka Server和Eureka Client。

2023-11-15 22:40:42 164

空空如也

空空如也

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

TA关注的人

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