自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 线上KAFKA消息堆积及数据库连接打满,CPU飙高问题解决

这个时候我陷入了沉思,生产者和消费者都是正常,但是数据却不是最新的,那很有可能是消费积压了,导致消费者没有消费到最新的数据。问题找出来了接下来就是去解决了,消息积压,常见的方式是增加消费者,扩大分区,我们也是这么做了。并发情况下,多个线程同时请求同一个数据资源时,如果某一个线程占用了资源没有释放,那么其他的线程就无法获取资源,就会一直等待,从而导致CPU占用率升高。针对我们的业务场景,只是实时显示车的位置和电量,完全没有必要放在数据库,我们改成存在redis里,去更新和查询redis,这样效率就高了很多。

2024-03-29 11:18:51 793

原创 shell脚本实现每天自动备份 MySQL 数据库

以下是一个简单的示例脚本,它会每天在特定时间(比如凌晨1点)通过cron定时任务执行,并将备份文件存储到指定目录,文件名包含日期信息。要让这个脚本每日自动运行,请将其保存为如mysql_daily_backup.sh,并赋予执行权限:chmod +x mysql_daily_backup.sh。在打开的编辑器中,添加一行来定时执行脚本(这里设置为每天凌晨1点执行):0 1 * * * /path/to/mysql_daily_backup.sh。

2024-01-31 11:23:35 386

原创 NotOpenSSLWarning报错解决

要解决这个问题,你需要升级你的OpenSSL库到1.1.1或更高版本。然后,确保你的Python使用新安装的OpenSSL库。最后,重新运行你的Python脚本,问题应该已经解决。

2024-01-30 13:25:48 1075

原创 kafka消费报错, org.apache.kafka.clients.consumer.CommitFailedException: Commit cannot be completed since

方法中尽可能快速地处理消息,避免阻塞或延迟。如果可能的话,可以将消息处理逻辑拆分为多个线程或使用并发处理来提高处理效率。的值,以允许更长的消息处理时间间隔。根据您的需求和消息处理的复杂性,可以适当增加这个配置值。这可能是因为消息处理逻辑过于复杂或处理的数据量过大。2. 消费者在处理消息时发生了阻塞或延迟,导致连续调用。循环在处理消息时花费了过多的时间。方法返回的消息批次的大小。1. 消费者在处理消息时花费的时间超过了。方法的处理时间,从而降低整体处理时间。方法之间的时间间隔超过了配置的。

2023-09-04 11:38:43 1088 1

原创 emqx离线订阅消息失败问题排查

因此车端连上emqx后还是消费不到消息,因此还是持久会话没有设置好,翻看官方文档,持久会话不仅要设置clean session =false,这只是开关,还有会话时间也要设置,默认的是2h,超过2h会话就没有了,为了印证这个问题,我们把车子离线时间设置在会话过期时间内唤醒,经过测试发现是可以消费到消息的,找到问题所在,会话时间可以根据业务需求设置,当然emqx也提供了更好的方案去解决这个问题,它提供了离线消息通过规则引擎,保存到redis,mysql等数据库中,支持持久化。

2023-08-18 11:11:51 1028 1

原创 关于项目启动NOPERM this user has no permissions to run the config SET command报错问题排查

最近项目整体迁移到百度云,其中redis也是直接用的百度云的提供云服务,项目中有用到redis,之前本地环境项目启动都是ok,但是迁移到百度云后,启动项目,就报NOPERM this user has no permissions to run the config SET command,这个错误意思就是用户没有对config set 这个命令有操作权限,百度云用的是redis6.0,redis6.0是提供了更为细致的权限控制粒度,不仅支持用户名,密码,还有命令。

2023-08-17 09:54:51 948 1

原创 Kafka分区路由之自定义分区

开发者可以根据业务逻辑实现自定义的分区策略,例如根据特定字段的哈希值对分区数取模,实现特定的消息路由逻辑。

2023-08-14 10:08:05 265

原创 Kafka消费者详解

注:虽然程序不能在失败时候进行自动重试,但是我们是可以手动进行重试的,你可以通过一个 Map offsets 来维护你提交的每个分区的偏移量,然后当失败时候,你可以判断失败的偏移量是否小于你维护的同主题同分区的最后提交的偏移量,如果小于则代表你已经提交了更大的偏移量请求,此时不需要重试,否则就可以进行手动重试。同时在主题发生变化时 , 比如添加了新的分区,也会发生分区与消费者的重新分配,分区的所有权从一个消费者转移到另一个消费者,这样的行为被称为再均衡。

2023-08-04 10:15:00 121 1

原创 Kafka生产者详解

Kafka 有着默认的分区机制:如果键值为 null, 则使用轮询 (Round Robin) 算法将消息均衡地分布到各个分区上;如果键值不为 null,那么 Kafka 会使用内置的散列算法对键进行散列,然后分布到各个分区上。某些情况下,你可能有着自己的分区需求,这时候可以采用自定义分区器实现。/*** 自定义分区器*/​​@Override/*从生产者配置中获取分数线*/​@Override。

2023-08-03 14:17:56 153

原创 深入理解Kafka副本机制

这是针对当首领副本挂掉且 ISR 中没有其他可用副本时,是否允许某个不完全同步的副本成为首领副本,这可能会导致数据丢失或者数据不一致,在某些对数据一致性要求较高的场景 (如金融领域),这可能无法容忍的,所以其默认值为 false,如果你能够允许部分数据不一致的话,可以配置为 true。在所有副本中,只有领导副本才能进行消息的读写处理。需要注意的是,并不是所有保存在分区首领上的数据都可以被客户端读取到,为了保证数据一致性,只有被所有同步副本 (ISR 中所有副本) 都保存了的数据才能被客户端读取到。

2023-08-03 14:03:03 162

原创 Kafka简介

ApacheKafka 是一个分布式的流处理平台。它具有以下特点:支持消息的发布和订阅,类似于 RabbtMQ、ActiveMQ 等消息队列;支持数据实时处理;能保证消息的可靠性投递;支持消息的持久化存储,并通过多副本分布式的存储方案来保证消息的容错;高吞吐率,单 Broker 可以轻松处理数千个分区以及每秒百万级的消息量。

2023-08-03 13:34:43 48

原创 ShardingSphere介绍及使用

今天我们来聊一聊ShardingSphere,相信做过电商相关项目的同学应该都知道或者用过这个中间件,没错,它是一个用来解决在业务数据超过单表或单库最大接受性能的情景下而出现的一款产品,主要用来对业务数据做水平和横向的扩展,也就是我们常说的分库分表。ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的产品组成。

2023-08-02 14:53:15 173

原创 Netty框架介绍

Netty是由提供的一个java开源框架,现为上的独立项目。Netty提供异步的、的网络框架和工具,用以快速开发高性能、的和客户端程序。也就是说,Netty 是一个基于NIO的客户、的编程框架,使用Netty 可以确保你快速和简单的开发出一个,例如实现了某种协议的客户、应用。Netty相当于简化和流线化了网络应用的编程开发过程,例如:基于和的socket服务开发。“快速”和“简单”并不用产生维护性或性能上的问题。Netty 是一个吸收了多种协议(包括。

2023-07-27 13:56:13 537 1

原创 Java设计模式之适配器模式(Adapter Pattern)

总结: 适配器模式是一种简单而实用的设计模式,它能够解决接口不匹配的问题,使得原本不兼容的类可以一起工作。但是,我们发现MP3音乐的播放接口与MP4音乐的播放接口不同。介绍: 适配器模式是一种结构型设计模式,它允许将一个类的接口转换成客户端所期望的另一个接口。例如,一个类使用的是旧的接口,而我们又想要使用一个新的接口,但两者之间方法的名称和参数不同。在上面的示例中,我们成功地使用了适配器模式,通过适配器将MP3音乐播放器适配成了MP4音乐播放器的接口,实现了MP3和MP4音乐播放器之间的无缝协作。

2023-07-19 15:49:16 39

原创 Java设计模式之观察者模式(Observer Pattern)

观察者模式是一种灵活而高效的设计模式,它实现了对象之间的发布-订阅机制,使得主题和观察者之间解耦。在观察者模式中,一个对象(称为主题)维护一组依赖于它的对象(称为观察者),当主题的状态发生变化时,它会通知所有观察者并自动更新它们的状态。场景: 当一个对象的状态发生变化时,需要通知其他相关对象做出相应的反应时,观察者模式就可以派上用场。例如,在一个气象站应用程序中,当气温、湿度或气压发生变化时,需要通知显示屏和手机App更新相应的天气信息。实现: 让我们通过一个简单的示例来理解观察者模式的实现。

2023-07-19 15:29:24 44

原创 Java设计模式之装饰器模式(Decorator Pattern)

介绍: 装饰器模式是一种结构型设计模式,它允许在运行时为对象动态添加新的功能,同时又不改变其结构。总结: 装饰器模式是一种灵活而优雅的设计模式,它允许在运行时动态地为对象添加新的功能。通过使用装饰器模式,我们可以实现透明的对象包装和功能扩展,而不必修改原始对象或现有代码。例如,在一个咖啡店中,我们可能需要为咖啡添加不同的配料,如牛奶、糖和巧克力。实现: 让我们通过一个简单的示例来理解装饰器模式的实现。在上面的示例中,我们成功地使用了装饰器模式,动态地为咖啡添加不同的配料,而不改变原始咖啡对象的代码。

2023-07-19 15:07:39 65

原创 Java设计模式之责任链模式、过滤器模式及策略模式的结合应用

在某些情况下,我们可以将这三种模式相结合,以提供更灵活和可扩展的代码结构。我们将使用责任链模式处理这一系列的处理器,并使用过滤器模式在每个处理器中进行具体的请求处理,同时使用策略模式根据用户等级提供不同的优惠策略。在上面的示例中,我们成功地将责任链模式、过滤器模式和策略模式相结合,实现了处理购买请求的链式调用和不同用户等级的优惠策略。结论: 责任链模式、过滤器模式和策略模式的结合应用能够有效地解耦请求的发送者和接收者,实现灵活的请求处理流程,并根据不同的情况提供不同的处理策略。

2023-07-18 15:53:49 405 1

原创 Java设计模式之策略模式(Strategy Pattern)

总结: 策略模式是一种优雅且灵活的设计模式,它允许在运行时选择不同的算法实现方式,实现算法的定义与使用分离。策略模式在Java中的应用非常广泛,它提供了一种优雅的方式来实现算法的选择和组合。例如,在一个电商平台中,根据用户的会员等级,我们可能会对购物车的折扣进行不同的计算。假设我们正在开发一个电商平台,根据不同的用户等级提供不同的折扣策略。在上面的示例中,我们成功地使用了策略模式,根据不同的用户等级提供不同的折扣策略。)并不关心具体的折扣实现,而是通过策略接口与具体的策略类进行交互,实现了算法的动态切换。

2023-07-18 15:43:32 139 1

原创 Java设计模式之责任链模式(Chain of Responsibility Pattern)

例如,在一个Web应用程序中,可以使用责任链模式来处理HTTP请求,每个处理器负责处理不同类型的请求,例如身份验证、日志记录、权限检查等。介绍: 责任链模式是一种行为型设计模式,用于将请求的发送者和接收者解耦,将多个对象组成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。在上面的示例中,我们通过责任链模式成功地将不同的数字处理逻辑分离,每个处理器只关心自己能处理的情况,如果不能处理,则将请求传递给下一个处理器。现在,我们可以在客户端代码中设置处理器的链,并将请求沿着链传递。

2023-07-18 15:28:26 81 1

原创 JDK1.8之hashMap源码分析

hello,大家好,博主今天分享一篇关于hashMap源码的文章。OK,废话不多说,直接进入正题。HashMap是Java中常用的一种集合类型,它的底层实现是基于哈希表。哈希表是一种以键值对形式存储数据的数据结构,通过哈希函数将键映射到数组中,以达到快速查找的目的。在本文中,我们将深入分析JDK1.8中HashMap的源码实现。

2023-04-26 18:08:08 262 2

原创 emqx发大消息失败原因分析

于是让我断定肯定还是emqx的配置需要修改,升级版本不是最终解决方案。一个一个的研究官方的配置参数,发现,有个参数zone.external.force_shutdown_policy = 10000|64MB,这个是单个进程(MQTT Client) 允许使用的内存上限,因为在emqx内部有很多进程在工作,内存会自增长,在垃圾回收没来得及处理的话,就上去了。

2022-11-30 18:28:25 1265

原创 emqx 发布二十万以上字节消息失败

emqx发送大消息,连接断掉的排查之旅

2022-11-10 18:10:21 1774 1

原创 springboot整合mongo启动报错

springboot整合mongo启动报错

2022-07-13 16:51:37 1351 1

空空如也

空空如也

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

TA关注的人

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