自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ElasticSearch集群

海量数据存储问题:单机的ES,数据存储能力是有上限的单点故障问题:如果单机上的Elasticsearch节点发生故障,整个系统会停止服务,导致数据不可访问甚至丢失,造成损失单机的elasticsearch做数据存储,必然面临两个问题:海量数据存储问题、单点故障问题。

2024-04-26 23:55:03 162

原创 阿里云服务器开放端口的最最最正确的方法

【代码】阿里云服务器端口无法访问ElasticSearch。

2024-04-26 19:47:53 184

原创 ElasticSearch搜索结果处理

比如说这里指定一个,将来你还可以继续去指定: 如果有多个要排序的情况下,先按照第一个字段排,第一个字段相等,再按第二个字段排,这一点跟mysql里面也是一样的。那第一个案例是对酒店数据按照用户评价降序排序,如果评价相同,我们再按照价格升序排序,那也就是说这里排序的字段其实是两个, 你在搜索的时候,我先按照用户评价给你排,评价越高,排名越靠前。具体排序的语法怎么来写,大家可以看到这里先指定一个字段名,你要根据哪个字段排,是价格还是日期呀,然后指定排序的方式是asc升序还是dsc降序,这是简单类型;

2024-04-25 23:55:46 289 1

原创 ElasticSearch复合查寻

如果子查询比较多,每一个都参与算分,是不是查询性能就会受到影响,而如果你在使用的时候,你用的是filter查询和must not查询,它们是不参与算分的。虽然BooleanQuery复合查询里面有这么四种组合关系,但是除了跟算分相关的,一般就是关键字:用户输入的个关键字,除了用户输入的个关键字以外,剩下的过滤条件都应该放在must_not 或者filter里边,尽可能的减少算分,提高查询的效率。·filter,从字面来看,它也是必须匹配,Must也是必须匹配,确实它俩都是必须匹配,都是”与”的意思。

2024-04-25 23:41:35 254 1

原创 ElasticSearch批处理

也就是说批量的把数据库的数据写入索引库。那这里的需求是,首先利用mybatisplus去批量查询酒店数据,然后将查询到的酒店数据,也就是hotel把它转换成我们的hotelDoc文档类型。在刚才的新增当中,我们是一次新增一条数据。那么如果你将来的数据库里有数千上万的数据,你一次新增一个,那得多麻烦。,然后一次性完成提交,这种就叫批处理,确实没有什么新东西, 就是把以前的那种新增的代码给它合到一起去提交了。把多个 IndexRequest的请求合并到BulkRequest 对象里。

2024-04-24 23:53:52 179 1

原创 JUC之死锁

长连接和短连接是两种常见的网络连接方式,主要用于HTTP、WebSocket等协议。长连接(Long-Connection):在长连接模式下,客户端和服务器之间的连接是持久的,并且在一段时间内保持打开状态。这意味着在一段时间内,客户端和服务器可以共享同一个连接,从而减少了建立新连接的开销。长连接适用于需要频繁通信的场景,例如实时聊天应用、实时游戏等。在长连接中,客户端和服务器通常会保持连接直到一方主动关闭。

2024-04-24 23:05:52 675

原创 ElasticSearch总结二

正向索引:比方说我这里有一张数据库表,那我们知道对于数据库它一般情况下都会基于i d去创建一个索引,然后形成一个b+树。那么你根据i d进行检索的速度,就会非常的快,那么这种方式的所以就是一个正向索引。但是如果我现在搜索的字段不是i d,而是一个普通的标题字段,标题字段一般它内容比较长,你不会给他加索引,对吧?即便你给他加索引,那现在我想的不是确的标题值。我想其中的一部分:搜索'手机"select *from tb_goods where title like'%手机%'

2024-04-23 23:24:43 1204

原创 ElasticSearch笔记一

随着这个业务的发展,我们的数据量越来越庞大。那么传统的这种mysql的数据库就渐渐的难以满足我们复杂的业务需求了。所以在微服务架构下一般都会用到一种分布式搜索的技术。那么今天呢我们就会带着大家去学习分布搜索当中最流行的一种ElasticSearch,ElasticSearch是一个非常强大的开源搜索引擎。它可以帮助我们从海量数据中快速的找到所需要的内容。。ES是对ElasticSearch的一个缩写什么是ElasticSearch?

2024-04-23 23:06:45 343

原创 MYSQL45道练习题---持续更新中

②、student学生表: SId:学生id Sname:学生名称 Sage:年龄 Ssex:性别。④、sc学生-课程表: SId:学生Id CId:课程id score:成绩。①、course表: CId:课程id Cname:课程名称 TId:老师id。③、teacher教师表: TId:教师id Tname:教师名称。

2024-04-22 00:31:39 380

原创 JVM知识点总结四

在Java虚拟机中,对象是在Java堆中分配内存的,这是一个普遍的常识。但是,有一种特殊情况,那就是如果经过逃逸分析(Escape Analysis)后发现,一个对象并没有逃逸出方法的话,那么就可能被优化成栈上分配。这样就无需在堆上分配内存,也无须进行垃圾回收了。这也是最常见的堆外存储技术。如何快速的判断是否发生了逃逸分析,就看“new的对象实体”是否有可能在方法外被调用。如果当前的obj引用声明为static的?

2024-04-21 15:50:44 224

原创 JVM常见的垃圾回收器

每次进行Minor GC时,JVM会计算Survivor区移至老年区的对象的平均大小,如果这个值大于老年区的剩余值大小则进行一次Full GC,如果小于检查HandlePromotionFailure设置,如果true则只进行Monitor GC,如果false则进行Full GC。虚拟机为每个对象定义了一个年龄计数器,如果对象经过了1次Minor GC那么对象会进入Survivor区,之后每经过一次Minor GC那么对象的年龄加1,知道达到阀值对象进入老年区。3)解析,把类中的符号引用转换为直接引用。

2024-04-21 14:58:57 729

原创 JVM知识点总结二

类加载子系统:根据给定的全限定名类名(如:java.lang.Object)来装载class文件到运行时数据区中的方法区中。,而虚拟机栈、本地方法栈、程序计数器则是线程私有的,就是说每个线程都有自己的这个区域。根据程序计数器中存储的字节码指令解释/编译为对应平台上的本地机器指令。类加载子系统、运行时数据区、执行引擎。

2024-04-20 02:49:41 508

原创 JVM知识点总结

给每一个对象设置一个引用计数器,当有一个地方引用该对象的时候,引用计数器就+1,引用失效/被释放时,引用计数器就-1;当引用计数器为0的时候,就说明这个对象没有被引用,也就是垃圾对象,等待回收;在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old ),,新生代默认占总空间的1/3,老年代默认占2/3。缺点:增加了空间的消耗,并且无法解决循环引用的问题:当A引用B,B也引用A的时候,此时AB对象的引用都不为0,此时也就无法垃圾回收,所以一般主流虚拟机都不采用这个方法;

2024-04-20 01:54:13 506

原创 JUC知识点三

run()方法的作用是启动一个新的线程,在新的线程里运行线程对象中的run方法;当你的这个新的线程启动以后,就会调用这个线程的run方法:如果有Runable对象,就运行Runable对象的run()方法,如果这个run()方法被子类重写了,那就运行子类中run()的方法;因此,当一个线程结束了,死掉了,对应的Thread的对象仍能调用,除了start( )方法外的所有方法(死亡的线程不能再次启动),如run( )、getName( )、getPriority()等等。真正的底层线程用户是看不到的了。

2024-04-18 08:15:00 1339

原创 Synchronized相关问题

1)当持有锁的线程释放锁时,该线程会执行以下两个重要操作:先将monitor锁对象的持有者 owner 属性赋值为 null唤醒EntryList等待链表中的一个线程(假定继承者)。在1和2之间,如果有其他线程刚好在尝试获取锁(例如自旋),则可以马上获取到锁。2)当线程尝试获取锁失败,进入阻塞时,放入链表的顺序,和最终被唤醒的顺序是不一致的,也就是说你先进入链表,不代表你就会先被唤醒。

2024-04-18 01:52:24 812

原创 SQL255 给出employees表中排名为奇数行的first_name

【代码】SQL255 给出employees表中排名为奇数行的first_name。

2024-04-17 09:15:00 432

原创 SQL261 牛客每个人最近的登录日期(二)

最近一天登陆也就是日期最大的时候,可以使用GROUP BY 再对用户进行分组求解。但问题的关键是使用了GROUP BY对SELECT语句是有限制的:以下是最常见的错误的原因是,无法找到对应的 客户端名(c.name也不能group by user_id, client_id解决的办法是,这个就可以了。和。

2024-04-17 08:00:00 131

原创 SQL215 查找在职员工自入职以来的薪水涨幅情况

【代码】SQL215 查找在职员工自入职以来的薪水涨幅情况。

2024-04-16 03:14:44 144

原创 SQL12 获取每个部门中当前员工薪水最高的相关信息

【代码】SQL12 获取每个部门中当前员工薪水最高的相关信息。

2024-04-16 02:27:08 370

原创 MySQL练习题

有三个表,表S(学生表),C(课程表),SC(学生选课表)

2024-04-14 21:48:35 373 1

原创 ERROR 1052 (23000): Column ‘deptno‘ in field list is ambiguous

这个错误通常是在多表查询中,因为你的SQL查询中包含了多个表,并且这些表中都有一个名为deptno的列。这会导致数据库无法确定你要引用哪个表中的 deptno列,从而产生歧义。

2024-04-14 20:38:18 138

原创 后台权限控制及动态路由

如果用户id为1代表管理员,roles 中只需要有admin,permissions中需要有所有菜单类型为C或者F的,状态为正常的,未被删除的权限。如果用户id为1代表管理员,menus中需要有所有菜单类型为C或者M的,状态为正常的,未被删除的权限。建表SQL及初始化数据见:SGBlog\资源\SQL\sg_menu.sql。前端为了实现动态路由的效果,需要后端有接口能返回用户所能访问的菜单数据。后台系统需要能实现不同的用户权限可以看到不同的功能。//此次省略1000字。"msg":"操作成功"

2024-04-12 23:44:33 388

原创 Swagger2

Swagger 是一套基于 OpenAPI 规范构建的开源工具,可以帮助我们设计、构建、记录以及使用 Rest API。

2024-04-12 23:12:03 663

原创 定时任务、 cron 表达式语法

使用@Scheduled注解标识需要定时执行的代码。注解的cron属性相当于是任务的执行时间。目前可以使用 0/5 * * * *?进行测试,代表从0秒开始,每隔5秒执行一次。这里就先用SpringBoot为我们提供的定时任务的API来实现一个简单的定时任务,让大家先对定时任务里面的一些核心概念有个大致的了解。定时任务的实现方式有很多,比如XXL-Job等。但是其实核心功能和概念都是类似的,很多情况下只是调用的API不同而已。② 确定定时任务执行代码,并配置任务执行时间。

2024-04-11 21:27:16 259

原创 CommandLineRunner实现项目启动时预处理

我们只需要实现CommandLineRunner接口,并且把对应的bean注入容器。把相关初始化的代码重新到需要重新的方法中。如果希望在SpringBoot应用启动时进行一些初始化操作可以选择使用CommandLineRunner来进行处理。这样就会在应用启动的时候执行对应的代码。

2024-04-11 21:25:37 787

原创 Spring Validation解决后端表单校验

NotNull:从前台传递过来的参数不能为null,如果为空,会在控制台日志中把message打印出来。@Patten,标注的字段值必须符合定义的正则表达式(按照业务规则,进行灵活的正则表达式的校验)@Range:范围,最大多少,最小多少。

2024-04-09 23:22:09 410

原创 SpringBoot怎么使用Validation校验参数

Validation 是用于检查程序代码中参数的有效性的框架,作为 Spring 框架中的一个参数校验工具,集成在 spring-context 包中。

2024-04-09 23:12:54 341

原创 Maven的scope详解

maven 项目不同的阶段引入到classpath中的依赖是不同的,例如,编译时,maven 会将与编译相关的依赖引入classpath中,测试时,maven会将测试相关的的依赖引入到classpath中,运行时,maven会将与运行相关的依赖引入classpath中。依赖范围更为通俗的理解,其实就是给依赖包打标记,例如将 A 依赖包标记为“compile”,Maven 就知道 A 依赖包在项目编译的时候要被引入到 classpath 中。比方说,你修改了标签。

2024-04-08 22:48:58 459

原创 @Accessors进行链式编程

@Accessors进行链式编程

2024-04-06 23:32:59 75

原创 @Accessors注解详解

③ prefix:该属性是一个字符串数组,当该数组有值时,表示忽略字段中对应的前缀,生成对应的getter和setter方法。比如:现在有xxName字段和yyAge字段,xx和yy分别是name和age字段的前缀。但是,当把前缀添加到@Accessors属性中时,则可以像没有前缀那样,去调用字段的getter和setter方法。@Accessors既可以作用在类上,又可以作用在具体的字段上。当值为true时,对应字段的getter方法前面就没有get,setter方法前面就没有set。

2024-04-06 23:13:02 133

原创 JSON的定义、基本使用二

这里需要注意的是,传入的值有两个,第一个是传入的字符串,第二个是即将转换成的对象的。,最后返回的是你所定义的Java对象。,注意,这可是一个字符串。2.1 将对象转换为。

2024-04-04 22:57:06 248

原创 JSON的定义和基本使用

JSON是一种轻量级的数据交换格式,是由字符串化的键值对构成。基于网络的前后端通信,数据在服务端和客户端之间进行传输,采用的就是JSON的格式来进行交互。

2024-04-04 22:50:28 289

原创 Stream流中Map的举例

【代码】Stream流中Map的举例。

2024-04-03 23:21:03 95

原创 Linux进程状态

进程状态是指进程在其执行过程中的不同状态。这些状态随着进程的执行和外界条件的变化而转换。在三态模型中进程状态分为三种基本状态,即运行态,就绪态,阻塞态。在五态模型中,进程分为新建态、终止态,运行态,就绪态,阻塞态。

2024-04-03 23:03:49 111

原创 MybatisPlus总结

(1)MyBatis-Plus是MyBatis的增强,在MyBatis的基础上,只做增强而不做改变,是为了简化开发、提高效率而生。

2024-04-02 23:05:43 1402

原创 报错:This application has no explicit mapping for /error, so you are seeing this as a fallback.

explicit : 明确的。

2024-04-02 22:20:38 176

原创 Springsecurity的准备工作

类名上加@TableName(value = "sys_user") ,id字段上加 @TableId。

2024-03-31 15:14:18 420

原创 SpringSecurity学习总结(三更草堂)

SpringSecurity安全框架的核心功能是和认证:验证当前访问系统的是不是本系统的用户,并且要确认具体是哪个用户。授权:经过认证后判断当前用户是否具有进行某个操作的权限。

2024-03-31 13:51:57 1091

原创 常见的Http响应状态码

HTTP状态码201表示"Created",它是HTTP协议中的一种状态码,用于指示服务器已成功创建新的资源。在RESTful API中,常见的应用场景是在执行POST请求时创建新的资源,例如创建新的用户、文章、订单等;通常在客户端向服务器发送POST请求,并且该请求成功创建了新资源时,会返回状态码201表示创建成功。Http响应状态码,这个状态码就是我们Http请求和响应的时候客户端和服务器中的状态信息,它标注着各种问题和错误:404和500是我们经常见到的状态码。201:新的资源已经创建完成;

2024-03-30 00:37:30 180

原创 Springboot之RESTful风格

Restful风格与传统的有一些不同,传统的资源请求中只有Get以及Post两种方式来传递参数,而Restful风格将资源请求按照CRUD增删改查这基本的数据操作分成了四个基本传递方式。其中,Put 和Delete是从Post中分离出来的,可以浅显的理解为Post的子集。注解,使用这个注解将返回的资源数据制成JSON格式响应给客户端。

2024-03-30 00:31:47 638

空空如也

空空如也

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

TA关注的人

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