自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 微服务保护-sentinel

什么是雪崩问题?微服务之间相互调用,因为调用链中的一个服务故障,引起整个链路都无法访问的情况。限流是对服务的保护,避免因瞬间高并发流量而导致服务故障,进而避免雪崩。是一种预防措施。超时处理、线程隔离、降级熔断是在部分服务故障时,将故障控制在一定范围,避免雪崩。是一种补救措施。Sentinel是阿里巴巴开源的一款微服务流量控制组件。官网地址:https://sentinelguard.io/zh-cn/index.htmlSentinel 具有以下特征:•丰富的应用场景。

2024-11-23 21:48:46 816 1

原创 Docker基本操作

数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。这样,我们操作宿主机的/var/lib/docker/volumes/html目录,就等于操作容器内的/usr/share/nginx/html目录了。

2024-11-19 10:53:17 1205

原创 初识Docker

微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。在数百上千台服务中重复部署,环境不一定一致,会遇到各种问题。

2024-11-18 20:50:44 757

原创 Docker安装

Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。Docker CE 分为stabletest和nightly三个更新频道。官方网站上有各种环境下的,这里主要介绍 Docker CE 在 CentOS上的安装。

2024-11-18 20:48:40 860

原创 SpringCloud-Gateway服务网关

过滤器的作用是什么?① 对路由的请求或响应做加工处理,比如添加请求头② 配置在路由下的过滤器只对当前路由的请求生效defaultFilters的作用是什么?① 对所有路由都生效的过滤器参数中是否有authorization,authorization参数值是否为admin如果同时满足则放行,否则拦截实现:@Order(-1)@Component@Override// 1.获取请求参数// 2.获取authorization参数// 3.校验// 放行。

2024-11-06 19:53:48 846 1

原创 SpringCloud-Nacos注册中心

国内公司一般都推崇阿里巴巴的技术,比如注册中心,SpringCloudAlibaba也推出了一个名为Nacos的注册中心。

2024-11-06 00:53:37 1119

原创 SpringCloud-Feign远程调用

使用Feign的步骤:① 引入依赖② 添加@EnableFeignClients注解③ 编写FeignClient接口④ 使用FeignClient中定义的方法代替RestTemplate类型作用说明修改日志级别包含四种不同的级别:NONE、BASIC、HEADERS、FULL响应结果的解析器http远程调用的结果做解析,例如解析json字符串为java对象请求参数编码将请求参数编码,便于通过http请求发送支持的注解格式默认是SpringMVC的注解失败重试机制。

2024-11-05 11:16:29 1554

原创 SpringCloud-Nacos配置管理

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

2024-11-05 09:57:16 1085

原创 Nacos集群搭建

官方给出的Nacos集群图:其中包含3个nacos节点,然后一个负载均衡器代理3个Nacos。这里负载均衡器可以使用nginx。我们计划的集群结构:此处的IP是你自己服务的IP,不一定要按照我的来。

2024-11-05 09:56:23 1153

原创 SpringCloud-Ribbon负载均衡

SpringCloudRibbon的底层采用了一个拦截器,拦截了RestTemplate发出的请求,对地址做了修改。用一幅图来总结一下:拦截我们的RestTemplate请求http://userservice/user/1RibbonLoadBalancerClient会从请求url中获取服务名称,也就是user-serviceDynamicServerListLoadBalancer根据user-service到eureka拉取服务列表。

2024-11-05 00:50:09 872

原创 SpringCloud-Eureka注册中心

假如我们的服务提供者user-service部署了多个实例,如图:大家思考几个问题:这些问题都需要利用SpringCloud中的注册中心来解决,其中最广为人知的注册中心就是Eureka,其结构如下:问题1:order-service如何得知user-service实例地址?获取地址信息的流程如下:问题2:order-service如何从多个user-service实例中选择具体的实例?问题3:order-service如何得知某个user-service实例是否依然健康,是不是已经宕机?因此,接下来我们动手

2024-11-05 00:37:33 987

原创 微服务SpringCloud

单体架构:简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统分布式架构:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝微服务:一种良好的分布式架构方案①优点:拆分粒度更小、服务更独立、耦合度更低②缺点:架构非常复杂,运维、监控、部署难度提高SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件。

2024-11-04 20:19:49 607

原创 Springcloud-服务拆分和远程调用

任何分布式架构都离不开服务的拆分,微服务也是一样。

2024-11-04 20:18:29 1075

原创 Java八股文-Mysql

Mysql索引不是越多越好,索引可以提高查询性能,但它们也会占用更多的存储空间,并且在插入、更新和删除数据时会增加额外的开销,因为索引也需要被更新。过多的索引可能导致性能问题,因为数据库需要更多的时间来维护这些索引。MVCC是 MySQL 中用于实现高并发事务处理的一种机制。它允许多个事务在同一时间对同一数据进行读写操作,而不会相互干扰,从而提高数据库的并发性能。(MySQL 允许在唯一索引列中包含多个 NULL 值,因为 NULL 被视为不同的值。唯一索引列允许空值,而主键列不允许空值。

2024-10-24 21:53:30 434 1

原创 在 MySQL 中,添加索引后,插入、更新和删除操作的性能通常会变慢的原因

添加索引后,插入、更新和删除操作变慢的主要原因是索引维护成本、锁机制、日志记录、缓冲池管理以及索引碎片等因素。虽然索引可以提高查询性能,但在高写入负载的情况下,需要权衡索引带来的性能影响。

2024-10-24 21:19:50 1408

原创 SpringDateRedis的使用方式

Spring Data Redis 是 Spring 的一部分,提供了在 Spring 应用中通过简单的配置就可以访问 Redis 服务,对 Redis 底层开发包进行了高度封装。在 Spring 项目中,可以使用Spring Data Redis来简化 Redis 操作。Spring Boot提供了对应的Starter,maven坐标:</</</ValueOperations:string数据操作SetOperations:set类型数据操作。

2024-10-19 22:16:57 713

原创 Redis的下载与安装

通过redis-cli.exe命令默认连接的是本地的redis服务,并且使用默认6379端口。默认提供的客户端连接工具界面不太友好,同时操作也较为麻烦,接下来,引入一个Redis客户端图形工具。重启Redis后,再次连接Redis时,需加上密码,否则连接失败。设置Redis服务密码,修改redis.windows.conf。当Redis服务启动成功后,可通过客户端进行连接。此时,-h 和 -p 参数可省略不写。Redis服务默认端口号为。即可停止Redis服务。安装完毕后,直接双击启动。

2024-10-19 22:10:58 1389

原创 Redis可视化软件安装

软件链接:https://pan.baidu.com/s/1YxCxwoy12G_p8IR5KcPgmQ?pwd=1111

2024-10-19 21:21:53 333

原创 Redis

缓存是一种临时存储数据的技术,用于加快数据访问速度和减少对原始数据源的访问次数Redis是目前最流行的一个开源的内存数据库Redis是一个基于内存的key-value结构数据库。Redis 是互联网技术领域使用最为广泛的存储中间件。添加链接描述Spring Cache 是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。EHCacheCaffeineRedis(常用)

2024-10-19 11:26:51 1170

原创 IDEA重要的快捷键

Ctrl + Alt + Shift + N:查找符号(方法、变量等)Ctrl + Shift + Backspace:跳转到上次编辑位置。Ctrl + Alt + U:生成类的继承关系图(UML 类图)。Ctrl + Alt + B:查看类的实现关系。Ctrl + Shift + N:查找文件。Ctrl + Alt + M:提取方法。Ctrl + U:跳转到父类或接口。Ctrl + N:查找类。

2024-09-27 00:33:42 576

原创 拦截器Interceptor

是一种动态拦截方法调用的机制,类似于过滤器。拦截器是Spring框架中提供的,用来动态拦截控制器方法的执行。拦截请求,在指定方法调用前后,根据业务需要执行预先设定的代码。在拦截器当中,我们通常也是做一些通用性的操作,比如:我们可以通过拦截器来拦截前端发起的请求,将登录校验的逻辑全部编写在拦截器当中。在校验的过程当中,如发现用户登录了(携带JWT令牌且是合法令牌),就可以直接放行,去访问spring当中的资源。如果校验时发现并没有登录或是非法令牌,就可以直接给前端响应未登录的错误信息。

2024-09-27 00:32:01 802

原创 过滤器Filter

通过浏览器的开发者工具,我们可以看到在后续的请求当中,都会在请求头中携带JWT令牌到服务端,而服务端需要统一拦截所有的请求,从而判断是否携带的有合法的JWT令牌。那怎么样来统一拦截到所有的请求校验令牌的有效性呢?

2024-09-25 15:53:18 1001

原创 springboot常见问题(加了依赖还是报红)

明明加了依赖,却仍然爆红。大概就是因为加了依赖却没有点击右上角的刷新Maven图标刷新后:

2024-09-20 16:40:08 397

原创 Springboot常见问题(bean找不到)

最后发现原来是我springboot的版本和mybatis起步依赖的版本出现冲突导致的。

2024-09-20 16:34:55 1360

原创 Maven私服

*私服:**是一种特殊的远程仓库,它是架设在局域网内的仓库服务,用来代理位于外部的中央仓库,用于解决团队内部的资源共享与资源同步问题。本地仓库私服仓库中央仓库**注意事项:**私服在企业项目开发中,一个项目/公司,只需要一台即可(无需我们自己搭建,会使用即可)。

2024-09-19 21:23:09 1491

原创 Maven继承与聚合

在maven中,可以在父工程的pom文件中通过来统一管理依赖版本。--统一管理依赖版本--> < dependencyManagement > < dependencies > <!

2024-09-19 21:09:19 1020

原创 分模块设计与开发

所谓分模块设计,顾名思义指的就是我们在设计一个 Java 项目的时候,将一个 Java 项目拆分成多个模块进行开发。1). 未分模块设计的问题如果项目不分模块,也就意味着所有的业务代码是不是都写在这一个 Java 项目当中。随着这个项目的业务扩张,项目当中的业务功能可能会越来越多。假如我们开发的是一个大型的电商项目,里面可能就包括了商品模块的功能、搜索模块的功能、购物车模块、订单模块、用户中心等等。这些所有的业务代码我们都在一个 Java 项目当中编写。

2024-09-19 19:55:19 1130

原创 AOP核心概念

Spring的AOP底层是基于动态代理技术来实现的,也就是说在程序运行的时候,会自动的基于动态代理技术为目标对象生成一个对应的代理对象。​ 在入门程序中是需要统计各个业务方法的执行耗时的,此时我们就需要在这些业务方法运行开始之前,先记录这个方法运行的开始时间,在每一个业务方法运行结束的时候,再来记录这个方法运行的结束时间。AOP的核心概念我们介绍完毕之后,接下来我们再来分析一下我们所定义的通知是如何与目标对象结合在一起,对目标对象当中的方法进行功能增强的。抽取出来的这一部分重复的逻辑,也就是共性的功能。

2024-09-18 21:28:27 396

原创 Spring AOP

AOP(Aspect-Oriented Programming)中文翻译为面向切面编程,面向方面编程在AOP中,可以理解为就是面向方法编程。

2024-09-18 20:43:12 631

原创 springboot常见错误一

这种情况可以检查一下启动类有没有不小心放在一个单独的包里面。前端界面报错404,什么都加载不出来。这种情况,我们只要把启动类拿出就行。后端却没有报任何错误。

2024-09-12 10:10:06 131

原创 LocalDate类、LocalTime类、LocalDateTime类

JDK8新增的日期类分得更细致一些,比如表示年月日用LocalDate类、表示时间秒用LocalTime类、而表示年月日时分秒用LocalDateTime类等;除了这些类还提供了对时区、时间间隔进行操作的类等。它们几乎把对日期/时间的所有操作都通过了API方法,用起来特别方便。先学习表示日期、时间、日期时间的类;有LocalDate、LocalTime、以及LocalDateTime类。仔细阅读代码,你会发现这三个类的用法套路都是一样的。为什么以前的Date类就可以表示日期,为什么要有新增的日期类呢?

2024-08-10 09:37:41 355

原创 为什么JDK8要新增日期类

【代码】为什么JDK8要新增日期类。

2024-08-10 09:31:16 114

原创 SimpleDateFormat类

前面我们打印Date对象时,发现打印输出的日期格式我们并不喜欢,SimpleDateFormat类就可以转换Date对象表示日期时间的显示格式。注意:创建SimpleDateFormat对象时,在构造方法的参数位置传递日期格式,而日期格式是由一些特定的字母拼接而来的。我们需要记住常用的几种日期/时间格式最后,上代码演示一下。

2024-08-10 09:24:33 248

原创 Date类

Date对象记录的时间是用毫秒值来表示的。Java语言规定,1970年1月1日0时0分0秒认为是时间的起点,此时记作0,那么1000(1秒=1000毫秒)就表示1970年1月1日0时0分1秒,依次内推。下面是Date类的构造方法,和常见的成员方法,利用这些API写代码尝试一下。Date类,Java中是由这个类的对象用来表示日期或者时间。

2024-08-10 09:13:00 220

原创 ThreadLocal与synchronized的区别

synchronized 关键字,代表这个方法加锁,相当于不管哪一个线程(例如线程A),运行到这个方法时,都要检查有没有其它线程B(或者C、 D等)正在用这个方法(或者该类的其他同步方法),有的话要等正在使用synchronized方法的线程B(或者C 、D)运行完这个方法后再运行此线程A,没有的话,锁定调用者,然后直接运行。总结:在例子中,虽然使用ThreadLocal和synchronized都能解决问题,但是使用ThreadLocal更为合适,因为这样可以使程序拥有更高的并发性。

2024-08-08 19:59:06 449 1

原创 为什么多线程需要用锁synchronized

在多线程环境中,‌当多个线程同时访问和修改共享资源时,‌如果没有适当的同步机制,‌就可能导致数据竞争。‌数据竞争是指多个线程同时访问和修改同一资源,‌导致数据的不一致和错误。‌为了解决这个问题,‌需要使用加锁技术,‌如互斥锁、‌读写锁、‌递归锁等,‌来确保对共享资源的访问是顺序的或排他的。‌加锁可以防止多个线程同时修改同一数据,‌从而避免数据的不一致和错误。‌此外,‌加锁还可以解决不同线程的子步骤有顺序关联性的问题。

2024-08-08 19:19:36 597

原创 ThreadLocal

ThreadLocal类用来提供线程内部的局部变量。这种变量子在多线程环境下访问(通过get和set方法)时能保证各个线程的变量相对独立于其他线程内的变量,ThreadLocal实例通常来说都是private static类型的,用于关联线程和线程上下文。我们可以得知的ThreadLocal的作用是:提供线程内的局部变量,不同的线程之间互不干扰,这种变量在线程的生命周期内起作用,减少一个线程内多个函数或组件之间一些公共变量传递的复杂度。

2024-08-05 16:42:03 1059

原创 运行SQL文件错误

MySQL 5.7确实不支持COLLATE utf8mb4_0900_ai_ci。‌这是因为utf8mb4_0900_ai_ci字符集排序规则是在MySQL 8.0版本中引入的,‌而MySQL 5.7版本并不支持这个特性。‌因此,‌如果在MySQL 5.7环境中尝试使用utf8mb4_0900_ai_ci字符集排序规则,‌将会遇到兼容性问题12。可以发现是因为无法识别utf8mb4_0900_ai_ci字符集。‌如果应用程序对字符集和排序规则有特定的要求,‌可能需要仔细评估升级或修改脚本的潜在影响。

2024-08-03 10:12:42 807

原创 Cannot resolve symbol

这样爆红的问题,明明名称写的是正确的,但却爆红,提示“Cannot resolve symbol ‘driver’”,当时我翻遍了全网相关的解决方案都没有解决,最后才发现“不用解决才是最好的解决方案”,因为最后测试发现,虽然爆红,但仍然可以连接到数据库,所以说这个完全不用管它,只要你名称写的是对的就行。不知道有没有小伙伴们和我一样在学mybatis时,配置数据库环境的时候遇到。

2023-06-11 13:59:05 868

原创 微信小程序-页面导航

open-type=“navigate” 也可以省略不写 都可以跳转到非导航界面。tabBar页面指的是被配置为tabBar的页面。

2023-04-22 21:14:13 306

空空如也

空空如也

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

TA关注的人

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