- 博客(50)
- 资源 (12)
- 收藏
- 关注
原创 微服务保护
•**广泛的开源生态**:Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合。簇点链路中被监控的每一个接口就是一个**资源**。•**丰富的应用场景**:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。其思路是由**断路器**统计服务调用的异常比例、慢请求比例,如果超出阈值则会**熔断**该服务。
2024-07-16 09:36:30
312
原创 分布式事务
**RM (Resource Manager) -** **资源管理器:**管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。但是当我们把三件事情看做一个"业务",要满足保证“业务”的原子性,要么所有操作全部成功,要么全部失败,不允许出现部分成功部分失败的现象,这就是**分布式系统下的事务**了。对于已经空回滚的业务,之前被阻塞的try操作恢复,继续执行try,就永远不可能confirm或cancel ,事务一直处于中间状态,这就是**业务悬挂**。
2024-07-16 09:35:39
308
原创 springcloud3
Feign底层的客户端实现默认使用URL Connection的方式,Feign是一个声明式客户端,它只是帮助我们把我们的声明变成http请求,最终发http请求时,还是会用到别的客户端,URL Connection是JDK中自带的,它的实现性能不太好,而且它不支持连接池,如果使用了连接池可以减少连接创建和销毁的性能损耗。重启网关,访问http://localhost:81/user/1时,符合`/user/**`规则,请求转发到uri:http://userservice/user/1,查看结果。
2024-07-16 09:35:05
373
原创 springcolud2
Feign底层的客户端实现默认使用URL Connection的方式,Feign是一个声明式客户端,它只是帮助我们把我们的声明变成http请求,最终发http请求时,还是会用到别的客户端,URL Connection是JDK中自带的,它的实现性能不太好,而且它不支持连接池,如果使用了连接池可以减少连接创建和销毁的性能损耗。重启网关,访问http://localhost:81/user/1时,符合`/user/**`规则,请求转发到uri:http://userservice/user/1,查看结果。
2024-07-16 09:34:17
391
原创 springcloud1
Feign底层的客户端实现默认使用URL Connection的方式,Feign是一个声明式客户端,它只是帮助我们把我们的声明变成http请求,最终发http请求时,还是会用到别的客户端,URL Connection是JDK中自带的,它的实现性能不太好,而且它不支持连接池,如果使用了连接池可以减少连接创建和销毁的性能损耗。[47](../../../../../Java2304班资料/三阶段/2023-09-25 day12/01-讲义/SpringCloud.assets/47.png)
2024-07-16 09:33:28
436
原创 springcloud
# SpringCloud教程# 1.初识微服务随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢?## 1.1.单体架构**单体架构**:将业务的所有功能集中在一个项目中开发,打成一个包部署。单体架构的优缺点如下:**优点:**- 架构简单- 部署成本低**缺点:**- 耦合度高(维护困难、升级困难)## 1.2.分布式架构
2024-07-16 09:32:32
312
原创 支付宝扫码支付
*returnUrl : 支付完成后跳转的页面,例如我填的是:http://127.0.0.1:8848/pay-demo/index.html****appId:APPID,沙箱应用提供的** **privateKey: 商户私钥,点击公钥证书查看**地址:https://open.alipay.com/platform/home.htm。网址:https://docs.open.alipay.com/270/106291/* 页面跳转同步通知页面路径 需http://格式的完整路径.
2024-07-16 09:31:59
471
原创 阿里云短信服务
/验证码数据,转换json数据传递。阿里云的4位或者6位的验证码,并不是由阿里云生成的,而是由程序编写的,阿里云只是做一个传递的过程。//发送成功,把发送成功验证码放到redis里面。//2 如果redis获取 不到,进行阿里云发送。
2024-07-16 09:30:53
1264
原创 SpringSecurity从入门到精通
现在流行的Web系统不断变的复杂,从最早的单系统模块发展到现在的多系统多模块的应用群,用户在访问这些群的各个系统的时候,是不是都要分别登录,登出?注意:secret是保存在服务器端的,jwt的签发生成也是在服务器端的,secret就是用来进行jwt的签发和jwt的验证,所以,它就是你服务端的私钥,在任何场景都不应该流露出去。该信息可以被验证和信任,因为它是数字签名的。我们还希望在认证失败或者是授权失败的情况下也能和我们的接口一样返回相同结构的json,这样可以让前端能对响应进行统一的处理。
2024-07-15 10:48:29
308
原创 nginx应用
让动态网站里的动态网页根据一定的规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,提高资源响应的速度。我们首先想到的可能是升级服务器的配置,比如提高CPU的执行频率,加大内存等提高机器的物理性能来解决此问题,但是我们知道摩尔定律的日益失效,硬件的性能提升已经不能满足日益提升的需求了,最明显的一个例子,天猫双十一当天,某个热销商品的瞬时访问量是极其庞大的,那么类似上面的系统架构,将机器都增加到现有的顶级物理配置,都是不可能满足需求的,那么怎么办呢?
2024-07-15 10:47:54
341
原创 redis应用
不管谁先拿到数据后,都先会和数据进行版本的比对,如果版本号一致就可以操作,操作完数据后,都会修改版本号为v2.0。由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁盘上,当redis重启后,可以从磁盘中恢复数据。4)当发现Redis的命中率急速降低,需要排查访问对象和访问的数据,当发现访问的都是无效的垃圾数据时,(一般出现此种情况,就是在遭受黑客攻击),可以设置黑名单限制访问,同时配合网站运维人员联合网警去解决问题。
2024-07-15 10:47:18
330
原创 redis应用
上一个Slave可以是下一个Slave的Master,Slave同样可以接收其他Slaves的连接和同步请求,那么该Slave做为链条中的下一个Master,可以有效减轻Master的复制从机数据的压力,去中心化的思想,降低风险。由于所有的写操作都是先在Master上操作,然后同步更新到Slave上,所以从Master同步到Slave机器有一定的延迟,当系统很繁忙的时候,延迟问题会更加严重,Slave机器数量的增加也会使这个问题更加严重。index<0时,-1,表尾,-2倒数第二个元素,依次类推。
2024-07-15 10:46:45
379
原创 云笔记接口文档
\|-id | number | 非必须 | | 主键ID | || \|-content | string | 非必须 | | 文章正文 | || \|-content | string | 非必须 | | 文章正文 | |
2024-07-15 10:29:36
117
原创 云笔记项目案例
在接口调用的API中,我们都需要对业务响应的状态进行判断,从而给用户对应的提示,这个工作不难,但是每个接口的调用,都这样写代码,显然是比较繁琐的,我们可以在axios的相应拦截器中,如果服务器响应成功了,统一判断后台返回的业务状态码code,如果成功了,正常返回数据,如果失败了,则给出用户对应的提示即可。<el-dropdown-item command="logout" :icon="SwitchButton">退出登录</el-dropdown-item>
2024-07-15 10:28:51
418
原创 Vue高级工程化项目
3](vue2/3.png)Project name:------------------》项目名称,默认值:vue-project,可输入想要的项目名称。---》是否添加ESLint来进行代码质量检查?Add Pinia ...-------------------》是否添加Pinia组件来进行状态管理?Add Vitest ...------------------》是否添加Vitest来进行单元测试?----------------》是否加入TypeScript组件?
2024-07-15 10:26:50
308
原创 Vue3整站开发前置知识
Vetur 为Vue.js文件提供了语法高亮,让代码更易于阅读和理解,还能识别Vue.js的特定语法,如Vue组件、指令和插值表达式,不同代码有颜色的差异。ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现。在日常场合,这两个词是可以互换的。模板字符串相当于加强版的字符串,用反引号`,除了作为普通字符串,还可以用来定义多行字符串,还可以在字符串中加入变量和表达式。只有一个参数的时候,可以省略小括号,如果有多个参数,则不可以省略,如果没有参数,也不可以省略。
2024-07-15 10:26:15
399
原创 git和gitee
它没有中央服务器,每个人的电脑就是一个完整的版本库,这样工作的时候就不需要联网了,因为版本都在自己电脑上,既然每个人的电脑都有一个完整的版本库,那么多个人如何协作呢?而工作的时候,用的都是自己的电脑,所以首先要从中央服务器那里得到最新的版本,然后编写代码,编写完代码后还需要把自己做完的功能推送到中央服务器。Git是一个分布式的应用于版本迭代的控制工具,主要用于管理开发过程中的源代码文件(Java类,xml文件,html页面等),在软件开发过程中被广泛的应用。GitHub与Gitee的操作基本是一样的。
2024-07-15 10:25:35
658
原创 Springboot3整合OpenAPI(Swagger3)
Operation(summary = "用户注册API", description = "用户注册")在Spring Boot项目中创建一个配置类`SwaggerConfig`,并添加Swagger的配置信息。@Tag(name = "用户控制器", description = "用户控制器Controller")@Schema(name = "Employee", description = "员工实体类")首先,您需要在项目的`pom.xml`文件中添加Swagger3的依赖。
2024-07-15 10:24:49
1123
2
原创 SpringBoot前后台分离项目使用Redis实现SSO单点登录
在这个方法中,我们使用`registry.addMapping`指定了路由,并设置了允许所有来源的跨域请求(`allowedOrigins("*")`),同时还配置了允许的HTTP方法和请求头。采用web集群进行的服务配置,可以得到较好的处理性能,同时也可以保证高可用的机制,但是有一个最关键性的问题就是在于Session共享与分配,从早期的开发来讲,Session共享是在tomcat中配置的(Tomcat提供了一个扩展的支持)。.addPathPatterns("/**") // 拦截所有路径。
2024-07-15 10:24:15
542
原创 防火墙教程
-add-port=8080/tcp #添加端口。--zone #设置作用域为全局生效。--permanent #永久生效。#查看firewall服务状态。#查看已经加入防火墙的端口号。### 一、防火墙操作命令。#检查端口被哪个进程占用。
2024-07-15 10:23:21
73
原创 redis教程
Spring Boot整合Redis提供了 RedisTemplate与StringRedisTemplate两个类,其中StringRedisTemplate是RedisTemplate的子类,两个方法基本一致,不同之处主要体现在操作的数据类型不同,RedisTemplate中两个泛型都是Object,意味着存储的key和value都可以是一个对象,而StringRedisTemplate的两个泛型都是String,意味着StringRedisTemplate的key和value都只能是字符串。
2024-07-15 10:22:05
447
原创 linux入门系统
cp /usr/test / 第一个是文件的路径 第二个是要拷贝的路径。tail –f:动态加载某个文件的内容 ctrl+c 切换回命令行。mkdir /a 在根目录创建 与 mkdir a在当前目录创建。xshell:一个远程连接的客户端软件,连接服务器使用的。写完文本内容以后,按ESC,就会进入底行模式。3、底行模式,按shift+分号,出现冒号。head –n:显示指定文件开始的n行数据。tail –n:查看某个文件结尾N行的内容。pwd --查看自己当前所在的目录。
2024-07-15 10:20:49
303
原创 Spring Boot框架集成Mybatis-plus
MyBatis-Plus (opens new window)](https://github.com/baomidou/mybatis-plus)(简称 MP)是一个 [MyBatis (opens new window)](http://www.mybatis.org/mybatis-3/)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。因此乐观锁不会上锁,只是在执行更新的时候判断一下在此期间别人是否修改了数据:如果别人修改了数据则放弃操作,否则执行操作。
2024-07-15 10:19:48
1255
原创 SpringBoot使用slf4j进行日志记录
有了上面那些定义后,最后我们使用 <logger> 来定义一下项目中默认的日志输出级别,这里定义级别为 INFO,然后针对 INFO级别的日志,使用 <root>引用上面定义好的控制台日志输出和日志文件的参数。强制”两个字体现出了 `slf4j`的优势,所以建议在实际项目中,使用 `slf4j`作为自己的日志框架。使用`<appender>`定义一个名为 `“FILE”`的文件配置,主要是配置日志文件保存的时间、单个日志文件存储的大小、以及文件保存的路径和日志的输出格式。
2024-07-13 16:02:54
327
原创 Spring Boot集成Swagger框架
再通过Swagger衍生出来的一系列项目和工具,就可以做到生成各种格式的接口文档,生成多种语言的客户端和服务端的代码,以及在线接口调试页面等等。这样,如果按照新的开发模式,在开发新版本或者迭代版本的时候,只需要更新Swagger描述文件,就可以自动生成接口文档和客户端服务端代码,做到调用端代码、服务端代码以及接口文档的一致性。它可以将项目的所有接口在一个UI界面上展示出来,同时表明了这个接口的用途,接口需要的参数是什么类型参数是否必须,输入了参数可以直接测试接口同时会显示接口请求的状态码和返回的数据结构。
2024-07-13 16:02:18
457
原创 springboot3
|` |` || Negative | BigDecimal/BigInteger/byte/short/int/long/float/double及包装类 | 被注释的值应该是负数 | `@Negative private BigDecimal value;
2024-07-13 16:00:49
275
原创 springboot2
|` |` || Negative | BigDecimal/BigInteger/byte/short/int/long/float/double及包装类 | 被注释的值应该是负数 | `@Negative private BigDecimal value;
2024-07-13 16:00:14
980
原创 springboot
在以往我们搭建和整合三大框架,我们需要做很多工作,比如配置web.xml,配置Spring,配置Mybatis,并将它们整合在一起等,而Spring Boot框架对此开发过程进行了革命性的颠覆,完全抛弃了繁琐的xml配置过程,采用大量的默认配置设置简化我们的开发过程。用于快速构建Spring应用程序。项目的依赖管理也是一件耗时耗力的事情,在环境的搭建时,需要分析导入哪些依赖,哪些库的坐标,而且有时候还需要分析导入与之有依赖关系的其他库的坐标,一旦选错了版本,随之而来的不兼容问题就会严重阻碍项目的开发。
2024-07-13 15:59:10
440
原创 脏读和幻读
幻读:一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据已经存在,好像出现了幻觉。不可重复读:一个事务先后读取同一条记录,但两次读取的数据不同,称之为不可重复读。脏读:一个事务读取到了另一个事务还未提交的数据。
2024-07-13 15:56:58
129
原创 spring教程
**singleton** | **默认的,单例的** |AOP应用场景:一般应用于针对核心业务的辅助功能,包括,事务处理,日志,系统安全,监控等场景中。| **session** | **SpringWeb**应用中,创建一个bean对象后,存入到sessiont作用域 || **request** | **SpringWeb**应用中,创建一个bean对象后,存入到request作用域 |
2024-07-13 15:55:24
324
原创 Mybatis入门教程
每一个在包 `domain.blog` 中的 Java Bean,在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名。@Many:实现一对多结果集封装,代替`<collection>` 使用格式:@Result(property="",column="",many=@Many(select=""))- 4、涉及到复杂数据类型传参的时候可以使用Map入参,可以加@Param("map")注解,如果添加上去后,sql语句就必须为#{map.studentId},如果没有添加。
2024-07-13 15:54:41
444
原创 Java之StringUtils的常用方法
StringUtils 方法的操作对象是 Java.lang.String 类型的对象,是 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 null 则不会抛出 NullPointerException ,而是做了相应处理,例如,如果输入为 null 则返回也是 null 等,具体可以查看源代码)。去掉字符串两端的控制符(control characters, char <= 32) ,如果变为 null 或 "" ,则返回 ""
2024-07-13 15:53:52
526
原创 mybatis的教程
每一个在包 `domain.blog` 中的 Java Bean,在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名。- 4、涉及到复杂数据类型传参的时候可以使用Map入参,可以加@Param("map")注解,如果添加上去后,sql语句就必须为#{map.studentId},如果没有添加。//自定义的类型使用的时候,需要创建对象(赋值是看业务)(一对一)编写代码的时候,写的是基本结构,当程序运行的时候,会根据条件重新拼接SQL语句,从而生成新的SQL语句。
2024-07-13 15:53:07
336
原创 maven的入门
Jar就是一个java的项目。项目管理工具种的pom.xml文件配置maven坐标信息后,会从本地仓库去寻找maven构建,本地仓库如果没有maven构建,则会从远程仓库进行下载,然后给项。解压文件,高级系统设置-环境变量-新建变量 MAVEN_HOME 或M2_HOME,指向maven的解压路径。--指定web.xml文件的位置-->--指定web.xml文件的位置-->--指定jsp等文件所在位置-->--指定jsp等文件所在位置-->pom是项目对象模型,pom.xml 会放置一些项目的描述信息。
2024-07-13 15:52:21
95
原创 反射与注解
MyAno(value = "微信", name = "腾讯", b = 25,arr={"java","spring"})System.out.println(c1.getName());注解的主要作用:对我们的程序进行标注,通过注解可以给类增加额外的信息,注解是给编译器或JVM看的,编译器或JVM可以根据注解。
2024-07-13 15:51:46
341
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人