自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 钉钉群-推送消息-Java

钉钉群推送消息---java

2024-09-21 19:33:04 428

转载 Spring Boot如何解决跨域问题?

跨域请求,就是说浏览器在执行脚本文件的ajax请求时,脚本文件所在的服务地址和请求的服务地址不一样。说白了就是ip、网络协议、端口都一样的时候,就是同一个域,否则就是跨域。这是由于Netscape提出一个著名的安全策略——同源策略造成的,这是浏览器对JavaScript施加的安全限制。是防止外网的脚本恶意攻击服务器的一种措施。

2024-08-29 10:26:51 70

转载 SpringBoot 接口防抖的一些实现方案

前言作为一名老码农,在开发后端Java业务系统,包括各种管理后台和小程序等。在这些项目中,我设计过单/多租户体系系统,对接过许多开放平台,也搞过消息中心这类较为复杂的应用,但幸运的是,我至今还没有遇到过线上系统由于代码崩溃导致资损的情况。这其中的原因有三点:一是业务系统本身并不复杂;二是我一直遵循某大厂代码规约,在开发过程中尽可能按规约编写代码;三是经过多年的开发经验积累,我成为了一名熟练工,掌握了一些实用的技巧。

2024-08-29 10:12:12 45

转载 工作中使用MQ的7种场景

在笔者心中,是高并发解决方案三剑客。在职业生涯中,笔者曾经使用过 ActiveMQ 、RabbitMQ 、Kafka 、RocketMQ 这些知名的消息队列。这篇文章,笔者结合自己的真实经历,和大家分享消息队列的七种经典应用场景。

2024-08-26 11:20:51 89

转载 Facebook为什么要弃用Git?

作者说他很好奇当年 Facebook 为什么会放弃 Git,转而使用 Mercurial 作为版本控制工具,他通过查找资料,看技术讲座以及与当时参与迁移到 Mercurial 的工程师交流找到了答案,我们一起来看看 Greg Foster 找到的答案是什么。像 Uber 和 Pinterest 这样的由前 Facebook 员工创办的公司也可能使用 Git 和 GitHub 作为他们的版本控制工具,而不是 Phabricator 和 Mercurial,从而在过去十年中形成一个更统一的生态系统。

2024-08-24 16:44:23 19

转载 SpringBoot集成JWT实现Token登录验证

最主要的目的:服务器应用在接受到JWT后,会首先对头部和载荷的内容用同一算法再次签名,如果服务器应用对头部和载荷再次以同样方法签名之后发现,自己计算出来的签名和接受到的签名不一样,那么就说明这个Token的内容被别人动过的,我们应该拒绝这个Token,返回一个HTTP 401 Unauthorized响应。信息交换(lnformation Exchange):信息交换在通信的双方之间使用JWT对数据进行编码是一种非常安全的方式,由于它的信息是经过签名的,可以确保发送者发送的信息是没有经过伪造的。

2024-08-23 09:59:35 32

转载 10 种超赞的 MyBatis 写法!

如果传递的是一个List,则mybatis会封装为一个list为key,list值为object的map,如果是array,则封装成一个array为key,array的值为object的map,如果自己封装呢,则colloection里放的是自己封装的map里的key值。此外,如果标签返回的内容是以AND 或OR 开头的,则它会剔除掉。使用时比较灵活, new一个这样的实体类,我们需要限制那个条件,只需要附上相应的值就会where这个条件,相反不去赋值就可以不在where中判断。

2024-08-22 16:34:18 26

转载 苏三原创精品30篇,真香。

最近有些小伙伴说,找我的原创文章很麻烦,在公众号里面不方便搜索。今天我特地给大家汇总了30篇,近期我认为不错的原创文章。这些文章当中的绝大多数,都受到了很多读者的好评,并且被很多博主转载过。我相信看了这些文章,你一定会有所收获。

2024-08-16 18:06:27 21

转载 图解分库分表,写的太好了!

因为是新增的一个group01组,所以就没有什么数据迁移概念,完全是新增的group组,而且这个group组照样就防止了热点,也就是【4000万,5500万】的数据,都均匀分配到三个DB的table_0表中,【5500万~7000万】数据均匀分配到table_1表中。我们看一下,id在【0,1000万】范围内的,根据上面的流程设计,1000万以内的id都均匀的分配到DB_0,DB_1,DB_2三个数据库中的Table_0表中,为什么可以均匀,因为我们用了hash的方案,对10进行取模。为什么要去表的总数?

2024-08-16 17:18:04 56

转载 idea maven 项目 打包 jar 步骤

​ 这两天一直在整(gu)理(dao)IDEA 用Maven打jar包,网上的教程是各式各样,但是都不能满足我的需求(或者 还没有找个正确的),因此 综合网上的内容 自己整理了一下(以下内容是在mac系统下 win 可能有一些地方不一样)。

2024-08-16 16:58:00 169

转载 java -jar命令详解

第3种没有加>1.txt,它的输出重定向到nohup.out文件中,nohup.out也就是nohup命令的默认输出文件, 文件位于$HOME/nohup.out 文件中,比如用root执行,就会输出到/root/nohup.out。第4种在第3种的基础上,在后面增加了>1.txt,意思是将nohup java -jar demo.jar的运行内容重定向输出到1.txt文件中,即输出内容不打印到当前窗口上,而是输出到1.txt文件中。第3种在第2种方式的基础上,在命令的最前面增加了nohup。

2024-08-15 19:54:07 58

转载 jar包的各种启动方式超详细总结

常用的命令其实就三个,根据需要选择即可123456# 需要打印控制台日志,无需保留之前的日志信息-jar# 需要打印控制台日志,需要保留之前的日志信息-jar# 不需要打印控制台日志-jar到此这篇关于jar包的各种启动方式超详细总结的文章就介绍到这了,更多相关jar包启动方式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

2024-08-15 19:52:36 32

转载 nohup java -jar 启动java项目

nohup是一个常用的Unix命令,用于在忽略挂起信号(SIGHUP)的情况下运行指定的命令或进程。当nohup命令被执行时,它会启动一个新的进程,并将该进程的SIGHUP信号屏蔽,这样即使终端关闭,该进程也不会受到影响。在这个例子中,pgrep -f MyApp.jar用于查找所有与MyApp.jar相关的进程,然后kill -9发送SIGKILL信号以强制终止进程。假设我们有一个名为MyApp.jar的Java应用程序,我们希望在后台运行它,即使用户注销或关闭终端,应用也能持续运行。

2024-08-15 19:48:14 37

转载 4 种 MySQL 同步 ES 方案,yyds!

在实际项目开发中,我们经常将 MySQL 作为业务数据库,ES 作为查询数据库,用来实现读写分离,缓解 MySQL 数据库的查询压力,应对海量数据的复杂查询。这其中有一个很重要的问题,就是如何实现 MySQL 数据库和 ES 的数据同步,今天和大家聊聊 MySQL 和 ES 数据同步的各种方案。我们先看看下面 4 种常用的数据同步方案。

2024-07-26 15:13:31 48

转载 幂等设计的8种实现方式

接口幂等性就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。比如:公交车刷卡,用户上车后刷码支付扣款成功,如果用户再次点击按钮刷卡并扣款成功,用户查询余额返发现多扣钱了,流水记录也变成了两条,这就没有保证接口的幂等性。因此,当你重复刷卡时,会提示:刷码重复。注意:数据库可能产生幂等性问题,但是幂等性问题不只发生在数据库。

2024-07-17 10:54:58 333

转载 我用这11招,让接口性能提升了100倍

接口性能优化对于从事后端开发的同学来说,肯定再熟悉不过了,因为它是一个跟开发语言无关的公共问题。该问题说简单也简单,说复杂也复杂。有时候,只需加个索引就能解决问题。有时候,需要做代码重构。有时候,需要增加缓存。有时候,需要引入一些中间件,比如mq。有时候,需要需要分库分表。有时候,需要拆分服务。等等。。。导致接口性能问题的原因千奇百怪,不同的项目不同的接口,原因可能也不一样。本文我总结了一些行之有效的,优化接口性能的办法,给有需要的朋友一个参考。

2024-07-17 10:44:04 145

转载 Git 不要只会 pull 和 push,试试这 5 条提高效率的命令!

使用 Git 作为代码版本管理,早已是现在开发工程师必备的技能。可大多数工程师还是只会最基本的保存、拉取、推送,遇到一些commit管理的问题就束手无策,或者用一些不优雅的方式解决。本文分享我在开发工作中实践过的实用命令。这些都能够大大提高工作效率,还能解决不少疑难场景。下面会介绍命令,列应用场景,手摸手教学使用,让同学们看完即学会。本文主要分享了5个在开发中实用的 Git 命令和设置短命令的方式。

2024-07-16 15:54:35 33

转载 明明加了唯一索引,为什么还是产生重复数据?

前段时间我踩过一个坑:在mysql8的一张innodb引擎的表中,加了唯一索引,但最后发现数据竟然还是重复了。到底怎么回事呢?本文通过一次踩坑经历,聊聊唯一索引,一些有意思的知识点。

2024-07-15 19:33:26 24

转载 原来这些技术都是阿里开源的,你用过多少?

Apache Dubbo:是阿里巴巴开源的一款高性能、轻量级的Java RPC框架,用于构建高性能、分布式的服务体系。它提供了服务注册、发现、负载均衡、监控等全套解决方案,是微服务架构中不可或缺的组件。

2024-07-02 10:42:21 215

转载 看完这一篇,ShardingSphere-jdbc 实战再也不怕了

1、ShardingSphere-Proxy 被定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。2、ShardingSphere-JDBC 是 ShardingSphere 的第一个产品,也是 ShardingSphere 的前身, 我们经常简称之为:sharding-jdbc 。

2024-06-29 17:09:23 506 1

转载 【全网最全最干】SpringBoot常见的53个注解

用于定义Bean初始化顺序,可以用在@Configuration、@Component、@Service、@Repository等注解以及@Bean方法上。用于定义配置类或Bean仅在特定的Profile激活时才会生效,可以用在@Configuration类或@Bean方法上。用于定义在特定Bean存在或不存在时的条件配置,可以用在@Configuration类或@Bean方法上。用于定义在特定类存在或不存在时的条件配置,可以用在@Configuration类或@Bean方法上。

2024-06-17 18:26:41 34

转载 面试官:你说说Thread.sleep(0)的含义

方法允许当前执行的线程在指定的毫秒数内暂停执行。当参数为0时,这个方法的行为并不是简单地休眠0毫秒,而是有着更微妙的效果。

2024-06-17 18:18:47 67

转载 4 种消息队列

消息队列是在消息的传输过程中保存消息的容器,用于接收消息并以文件的方式存储,一个消息队列可以被一个也可以被多个消费者消费,包含以下 3 元素:Producer:消息生产者,负责产生和发送消息到 Broker;Broker:消息处理中心,负责消息存储、确认、重试等,一般其中会包含多个 Queue;Consumer:消息消费者,负责从 Broker 中获取消息,并进行相应处理。

2024-04-25 19:40:59 59

转载 这是我见过最全的权限系统设计方案!

本文从易到难非常详细的介绍了权限模型的设计,在工作中需要根据实际情况来定义模型,千人以内的公司使用RBAC模型是完全够用的,没有必要吧权限模型设计的过于复杂。模型的选择要根据具体情况,比如公司体量、业务类型、人员数量等。总之最适合自己公司的模型就是最好的模型,权限模式和设计模式是一样的,都是为了更好的解决问题,不要为了使用模型而使用模型。

2024-04-22 16:50:14 157

转载 接口重试的8种方法

如果说我们不想在项目里额外地引入一些重试的框架,自己定义一个重试工具类也是可以的,这是我在某个第三方提供的client-sdk里发现的一套重试工具类,比较轻量级,给大家分享一下。首先,定义一个实现了Callback抽象类的具体回调类,实现其中的方法来执行需要重试的逻辑。回调类的方法返回一个对象,表示重试的结果。然后,定义一个类,用于封装重试的结果。类包含一个isRetry属性表示是否需要进行重试,以及一个obj属性表示重试的结果对象。// 构造方法和getter方法省略最后,定义一个。

2024-04-08 10:52:52 79

转载 万字详解,带你彻底掌握 WebSocket 用法(至尊典藏版)

WebSocket是一种协议,用于在Web应用程序和服务器之间建立实时、双向的通信连接。它通过一个单一的TCP连接提供了持久化连接,这使得Web应用程序可以更加实时地传递数据。WebSocket协议最初由W3C开发,并于2011年成为标准。

2024-03-29 14:38:11 258

转载 MYSQL中的14个神仙功能,惊艳到我了!!!

我最近几年用MYSQL数据库挺多的,发现了一些非常有用的小玩意,今天拿出来分享到大家,希望对你会有所帮助。

2024-03-26 17:40:41 105

转载 Idea快捷键

【代码】Idea快捷键。

2024-03-26 15:03:18 37

转载 瞧瞧别人家的API接口,那叫一个优雅

在实际工作中,我们需要经常跟第三方平台打交道,可能会对接第三方平台API接口,或者提供API接口给第三方平台调用。那么问题来了,如果设计一个优雅的API接口,能够满足:安全性、可重复调用、稳定性、好定位问题等多方面需求?今天跟大家一起聊聊设计API接口时,需要注意的一些地方,希望对你会有所帮助。

2024-03-22 09:46:27 41

转载 java.sql.SQLException: Invalid column type: 1111

源码结合报错信息的parameterMapping输出,可以发现,我们插入的是一个空值,而且也没有指定这个插入字段类型(JdbcType),mybatis就给了一个默认类型。报错的方法在 at org.apache.ibatis.scripting.defaults.DefaultParameterHandler.setParameters。解决办法,不给空值,或者参数类型不能为1111,这不,mybatis给出了提示,尝试给参数不同的JdbcType,

2024-02-26 14:16:08 1964

转载 缓存击穿,商详页进不去了!!!

从上面小猫的案例中,其实就已经很明了了,所谓缓存击穿就是原本由于缓存组件抗住的流量结果全部打到了数据库层,给数据库带来了巨大的压力,甚至严重的情况下直接把数据库干跨。导致缓存失效的原因也是很显然易见的,由于缓存在一个无法预期的一个场景下缓存失效了。在小猫的案例中可以看到是热卖的商品在redis中Key值全部同时失效导致的。当然这是一种常见的技术方案有问题导致的。那么还有一种导致缓存失效的原因就是缓存中间件直接宕机。

2024-01-31 15:20:19 75 1

转载 和它比起来,其他 Linux 命令都是猹!

sar(System Activity Reporter 系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一。它可以从多方面对系统的资源使用情况进行监控,包括:文件的读写情况、系统调用的使用情况、磁盘 I/O、CPU 效率、内存使用状况、进程活动及 IPC 有关的活动等,然后将系统中的各种性能数据收集起来并显示给用户。sar 命令的一些常用选项和功能如下:CPU使用统计:使用“-u”选项可以输出整体CPU的使用情况,包括用户模式下的时间百分比、系统模式下的时间百分比等。

2024-01-29 11:09:28 108

转载 索引 + 异步 ,从 12h 优化到 15 min

一、一般我会这样做:通过接口或者定时任务的形式读取Oracle或者通过FileOutputStream将Base64解密后的byte[]存储到本地遍历本地文件夹,将图片通过FTP上传到第三方服务器现场炸锅了!实际的数据量非常大,据统计差不多有400G的图片需要导出。现场人员的反馈是,已经跑了12个小时了,还在继续,不知道啥时候能导完。停下来呢?之前的白导了,不停呢?不知道要等到啥时候才能导完。这不行啊,速度太慢了,一个简单的任务,不能被这东西耗死吧?

2024-01-29 10:49:46 80

转载 Redis 除了用作缓存还能干吗?

今天我们来聊聊 Redis 的使用案例。Redis 是一种内存键值数据库。它支持多种数据结构,如 String, Hash, List, Set 等

2024-01-22 17:29:12 64

转载 如何保证API安全?

最近知识星球中有位小伙伴问了我一个问题:如何保证接口的安全性?根据我多年的工作经验,这篇文章从11个方面给大家介绍一下保证接口安全的一些小技巧,希望对你会有所帮助。

2024-01-22 15:56:00 509

转载 可解决95%以上问题的Linux命令!能用到退休

对于我们程序员来说,我们始终绕不过去要与 Linux 系统打交道。很多人,特别是新手程序员,一看到 Linux 系统那个小黑框,就发怵,其实,如果你真正去深入了解了,然后再学会一些常用的命令,慢慢的再在工作加以运用,你会发现真不难,而且挺容易操作的。给大家整理了日常工作中常用的 Linux 系统命令,仅供大家参考,

2024-01-19 11:11:56 67

转载 MySQL索引全解:从理论到实践,打造高效查询的指南

为了加快数据更新的速度,在InnoDB中,每次数据更新实际上都会先查询当前要更新的数据页是否已经加载到内存中了,如果是,则直接更新内存中的数据页即可,如果不是,则会先将本次更新记录到中,这样则能免去一次从磁盘加载数据页的过程。

2024-01-17 18:23:49 83

转载 MySQL 单表可以放多少数据,最多 2000 万?

title、description 分别为 varchar(50)、varchar(250),这两个应该都不会产生溢出页(不太确定),字符编码均为 utf8mb4,实际生产中 70% 以上都是存的中文( 3 字节),25% 为英文(1 字节),还有 5% 为 4 字节的表情,则存满的情况下将占用 (50+250)×(0.7×3+0.25×1+0.05×4) =说明:以上的数据计算,仅供参考,因为有的文章说,在主键为 bigint 的情况下,可存放 160 万叶子节点,整整多出 65 万。

2024-01-17 15:50:47 1029

转载 Hutool 嘎嘎香,开炫了!

Hutool 官方文档:https://doc.hutool.cn/

2024-01-09 11:26:18 82

转载 Apollo 携程框架 开源配置

Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。

2024-01-08 12:52:04 676

空空如也

空空如也

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

TA关注的人

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