自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 springboot里直接测试某个方法

springboot里直接测试某个方法,可直接写main方法,调用即可。

2023-07-24 19:15:21 200

原创 前后端分页查询好大的一个坑(已解决)

初步想法:本地DEBUG运行后台和页面,打断点尝试,进行重现时,SQL语句一模一样,就是有的条件能查到结果(第一页的查询结果的条件,当时没注意到),有的查不到(后面几页的查询结果做查询条件)当前页面在第一页时,pageIndex=1,你在这个页面,拿到查询出来的字段作为查询条件,传到后台的pageIndex也是1。==但是当页面在第5页时,你拿着第5页展示的字段,去直接作为查询条件查询时,传到后台的pageIndex=5!以第5页的查询结果,作为查询条件,放入搜索框进行查询,显示结果为空,查不到!

2023-03-02 17:32:08 667 1

原创 AMQP协议:消费者、生产者与RibbitMQ节点之间的交互流程,RibbitMQ的核心组成部分

当Broker往消费者发送消息时,使用“即发即完”方式的话,当消费者还未收到消息,TCP连接已经断掉,这样消费者没有收到消息,而在Broker节点(也就是RibbitMQ服务器)认为消费者已经消费了;生产者将ip、端口、用户名、密码等信息打包在Protocol Header(协议头)中,向Broker(节点)发起连接请求,两者建立连接。,如果遇到使用高峰,性能瓶颈也随之显现,rabbitmq采用类似nio的做法,连接tcp连接复用,不仅可以减少性能开销,同时也便于管理。1、与生产者类似,建立连接。

2022-12-26 23:03:23 713 1

原创 消息队列的持久化、分发策略、高可用和高可靠

高可靠简单来说就是将数据存入磁盘,而不是存在内存中随服务器重启断开而消失,使数据能够永久保存。常见的持久化方式MQ消息队列有如下几个角色1:生产者2:存储消息3:消费者那么生产者生成消息以后,MQ进行存储,消费者是如何获取消息的呢?一般获取数据的方式无外乎推(push)或者拉(pull)两种方式,典型的git就有推拉机制,我们发送的http请求就是一种典型的拉取数据库数据返回的过程。而消息队列MQ是一种推送的过程,而这些推机制会适用到很多的业务场景也有很多对应推机制策略。消息分发:

2022-12-05 22:55:10 897

原创 消息队列协议

消息中间件负责数据的传递,存储,和分发消费三个部分,数据的存储和分发的过程中肯定要遵循某种约定成俗的规范,不管是采用底层的TCP/IP,UDP协议还是其他的自己去构建等,而这些约定成俗的规范就称之为:协议。

2022-11-29 23:20:11 474

原创 什么是中间件

中间件(Middleware)是处于操作系统和应用程序之间的软件,也有人认为它应该属于操作系统中的一部分。人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平台),但在这组中间件中必须要有一个通信中间件,即中间件=平台+通信,这个定义也限定了只有用于分布式系统中才能称为中间件,同时还可以把它与支撑软件和实用软件区分开来。中间件处于操作系统软件与用户的应用软件的中间。消息队列中间件= 平台 + 通信中间件都要遵从底层协议或自定义的协议:TCP/IP协议、UDP协议进行通讯。

2022-11-22 23:54:54 4329

原创 idea使用gradle编译不通过的解决办法之一

gradle版本低,可能造成项目无法编译,就是那种明明看着有jar,就是报找不到;各种刷新,重新引入jar包都没用,jdk卸载重装都没用,试试这个方法吧。使用idea自动选择gradle版本,勾选之后确认,然后编译就通过了。

2022-10-28 18:26:30 811

原创 Nginx快速入门

狂神-Nginx快速入门

2022-09-05 23:39:20 575

原创 Xxl-job的使用

项目开发中,常常以下场景需要分布式任务调度:1、同一服务多个实例的任务存在互斥时,需要2、的执行需要支持高可用、监控运维、故障告警3、需要统一管理和追踪各个服务节点定时任务的运行情况,以及任务属性信息,例如任务所属服务、所属责任人因此,XXL-JOB应运而生: XXL-JOB是一个开源的轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展、开箱即用,其中“XXL”是主要作者,大众点评许雪里名字的缩写。...

2022-08-26 11:25:22 7128

原创 定时任务之基础实现方式(分布式任务调度)

这些单机任务调度有很多不足之处在单机环境下,上面的这种定时任务实现方式问题主要有一个,无法进行管理,没有容错机制。但是在集群环境下,如果不对代码作控制,就会导致集群的每一台机器都会执行一次定时任务。常见的解决方式,我通过配置文件进行控制,只让定时任务在某一台机器上执行,如果项目比较小,就几台机器组成的集群环境,这样的方式确实可以,只不过在任务的管理上需要想办法解决。如果是一个很庞大的分布式微服务系统,可能会有成千上万个定时任务,那上面的方法就不合理了。

2022-08-22 23:16:08 515

原创 gradle配置文件

gradle和maven一样是用来做项目结构管理和jar包管理的我们来看看如何使用gradle进行项目和jar包管理。

2022-08-14 23:34:16 1998

原创 项目构建工具-Gradle入门介绍与基础groovy语法

Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它。Gradle其实本身就是个java小程序,由java语言开发,运行在jvm上的一个小程序面向Java应用为主。当前其支持的语言C++、Java、Groovy、Kotlin、Scala和Swift,计划未来将支持更多的语言。下图就是代表Gradle的小象了,如果你在IDEA看到项目中这个小象标志的配置文件,就说明这个项目是由Gradle进行管理的。...

2022-08-10 23:24:18 829

原创 连接工具和idea能查询出数据库数据,项目中查不到数据库数据:解决办法之一

代码,SQL语句一切都正常,用数据库连接工具,idea连接数据库都能查到,就是用代码查询,项目运行查询不到数据?

2022-08-08 16:41:16 1427

原创 feign的性能优化、Feign的使用-最佳优化两种方案

设userservice为服务提供者,orderservice为服务消费者,那我只需要新增(抽取)一个模块,对userservice所有的对外接口、实体类都写到这个模块(feign接口模块)里面来,那么其他所有的模块要使用userservice模块,向userservice发送请求,只需引入userservice的那个feign接口模块,即可使用,所有的服务消费者都使用userservice提供的这一套feign接口。在实际开发项目使用feign的过程中,各公司逐渐对feign的使用方式有了更优的实践。..

2022-08-07 23:18:36 2648

原创 http客户端:Feign的使用 与 日志配置

在Spring Cloud feign的实现下,只需要创建一个接口并用注解方式配置它,即可完成服务提供方的接口绑定,简化了在使用Spring Cloud Ribbon时自行封装服务调用客户端的开发量。Spring Cloud对Feign进行了增强,使Feign支持了Spring MVC注解,并整合了Ribbon和Eureka,从而让Feign的使用更加方便。feign的日志,根据级别不同,会输出发送请求时间,响应时间,请求头,响应头,请求body等内容。feign的依赖中,包含了ribbon。...

2022-08-07 00:00:08 860

原创 Nacos集群搭建

讲不清楚,看视频吧:b站黑马程序员的简易教学

2022-08-03 23:20:51 77

原创 Nacos配置文件管理、微服务获取Nacos配置文件、热更新、配置共享、配置优先级等

传统项目中,当我们需要修改配置文件时,需要修改配置文件,停掉服务,重启服务,这样不利于提升用户体验;而使用Nacos进行项目的配置文件管理,则可以实现热更新配置文件,在Nacos中修改之后,Nacos会通知项目新的配置文件。......

2022-08-02 23:31:48 9342

原创 Nacos的集群配置、NacosRule负载均衡、权重设置、namespace

当我们的服务越来越多,服务实例越来越多(比如说userservice,有8081、8082、8083端口三个实例),我们在同一个机房部署所有的服务很不安全,应对突发状况时,就像鸡蛋放在一个篮子里;很不安全,很不友好,所有我们需要分开部署机房与服务器;一个服务可以分多个集群部署,一个服务器可以部署多个服务(但是一般不会这么做,一般一台服务器就只部署一个服务实例),一个集群可以有多个实例;那我们该如何配置集群呢?服务启动前,配置好集群属性,再进行启动例如。.........

2022-07-28 23:32:11 4015 4

原创 Nacos启动、登录与服务注册

配置在Nacos的conf目录下,有application.properties文件,可在其中配置Nacos的端口等信息,默认是8848端口。或者使用命令执行,可查看到Nacos启动后占用的端口,和主页信息。登录Nacos,默认账号密码都是nacos。网上有很多教程,这里不做阐述。.........

2022-07-26 22:56:49 6058

原创 Ribbon负载均衡策略与配置、Ribbon的懒加载和饥饿加载

Ribbon的负载均衡策略均在IRule接口下,当我们配置好Ribbon的策略之后,各种服务选择方式即可生效负载均衡策略。

2022-07-26 21:52:04 547

原创 Ribbon-负载均衡原理及部分源码

2、LoadBalancerInterceptor负载均衡拦截器,会拦截所有这个客户端发起的http请求,进行解析,获取服务ID(实例名例如userservice);6、使用客户端规定好的,或者默认的负载均衡算法,从服务列表中进行选择一个,返回给RibbonLoadBanlancerClient(Ribbon负载均衡器客户端)1、Ribbon会拦截EurekaClient客户端发出的http请求,获得服务名(userservice)2、从Eureka中拉取动态服务列表(8081、8082。...

2022-07-25 23:01:35 417

原创 Eureka-服务注册中心

Eureka本身也是一个微服务,所以可以把自己注册到Eureka上,这样的好处是,将来做Eureka集群时,方便Eureka互相注册。重新启动后,order通过userid调用user模块服务时,就可以通过Eureka中的服务名来访问user服务了。本应是“ip服务名端口号”,由于windows系统原因,变成了“主机名服务名端口号”,但不影响使用。当启用集群时,用逗号隔开,表示向这几个Eureka注册自己。...

2022-07-25 22:17:16 173

原创 微服务基础 与 SpringCloud最原始的远程调用方法

使用RestTemplate类,根据url进行发送http请求,获得数据。第二步,使用RestTemplate发送http请求,获得数据。SpringCloud远程调用其他模块-最原始方法。(http的url地址为要调用模块的地址)

2022-07-24 23:15:58 120

原创 npm(node package manager)node包管理工具

可以参考这篇文章,写的很好:npm简介-简易百科npm,Node Package Manager的缩写,也就是“节点的包管理器”。顾名思义,npm是一个软件包管理器,主要进行JAVAScript的包管理。通过npm,我们可以很方便地进行JavaScript包的下载、升级,我们也可以把我们开发的JavaScript包共享给其他使用者。我们可以简单地把npm当成一个JavaScript语言的Maven,使用起来非常方便。如果你是一个初学者,你会发现:我们使用npm之前,必须安装Node.js;当我们安装完No

2022-07-12 08:45:59 604

原创 SpringBoot整合Redis和自定义RedisTemplate、RedisUtil和中文乱码解决

SpringBoot操作数据库:Spring Data jpa jdbc mongodb redisSpring Data也是和SpringBoot齐名的项目!说明:在SpringBoot2.x之后,原来使用的jedis被替换成了lettuce(莴苣)从我们导入的pom文件中去看:可以看到,底层还是spring data的redis,下面的是lettuce包为什么要替换呢?jedis:采用的是直连的方式,多个线程操作的话,是不安全的,要解决不安全的问题,需要采用jedis pool线程池。BI

2022-07-09 23:16:53 1236

原创 Jedis的了解和使用、Jedis使用Redis事务

我们要使用java来操作redis什么是Jedis 是Redis官方推荐的java连接开发工具!使用Java操作Redis 中间件!(就是一个jar包)如果你要使用java操作redis,那么一定要对Jedis十分的熟悉!1、导入对应的依赖2、编码测试输出:说明连接成功jedis所有方法和redis里的所有命令一模一样,没有任何改变,在redis上能操作的,使用jedis同样可以操作执行结果:string的其他方法:执行结果:执行结果:执行结果:也是一样,在linux上执行的命令

2022-07-09 17:33:10 14342

原创 Redis基本的事务操作multi开启-exec执行-discard取消,和Redis的乐观锁

Redis事务本质:一组命令的集合!一个事务中的所有命令都会被序列化,在事务执行过程的中,会按照顺序执行!一次性、顺序性、排他性!执行一系列的命令!Redis事务没有隔离级别的概念所有的命令在事务中,并没有直接被执行!只有发起执行命令的时候才会执行! execRedis单条命令式保存原子性的,但是事务不保证原子性!Redis的事务:1、开启事务(multi)2、命令入队(…)3、执行事务(exec)每次事务执行之后,就结束了,再要用的时候要再multi开启事务由此可以看出re

2022-07-08 15:05:15 669

原创 Redis基本数据类型:Map和Zset

redis命令不区分大小写redis中的hash就是一个map集合,hash所有命令以h开头只不过不是简单的key-value,而是key-map!这时候的值就是个map集合key-field-value,一个key里面放了多个map本质和string类型没有太大区别,还是一个简单的key-valuehash变更的数据user name age,尤其是是用户信息之类的,经常变动的信息!hash更适合对象的存储,string更适合字符串的存储Zset(sorted set:有序集合)zset就

2022-07-07 22:10:40 2007

原创 Redis基本数据类型:List和Set

基本数据类型:List列表在redis里面,我们可以把list玩成,栈、队列、阻塞队列!redis所有的list命令都是用l开头的list是可以存放重复值的1、他实际上是一个链表,before Node after , left , right都可以插入值2、如果key不存在,创建新的链表3、如果key存在,新增内容4、如果移除了所有值,空链表,也代表不存在!5、在两边插入或者改动值,效率最高!中间元素,相对来说效率会低一点~消息排队!消息队列( Lpush Rpop ) ,栈( Lpus

2022-07-05 22:08:17 1750

原创 Redis-key的基本命令和Redis最常用的数据类型:String

Redis有5大数据类型:string,set,hash,list,zset。三大特殊数据类型:bitmaps位图、hyperloglog基数统计 和 geospatial 地理空间Redis是一个开源(BSD许可)的,基于内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件MQ。它支持多种类型的数据结构,如字符串( strings ),散列 ( hashes ),列表( lists ),集合( sets ),有序集合( sorted sets)与范围查询,bitmaps,hyperloglog

2022-07-05 16:17:50 243

原创 Redis基础知识:redis有16个数据库、redis是单线程的!

查看redis配置信息:可以看到有16个数据库:默认使用第0个数据库,使用客户端连接之后,可以使用select命令,切换数据库:redis各个数据库保存的值互不干扰,其他数据库看不到查看改数据库的所有值:keys *清除数据库:flushdb清空整个 Redis 服务器的数据(删除所有数据库的所有 key ):Flushall2、Redis是单线程的!明白Redis是很快的,官方表示,Redis是基于内存操作,CPU不是Redis性能瓶颈,Redis的瓶颈是根据机器的内存和网络带宽,

2022-06-28 22:13:49 5657 1

原创 Redis性能测试:redis-benchmark

使用Redis自带的redis-benchmark性能测试工具来进行Redis的性能测试:启动Redis,第一步,进入到redis的服务服务端和客户端的文件下,可以看到一个redis-benchmark的工具,接下来我们使用这个工具进行测试第二步,使用命令,进行测试,下面是redis-benchmark性能测试工具的可选参数:命令规则:例如:意思是:测试本机的6379端口,每次100个并发,每个并发向Redis发出1万个请求看部分测试结果(阿里云服务器,2G):set请求的结果:这个性能

2022-06-28 20:58:03 641

原创 Linux与Windows安装Redis

1、官网2、中文网3、推荐使用:官网下载地址然后,移到/opt目录下:解压得到:进入解压后的文件可以看到Redis的配置文件:使用然后使用make命令,下载所有需要的文件,这一步需要一点时间,大概三分钟make完还可以再make一下,查看一下信息再进行make install一下,可以看到安装好没有至此,就和Windows中安装一样了使用vim编辑器,进行编辑(vim编辑器,Linux自带,不需要安装)向下滑(向下的键),可以看到redis的一些默认配置默认地址默认受保护的

2022-06-27 23:00:53 347

原创 Redis入门

Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。免费和开源!是当下最热门]的NoSQL技术之一! 也被人们称之为结构化数据库!1、内存存储持久化,内存中是断电即失、所以说持久化很重要( rdb. aof )2、效率高

2022-06-26 23:27:55 250

原创 什么是NoSQL及NoSQL四大分类

NoSQL = Not Only SQL (不仅仅是SQL )关系型数据库:表格,行,列泛指非关系型数据库的,随着web2.0互联网的诞生!传统的关系型数据库很难对付web2.0时代!尤其是超大规模的高并发的社区!暴露出来很多难以克服的问题, NoSQL在当今大数据环境下发展的十分迅速, Redis是发展最快的,而且是我们当下必须要掌握的一个技术!很多的数据类型:用户的个人信息,社交网络,地理位置。这些数据类型的存储不需要一个固定的格式(行,列存储) !不需要多余的操作就可以横向扩展的!解耦!1、方便扩

2022-06-26 22:53:43 8212 2

原创 为什么要用NoSQL

90年代,一个基本的网站访问量一般不会太大,单个数据库完全足够!那个时候,更多的去使用静态网页Html ~服务器根本没有太大的压力!思考一下,这种情况下:整个网站的瓶颈是什么?1、数据量如果太大、一个机器放不下了!2、数据的索引( B+ Tree) , 一个机器内存也放不下,超过300万条数据就一定要用索引,不然太慢了3、访问量(读写混合) , 一个服务器承受不了只要你开始出现以上的三种情况之一,那么你就必须要晋级 !网站80%的情况都是在读,每次都要去查询数据库的话就十分的麻烦!所以说我们希望

2022-06-26 22:22:29 613

原创 springboot中使用页面国际化-i18n

什么叫做国际化?国际化(i18n)指让产品(出版物,软件,硬件等)无需做大的改变就能够适应不同的语言和地区的需要。对程序来说,在不修改内部代码的情况下,能根据不同语言及地区显示相应的界面就是页面点击切换语言,实现多种语言切换什么是i18n?i18n就是internationalization(国际化),由于这个单词在首字母i和尾字母n之间,有18个字母,所以简称i18n。(类似的还有k8s,是Kubernetes的缩写。)实现页面国际化需要以下几个步骤:1.我们需要配置i18n文件2.使

2022-06-26 17:15:43 749 2

原创 springboot中pom文件的依赖包、maven插件包

所有依赖的父依赖:springboot启动器:springboot的web依赖,导入之后,运行时启动Tomcat,服务一直跑起来,不加这个服务一开,立马就就停止了springboot测试相关依赖springboot热部署依赖,修改代码了不用重启项目保存即可刷新,就和前端页面一样实时更新maven插件包,用来clear清楚,install打包等功能(放在build里面,不是依赖dependency)......

2022-06-26 15:23:18 349

原创 SpringBoot的原理-初探

狂神说springboot:原理初探-笔记自动配置1、说白了,就是Springboot的启动场景,比如上面的这个spring-boot-starter-web,他就会帮我们自动导入web环境所有的依赖2、Springboot会将所有功能场景,变成一个个启动器3、我们要使用使用功能,只需要找到对应启动器就行@SpringBootApplication注解点进去,可以看到他包含三个核心注解:spring.factories:结论:springboot中所有的自动配置,都是在启动的时候扫描并加载:

2022-06-25 17:38:45 125

原创 Springboot的yml配置文件

一、服务配置二、数据库连接:三、Mybatis-Plus四、日志打印五、Redis

2022-06-25 14:48:47 2221

空空如也

空空如也

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

TA关注的人

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