- 博客(388)
- 资源 (4)
- 收藏
- 关注
原创 Java开发 - Redis事务怎么用?
以上是对redis事务的一个实操过程,建议大家在做key的存入的时候不要对多个key进行关联,主要是避免出现数据不一致的情况。整体上就是这样,推荐使用SessionCallback和Jedis的方式,虽然你可能不一定会用到这东西,但是万一用到了呢?
2023-08-08 08:00:00
1145
50
原创 Java开发 - Redis常见问题场景及解决办法一览
伴随着轻快的下课铃声,额...不是,伴随着博主留下一个个链接之后,本篇博客就要跟大家说再见了,学习使我快乐,不知道这篇博客能不能带给你快乐呢?咱们今天就讲到这里,下一篇讲什么,博主要好好想想,有可能是Kafka,也有可能是RabbitMQ,我再纠结纠结。
2023-08-01 08:00:00
1744
46
原创 Java开发 - 深入理解Redis Cluster的工作原理
前面我们讲过Redis Cluster的搭建方式,也是本着应用优先的原则,所以对其基础概念和原理几乎没有涉及,但当学会了Redis集群的搭建方式之后,对于其原来我们还是要知道一些的,所以这篇博客,我们将一起来学习Redis Cluster的一些相关知识。在开始Redis Cluster的讲解之前,还不熟悉Redis Cluster,还不知道怎么搭建Redis Cluster的小伙伴,可以先去看看以下这篇博客:Java开发 - 让你少走弯路的Redis集群搭建看完这篇博客,对于里面一些基础知识,我们就开始给大
2023-07-26 08:00:00
2699
76
原创 Java开发 - 深入理解Redis哨兵机制原理
写到这里,Redis的哨兵模式基本是给大家讲解清楚了,不知道你get到了多少?如果还有其他疑问,不放评论区留言和小伙伴们一起讨论吧,最后,不要吝啬你们的赞,动动小手,给博主一个大大的支持吧。
2023-07-18 19:34:49
878
32
原创 Java开发 - 探寻Spring的秘密
前面的都还好,这个Web层总有点生无可恋的赶脚,我们恐怕了解不了那么深,当然不排除一些大神很有天赋,一看就懂,总之博主觉得这些看看就行。这里只是粗浅的介绍了Spring中有哪些东西,能把这些东西搞懂也算是差不多了吧。哈哈,其实“差不多”这个词挺害人的,但能掌握多少,掌握到什么程度,就是大家自己的事情了,内容不少,大家可以有针对性的去看去学,像里面有些东西博主都是一笔带过,不是说不重要,只是没有想象中那么重要,要是有时间,可以深入研究,那今天就到这里吧,博主也需要拐回去好好再看几遍。
2023-07-11 08:30:54
2544
65
原创 Java开发 - Canal进阶之和Redis的数据同步
本篇是对单节点的应用,但从中我们也能推断出一些关于集群的应用,不过大多数公司能搞个主从就已经是不错了,所以你能学会这个已经算是很有用了,关于ES,博主前面也讲过一些基础应用,创建一个工具类利用ES的数据模型进行存储就可以达到一个canal同时对Redis和ES的同步,如果担心出问题,可以把Canal搞成集群的形式,这个后续有时间博主再给大家做讲解。今天就到这里了,觉得不错就支持一下吧。
2023-07-04 09:04:33
4047
86
原创 Java开发 - Canal的基本用法
译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。下面这张图可以代表Canal的用途,就染我们来一起瞻仰一下:基于日志增量订阅和消费的业务包括数据库镜像数据库实时备份索引构建和实时维护(拆分异构索引、倒排索引等)业务 cache 刷新带业务逻辑的增量数据处理当前的 canal 支持源端 MySQL 版本包括 5.1.x , 5.5.x , 5.6.x , 5.7.x , 8.0.x。
2023-06-30 11:09:08
4095
78
原创 Java开发 - 负载均衡你了解多少?
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡其意思就是分摊到多个操作单元上进行执行,例如Web服务器FTP服务器企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。通俗点来讲,就好比你要去蹲坑,坑位有五六七八个,你去哪个坑都能解决你的问题,你可能这次去一号坑,下次二号坑......总之,可随机;也可以你自己喜欢哪个坑就常去哪个坑,这个叫权重;甚至你可以每次不重样,这就是轮训。
2023-06-24 00:15:35
1478
3
原创 Java开发 - 带你了解集群间的相互调用,你还在等什么?
到此,这篇关于集群间相互调用的博客就写好了,唯一觉得有些遗憾的是关于Dubbo的详细使用没有给大家讲清楚,后续单独出一篇来进行讲解,请大家稍微期待一下,其实很多人开发中未必用到异地容灾的场景,这篇博客算是给大家一个入门的门票,算不上特别精,但一定对你会有些帮助。未来,会分享更多的集群相关的博客,让我们一起学习,早日成为架构师。
2023-06-15 15:26:30
1162
77
原创 Java开发 - 让你少走弯路的Redis集群搭建
到此,这篇Redis的集群搭建就给大家介绍完了,可能还存在一些细节上的不足,如果你刚好看到,刚好用到,有什么疑问的话,都可以评论区留言讨论,博主一定知无不言,言无不尽。最后,祝愿大家都能成为优秀的Java开发工程师,加油哦!
2023-06-08 23:31:29
4972
80
原创 Java开发 - 让你少走弯路的Redis主从实现单节点哨兵模式
虽然这只是一篇单节点哨兵的应用,但是对于一些初创型公司或者一些小型起步项目来说已经足够了,并不是所有的公司都会集群和微服务都搞的很棒,毕竟这玩意儿可是要花钱的,项目多的时候,一年随随便便服务器花出去几百万都是正常,所以也不要指望所有公司都上集群。如果对集群有需求,没关系,咱们下篇就来讲讲哨兵的集群怎么玩。
2023-06-01 19:00:00
2530
96
原创 Java开发 - 让你少走弯路的Redis的主从复制
如果你看到这里,那么恭喜你,主从你已经会了,看下来和MySQL的主从理论上是一样的,Java开发 - MySQL主从复制初体验会了主从,那么主主,级联你自然也就会了,没啥难的。不过,此处没有对哨兵的配置进行讲解,就放在下一篇吧,敬请期待。
2023-05-30 22:43:33
2667
41
原创 Java开发 - 你不知道的JVM优化详解
到此,JVM相关的内容就给大家分享完毕了,每次一说到JVM我就想到了迪迦里面的基里艾洛的人,好顺嘴啊,哈哈哈!!!这一部分内容还是需要大家多探索的,优化没有上限,让我们一起努力吧。
2023-05-27 11:22:21
1248
63
原创 Java开发 - 不知道算不算详细的分布式锁详解
看,分布式锁其实也没有那么难嘛,如果你能看到这里,那么相信你一定会有所收获,多看几遍,对理解分布式锁有好处,学完分布式锁,又可以开心的出去装13了,真开心!!!学习是一个循序渐进的过程,学完之后不代表就会了,过一段时间你多半是会忘记的,就好比博主,写完之后过一段很多东西都会忘记,也需要不断的回顾才能加深印象,学习是投资自己,只有金刚钻硬了,才能去揽那瓷器活儿。加油吧,少年们!
2023-05-20 19:50:20
628
76
原创 Java开发 - 不知道算不算详细的MySQL多维度性能优化剖析
关于优化,我们不能够断章取义,有时候我们会直接去网上搜一些优化相关的博客,然后照着做。这是不对的,起码不是百分百正确,套路是这个套路,但优化就像不同的人去买衣服,每个人都有自己的特殊情况,我们要具体情况具体分析,毕竟不是每个人的应用和服务器都是一样的,千人千面用在这里再好不过了。MySQL几乎是目前绝大多数互联网公司的选择,出色的性能,低廉的成本,丰富的资源深受大众的喜爱。所以本文我们将MySQL作为我们的目标数据库。但优化有风险,优化需谨慎。优化一般针对的是一个复杂的且已经上线的系统;
2023-05-13 15:20:14
1065
38
原创 Java开发 - 不知道算不算详细的分布式事务详解
try中记录事务状态到表中;confirm中根据全局事务id删除这条数据;cancel中恢复记录表中的数据到初始状态;cancel业务中,根据xid查询数据,如果为null则说明try还没做,可不执行空回滚,然后根据全局事务id插入一条状态数据留给try做空回滚判断;try业务中,根据xid查询数据 ,如果已经全局事务id,则存在Cancel已经执行的情况,可拒绝执行try业务。
2023-05-06 20:49:19
955
58
原创 Java开发 - 不知道算不算详细的JUC详解
关于线程的状态,我们用一张图来说明:看看这些线程执行的过程调用不同的方法是不是进入了对应的状态。说实话,写到这里博主已经快要没有耐心了,而这里也只不过是写了一小部分而已,路漫漫其修远兮,吾将上下而求索。换下个话题。两种方式都保证了数据的安全性,在多线程下,只有等到获取到锁的线程将锁释放掉后,下一个线程才能持有锁。synchronized就是通过这种机制来保证数据的一致性的。这是一种对象锁,要求我们锁定的必须是同一个对象,否则将无法生效。注意:你一定好奇,能加在方法上,方法内,难道不能加在类上?
2023-04-28 12:05:49
2657
42
原创 Java开发 - 读写分离初体验
Sharding-JDBC定位为轻量级Java框架,在Java的JDBC层提供的额外服务。它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容JDBC和各种ORM框架。适用于任何基于JDBC的ORM框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template或直接使用JDBC。支持任何第三方的数据库连接池,如:DBCP, C3P0, BoneCP, Druid, HikariCP等。
2023-04-11 21:27:24
919
21
原创 Java开发 - MySQL主从复制初体验
MySQL主从复制是一个异步的复制过程,底层是基于Mysql数据库自带的二进制日志功能。就是一台或多台MySQL数据库(slave,即从库)从另一台MySQL数据库(master,即主库)进行日志的复制,然后再解析日志并应用到自身,最终实现从库的数据和主库的数据保持一致。MySQL主从复制是MySQL数据库自带功能,无需借助第三方工具。二进制日志(BINLOG)记录了所有的 DDL(数据定义语言)语句和 DML(数据操纵语言)语句,但是不包括数据查询语句。
2023-04-11 13:52:00
2414
48
原创 Java开发 - 公共字段的自动填充
看来,解决问题时,方向一定要找对,斗则方向错了,怎么也不可能完成目标的。一开始博主想要用过滤器来完成,但是发现过滤器无法进行写操作,转而更换了方向,从元数据处理器下手,最后终于实现了公共字段填充。觉得不错,就给个赞吧。
2023-04-08 19:35:32
1500
28
原创 Java开发 - SpringCache初体验
听名字,我们就知道,SpringCache是Spring大家族的一员,所以Spring很好的兼容了SpringCache,它实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能,大大简化我们在业务中操作缓存的代码,比如redisTemplate,这些东西就可以省略了。Spring Cache提供了一层抽象,底层可以切换不同的cache实现。具体就是通过接口来统一不同的缓存技术。简介使用EhCache作为缓存技术使用Google的GuavaCache作为缓存技术。
2023-04-08 14:17:16
3483
100
原创 Java开发 - 消失的id
到此,这个问题被解决了。这是开发中一个很小的问题,稍不留神就可能造成这种严重的影响,问题是还不好发现,新手往往会对此类问题束手无策,我们需要做的就是:只要时间的堆积和经验的积累,从一只菜鸟成为一只老鸟。开发没有捷径可走,如同人生,需要一步步坚定的走下去。我是CodingFire,你的良师益友,看到这里,很高兴能帮到你,咱们下篇再见。
2023-04-02 20:33:30
460
34
原创 Java开发 - MybatisPlus框架初体验
我们已经学习过Mybatis框架,基于一定的目的或者需求,我们希望提升此框架的应用效率,于是MyBatisPlus框架就来了,如果说Mybatis框架的快乐是1倍,那么MyBatisPlus带给你的快乐将是double,MyBatisPlus不会改变原有的项目结构,只做增强,你可以轻松引入,简化开发,提高效率。话不多说,下面我们就开始今天的MyBatisPlus之旅。正如前言所说,MyBatisPlus只是为了提高开发效率。(简称 MP)是一个。
2023-03-31 16:38:04
1347
50
原创 Java开发 - 拦截器初体验
说到拦截器,你想到了什么?Filter?Java开发 - Spring MVC框架初体验在最下方,有一段内容是讲拦截器的,关于拦截器和过滤器的区别,我们会在本文中给大家讲述,下面,就让我们开始这篇拦截器的学习吧。拦截器如其名,可以用来拦截某些信息,这和我们在上一篇讲述的AOP的功能很相似,在AOP中,我们也提到这种思想应用的体现,包括了像拦截器等具备拦截功能的插件上,拦截器在实际的使用中也是很常见的。在Java开发 - Spring MVC框架初体验。
2023-03-27 08:00:00
803
28
原创 Java开发 - AOP初体验
AOP面向切面编程是一种程序设计思想,我们常说的是面向对象编程,这是一个道理。仅是一种理念,一种帮助我们达到某种目的的编程理念。它的核心思想就是在不改变现有程序的前提下,设置某个方法运行之前或运行之后新增额外代码的操作,我们也经常在代码中使用如过滤器,全局异常捕获等,他们都是Aop的思想,不管是Spring项目还是boot项目,都可以来实现Aop的功能,可见,Aop的通用性很强。AOP的目标是提高代码的模块化程度,通过在现有代码基础上增加额外的通知(Advice)机制,能够对被声明为“切点。
2023-03-25 13:24:40
698
30
原创 Java开发 - 配置中心初体验
配置中心我们也是针对微服务来说的,所以这个配置中心当然是微服务的配置中心,下面,我们就来说说什么是配置中心。就像文字描述的那样,配置中心主要用来解决配置问题,在微服务项目中,我们的配置一般是写在yml文件或者properties文件中的,这是我们所熟知的一种写法。有时候,多个子项目共用一个配置的时候,当需要修改时,往往需要去修改每一个子项目的配置,搞不好还会改错,这时候,如果能有一个地方可以统一修改,全部生效,那该是多么轻松啊,这就是配置中心的作用。总结一下就是:配置中心能够达到高效修改各模块配置的作用。
2023-03-23 16:30:55
2105
74
原创 Java开发 - ELK初体验
ELK是如今比较流行的一套框架,主要用于日志的采集保存和查询。线上情况,我们不能通过控制台来实时查看,但却可以通过日志输出来定位问题,查看必要的信息。如果保存成文件,也必然是极庞大的体量,并不适合我们去翻看,查找信息,这才有了ELH,其实对于ELK,大家也并不陌生,其中的E,就是我们前段时间学习的ES,全名Elasticsearch,中文名:全文搜索引擎。是不是很惊喜和意外?所以当然,L和K也是两个单独的系统,他们统称为ELK,下面,我们将逐一介绍这三个东西是什么。如果自己做,还是推荐官方的做法。
2023-03-19 10:44:12
2763
6
原创 Java开发 - 布隆过滤器初体验
布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。布隆过滤器不保存元素,之判断是否存在,不保存,所以也无法取出元素。
2023-03-16 08:15:00
2020
49
原创 Java开发 - 消息队列之RabbitMQ初体验
RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。AMQP协议更多用在企业系统内,对数据一致性、稳定性和可靠性要求很高的场景,对性能和吞吐量的要求还在其次。所以在Java业务中使用很多,目前我所知道的很多都是用的此消息队列,只不过大家评价都是:功能强,性能一般。与其相反的,就是Kafka了:性能强,功能弱。
2023-03-13 08:30:00
4364
90
原创 Java开发 - 消息队列之Kafka初体验
Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。
2023-03-11 21:30:00
1329
24
原创 Java开发 - 消息队列前瞻
常见消息队列 RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMQ 等详解和对比 - 知乎最后了,说啥啥?还是说说关于消息队列博主的教程方向吧。后续,博主会通过两篇博客来分别讲解RabbitMQ和Kafka的实战用法,此篇权当给大家一个前瞻,了解下即可。
2023-03-09 21:30:00
974
32
原创 Java开发 - Redis初体验
Redis全名Remote Dictionary Server,即远程字典服务,是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis虽然Redis也是数据库,但又有别于我们所知的mysql等关系型数据库,Redis是一款基于内存的NoSQL数据存储服务,也就是非关系型的数据库,这点要搞搞清楚。
2023-03-07 21:18:48
2544
66
原创 Java开发 - Quartz初体验
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Quartz 允许程序开发人员根据时间的间隔来调度作业,它实现了作业和触发器的多对多的关系,还能把多个作业与不同的触发器关联。听起来好可怕,功能也太强大了。但从字里行间我们还是读出来,它主要是用于延时的。赶紧关掉这些服务,博主的电脑已经吼起来了。
2023-03-06 11:10:32
4442
78
原创 Java开发 - 单点登录初体验(Spring Security + JWT)
登录这东西很奇怪哎,你说它难吗?好像客户端只需要调接口就行,那有啥难的?当你多多少少对登录的后台有些了解,又觉得好难啊,session,token,cookie,等等一堆东西,有老的大家都不喜欢用的,有新的一些框架的,根据公司项目规模不同,还要考虑成本的问题,真是有些头疼。博主今天推荐的一种登陆方式便是Spring Security + JWT的结合使用,为什么要两者结合呢?
2023-03-02 23:30:00
5928
65
原创 Java开发 - 分页查询初体验
在上一篇,我们对es进行了深入讲解,相信看过的小伙伴已经能基本掌握es的使用方法,我们知道,es主要针对的是搜索条件,在这方面es具有无可比拟的优势,但我们也会注意到,有时候搜索条件过于宽泛的时候,搜索结果集也将是非常庞大的,不仅服务器接口压力大,用户等的也很为难,为了解决这一问题,必须要对返回的数据进行处理,此时,分页就出现了,接下来,博主讲带两大家了解查询时的分页问题,并解决这个问题。
2023-03-01 22:00:00
1671
46
原创 Java开发 - Elasticsearch初体验
es全称Elasticsearch,开发界简称es,如果你是做开发的,和后台接触时多多少少应该听过他们说es,redis这些不知所谓的名词,今天,你学习这部分内容就是当初不明所以的东西es。首先声明,es不是SpringCloud的组件,也并不是Java专属的,其他的后端语言也可以使用es。由于es是一个由Java开发的软件,所以启动需要Java环境变量。es有一个中文名字,叫全文搜索引擎,它的优点是可以从大量数据中根据指定的关键字快速的匹配出相关的内容。
2023-02-28 22:09:48
14242
76
原创 Java开发 - 数风流人物,还看“微服务”
说起微服务,你不得不知道一个人:Martin Fowler(马丁·福勒),微服务的概念是他在2014年提出的,在此之前,各厂商也是有自己的微服务概念的,但是并不统一,原理是也就是增加服务器,后来Martin Fowler提出这个概念后,行业内就开始遵守这个概念,统一了微服务,就像秦始皇统一度量衡一样,下面放上大佬的照片,来瞻仰一下:大佬不愧是大佬,从发量就可窥探一二。言归正传,说说微服务的概念。
2023-02-20 08:00:00
6476
133
原创 Java开发 - 问君能有几多愁,Spring Boot瞅一瞅。
对于这个问题,不用多说,先上百度词条:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
2023-02-10 19:33:26
25677
157
原创 Java开发 - Spring Test知多少?
最近几天,这篇算是最短的了,写起来也最省劲,用了不到半天就写完了,虽然简单,但是里面的知识却很重要,最好结合前面的SSM框架一起来看和使用,可以达到事半功倍的效果。代码要练习,光看是不行的,不上手,就看不到输出,就容易忽略一些细节,希望大家都能学的贼溜,明年拿高薪。
2023-01-17 13:00:00
6513
106
原创 Java开发 - Mybatis框架初体验
在前文中,我们已经学习了Spring框架,Spring MVC框架,相信大家对这些基础的内容已经熟练使用了,今天,我们继续来学习Mybatis框架。就目前而言,Mybatis框架依然是比较实用的框架,这篇博客,将通过Mybatis框架和Spring框架的结合,来讲解Mybatis框架的使用,学完之后你就可以自己写接口玩了。Mybatis的主要作用是快速实现对关系型数据库中的数据进行访问的框架。Mybatis可以不依赖于Spring框架直接使用,但是,需要进行大量的配置,导致前期工作量比较大。
2023-01-15 13:01:01
2182
80
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人