自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AlgoRain的博客

限制真多

原创 阿里云OpenSearch-LLM智能问答故障的一天

在抨击阿里云服务之前,还是要肯定open search问答版挺好用的,解决了公司想要根据内部知识内容搭建大模型,进行内部AI的数据问答,在这之前我也试用过模型服务灵积的定制模型,但作为传统型公司,训练模型所需要的语料库根本没有,公司的诉求更多是给一堆内部文档,然后对此进行提问回答,省去过往人工查找,还能将内部知识进行概括总结,给出所属的知识来源文档,所以要想生成基于问答形式的语料库不太现实。或者还有更好的方法我还没探索出来吧。

2023-12-26 18:25:00 1303

原创 Java后端问题排查经验

线上出现问题首先应该做什么,不是解决问题,而是先恢复系统,把损失降到最小,有机会的话保留日志等数据用于后期问题复盘分析。解决问题可以后期慢慢复现排查,而线上用户的体验则不能多耽误一分一秒,任何线上问题的解决都应以用户为主。出现问题的解决方法:重启,扩容,回滚,降级,限流高并发高流量系统的设计处理:缓存,降级,限流。

2023-12-18 16:28:09 959

原创 Uncaught (in promise) TypeError: Cannot set properties of null (setting ‘nodeValue‘)

使用vue3开发新页面时,有个奇怪的错误,从列表页中点击进入详情页,刚进入时数据都可以正常展示,但刷新后就会报错,错误提示是:Uncaught (in promise) TypeError: Cannot set properties of null (setting 'nodeValue')发现是在调用API接口赋值时出错,网上也没有相关的解决办法,但如果是赋值时的错误,刚进入页面时没有问题,刷新之后属于二次赋值,这类报错很奇怪。索性不使用直接赋值,而是单独赋值,看看是不是有空值导致的错误。

2023-12-12 10:29:07 233

原创 vue3中使用v-html解析后table表格的线不展示

最后直接在scoped模式下的style,重新建一个,scoped模式会影响内部重新设置表格的样式。在vue3中使用v-html展示富文本内容时,表格的框线不展示。各种用法之后,还是不生效。

2023-11-17 09:37:11 232

原创 consul安装启动流程

当端口冲突时,在/usr/local/bin下新建data.json文件,将以下端口更换为系统不冲突的端口。首先cd /opt ,将安装包放到该目录下。consul涉及端口。

2023-08-13 22:06:15 359

原创 通义千问开源模型部署使用

首先可以参考modelScope社区给出的使用文档,已经足够全面但在按照文档中步骤部署时,还是有些错误问题发生,可以搜索参考的解决方式不多,所以记录下来。

2023-08-10 19:53:53 1278

原创 梳理日常开发涉及的负载均衡

借用dubbo文档中对负载均衡的场景解释,负载均衡的好处有以下方面高可用性:部署服务的多个实例以确保即使一个或多个实例失败服务保持可用,负载均衡功能可用于在这些实例之间分配传入的请求确保以负载均衡方式使用每个实例的方式,还能最大限度地降低服务停机的风险。

2023-08-07 21:02:11 967

原创 Exception in thread “main“ ErrCode:-400, ErrMsg:com.alibaba.nacos.common.utils.ResourceUtils

nacos-client启动时报错,找不到resourceUtils,提示ClassNotFoundException。找了下这个类属于是nacos-common包的,那就在pom中把nacos-common也依赖进来。点进去发现这个类还真的没有。

2023-07-19 10:09:38 374

原创 guava-31.1-android.jar时出错; zip file is empty

配置nacos-client时,启动报错guava-31.1-android.jar时出错;翻看了一下依赖的nacos-api的maven包中,果然有这个版本的guava。此时启动还是报错, 然后重新引入guava。在nacos-api中屏蔽掉。

2023-07-19 09:58:58 363

原创 Nacos2.2.1报错java.lang.IllegalArgumentException: the length of secret key must great than or equal 32

在console模块的application.properties配置文件中,可以看到nacos.core.auth.plugin.nacos.token.secret.key是空的,复制上面的字符串就可以。

2023-07-18 17:02:11 159

原创 简易注册中心监控NAS断电断网

日常使用NAS过程中,偶尔会出现家里断电或者断网的情况,NAS自带网络断开的通知功能,但需要是恢复网络链接后才会通知,而此时都恢复了,再通知也就没那么重要,还有断电情况下也是需要回家才能知道,断电保护可以使用UPS,当停电后UPS通过usb数据线会给NAS发送通知,NAS收到通知后在设定时间内关机并发送ups进入电池供电模式的通知,但这个方式需要购买ups设备,成本在300元左右。

2023-07-17 23:10:39 230

原创 阿里云Redis与Tair压力测评

这里有具体介绍Tair的视频,里面详细介绍了阿里云Redis和自建Redis的对比分析

2023-07-12 22:06:33 282

原创 BFF网关模式开发指南

降低后端开发联调成本:直接提供RPC接口将基础数据返回即可降低前端开发联调成本:直接对接一两个接口就可以拿到全部数据,并且可以将很多前端写死的逻辑交给BFF网关做下发,提高前端展示的灵活性。方便需求迭代升级:当大量前端逻辑移植到BFF网关,很多需求的上线不再依赖前后端发版,直接让BFF快速上线更新即可。提高用户体验:BFF网关可以较低成本的做异常降级处理,为前后端包装错误提示,统一异常捕获类型。

2023-07-09 20:25:02 399

原创 从互联网到国企、从一线城市到三线省会

6月的北京格外的闷热,比起内蒙真的热了不少,整整四个月没来北京了,晚上出高铁来到清河站时还是那么的熟悉,挤上13号线路过五道口、知春路,去西直门换乘2号线,再换上5号线到了宋家庄,最后换上回村的亦庄线,从北京的最西北边走到最东南角。看着地铁上的疲惫的人们,这次回来自己更像是一个游客的视角,观察着以前的“自己”。从3月初离职一直没有记录过这段经历,但这次去北京让我觉得有必要写一些自己的感受和体会。

2023-07-08 15:49:05 124 1

原创 python解析考试题库数据

应单位要求需要参加某个考试,但考试需要从手机端登陆学习,1000多道题需要挨个刷一遍太过于麻烦,萌生了把题目和答案全部扒下来的想法,再用python做数据的清洗和梳理,最后整合出来所有的考试题库信息。print('答案:' + str(answer['answer']))print('解析:' + answer['analysis'])print('选项:\n' + o_str)print('答案:错')print('答案:对')最终将生成的数据导入word中,形成可以看的文档。

2023-07-07 10:23:36 294

原创 面试题分析:统计网站访问次数

平台的访问量非常高,需要实时统计网站的访问次数,请设计一个计数器解决:

2023-07-06 20:56:35 574

原创 Redis 实现库存扣减

在日常开发中有很多地方都有类似扣减库存的操作,比如电商系统中的商品库存,抽奖系统中的奖品库存等。这次分享的是库存的操作怎么防止商品被超卖。

2023-06-26 16:57:06 2364

原创 ZK连锁问题导致接口不可用

公司现有项目中使用zk作为配置中心,内部维护着各种系统的配置信息,每次启动时都会连接zk后,覆盖本地默认配置,公司zk作为公用的组件有专门的团队负责维护,连接的应用也有上千个,所以一直没出现过问题。

2023-06-25 16:53:00 49

原创 infinity迁移webTab插件

infinity插件用了三四年了,真的是非常方便好用,但最近发现了webTab插件,仿佛又打开了新世界的大门,看了下webTab和infinity都是同一个开发者,但互相之间没有做数据打通备份,infinity用了很多年积累许多网站信息,一个一个添加过去太麻烦了。这里分享下我迁移的过程,适合有几十个网站需要备份的,懒得手动复制的因为都是同一个开发者,所以基本的字段都类似,只要把infinity的拷贝到webTab里

2023-05-18 21:22:54 727 1

原创 自更新参数web接口预热工具

这里开发了预热注解,在需要的地方加上注解,这里会拦截请求里的body+indexRequest参数,通过本地Cache缓存请求间隔次数,每隔一个小时保存一次,参数内容保存到本地缓存中,服务端不做多版本保存,每小时动态覆盖,再加上zk开关进行判断。由此想做自动预热和报文对比,减少人为干预成本,提高覆盖率,采用外部+内部预热的方式:最大程度减少对本地代码的入侵,同时还能全面覆盖服务器,并使用最新参数刷新接口。这里是用来触发预热的任务,之后会通过python内部保存的参数URL来刷接口。python共三个模块。

2023-05-13 22:36:05 1037 1

原创 华为数字能源生态大会

战略全景:从高碳走向低碳,从低碳走向零碳(低碳城市,低碳建筑,低碳工程,低碳园区,低碳乡村,低碳家居)清洁发电,能源数字化,交通电动化,绿色ICT能源基础设施,综合智慧能源。打造绿色,极简,智能,安全的数字产业能源基础设施,助力构建算力网络,加速奔向智能社会。携手全球商业合作伙伴,共同成长,建设无处不在的绿色,低碳,智能的分布式能源系统。数据能源大时代,产业高速发展正面临五大新挑战:井网,安全,质量,运维,能耗。共建技术领导力,推进产业高质量发展,开放有序,竞争有力,有韧性的产业链,

2023-05-11 22:41:51 495

原创 以点到面的限流方式

传统的分布式锁也是采用集群缓存,缓存用户请求次数进行限流,为了缓解缓存压力,也可以在redis的基础上再增加机器维度的防刷,同一台机器同一时刻只处理一个用户的一个请求,在机器维度做第一层控制,否则当大规模流量过来,集群缓存的压力相当大,这样能减少缓存查询次数,提升接口性能。总之当用户领到优惠券后,就可以拒绝之后的其他请求。:单台机器,针对单个活动的活动ID,同时只处理x个请求,这里可以做成可动态配置的阈值,针对活动的限流,可以确保少数热门活动不会占用大量资源。

2023-03-16 17:27:47 79

原创 学生社团管理系统的设计与实现

学生社团管理系统的设计与实现。

2023-03-16 17:17:35 1252

原创 社区物业小区后勤维护系统的设计

题目描述:对于小区物业管理来说,其工作流程的繁杂性、多样化、管理复杂、收缴费用与设备维护繁琐。计算机已完全能够胜任物业管理工作,而且更加准确、方便、快捷、高效、清晰、透明,它完全可以克服以上所述的不足之处。这将给项目查询和管理带来很大的方便,从而给物业管理工作带来更高的效率,这也是物业管理正规化、现代化的重要标志。为了对小区物业进行管理。现设计系统完成以下功能:(1)房产信息管理:记录管理区、大楼、楼层、房间及配套硬件设施的基本信息。

2023-03-16 17:12:09 357

原创 海鲜海洋水产品预购销售管理

主要内容:拟设计一个简便方便的海产品在线预购系统,应用面向对象的系统开发模式,并运用java的web框架进行开发。本系统的应用对象是海产品的销售者和购买者。对于销售者,有账号管理功能、海产品信息的展示功能、库存管理功能和会员管理功能,通过这些功能销售者可以分别完成账号的注册登录、海产品信息展示、库存信息的更新及修改、会员信息及优惠政策的管理等操作。

2023-03-16 17:05:29 165

原创 健康时代健身房管理系统的设计与实现

随着中国经济的不断发展以及人们日益增长的对美好生活的向往,越来越多的人们开始关注自己的身体健康情况,民众健身意识的逐渐提高促进了健身行业的兴起。在这一潮流之下,多种健身俱乐部在各地纷纷出现,但是我国的健身房管理信息系统研究相对于国外发达国家而言,起步较晚且发展不足。尤其对于建立在社区学校内的小型健身房,由于经费限制或管理者的信息化意识缺失,其管理工作长期处于纸质化或半纸质化的阶段,进而导致了管理效率低下、推广效果不佳。因此,亟需设计并实现一个健身房管理信息系统,便于提高管理效率、提升用户体验、辅助经营决策。

2023-03-16 17:02:46 631

原创 健身房管理系统

本系统是基于B/S架构,使用Java编程语言,后台数据库采用MySQL数据库。系统角色有:管理人员,会员,教练。主要功能包括:(1)工作人员管理工作人员信息管理,登录管理。(2)健身会员管理会员信息管理:会员登录/注册对基本信息增删查改。会员生日提醒,到期提醒。会员卡管理:充值、续卡、禁用、取消禁用、转卡型、退卡。(3)健身私教管理购买私教课:会员可查询浏览课程信息按课时购买私教课,同时支持设定上课教练的绑定。预约上课:教练通过系统预约会员或会员登录过系统预约教练。

2023-03-16 16:52:19 840

原创 个人家庭理财系统

个人家庭理财系统设计并实现一个基于B/S架构的个人家庭理财系统,主要有管理员和普通用户两个角色。主要功能有:用户注册登录和权限管理收支信息管理:记录日常收入及消费情况。支出:类别(饮食,交通,娱乐,购物,医疗,家居,生活,学习),类型(收入,支出),金额,名称,时间,备注收入:上同(薪水,奖金,投资,还款,彩票,福利)统计分析管理:包括日常收支统计及家庭资产统计。按休闲娱乐,生活日用,交通出行,服饰美容,文体教育,其他分类。收支统计:可按月,按年查看。表格下面用扇形统计图表示。

2023-03-16 16:47:40 987

原创 汽车客运中心售票系统

汽车客运中心售票系统**

2023-03-16 16:40:30 1202 1

原创 启动阿里低代码平台报错 error in ./node_modules/@alifd/next/es/grid/main.scss

第一次使用阿里巴巴的低代码平台,在简单绘制了几个组件后,准备导出来在本地运行起来,按照readme先安装了npm相关的包,但在启动后一直有这个报错,看了github上一些解决方式,都是让修改@alifd/next的版本,或者npm的版本,修改alifd版本后再重新启动也不管用。看了错误提示是在main.scss这个文件里有一行代码错误了。所以直接找到这个文件对应的这行,然后把这行删掉。保存以后再次启动,发现了可以了。

2023-03-16 16:18:52 304

原创 for循环的鄙视链大可不必

今天刚好看到一篇文章,联系起了最近一直在思考的问题,新的技术就一定好吗,曾经我也是极其热衷于流式编程,只要是能看到的for循环,都想更换成stream方式来操作,直到后来开始维护别人写的代码时,逐渐发现简洁不一定就是好,自己开发时是非常了解业务逻辑的,所以写起来行云流水,自我感觉优雅的不行,但交到别人手里之后,他要看的是整个系统上万行代码,在不清楚需求背景的情况下,面对这种高度简洁的流式爆炸代码块,可读性,可维护性真的为0,功在当代,利却不在千秋。...

2022-07-27 22:04:41 225 2

原创 高并发业务的化解之道

在高并发业务中大量的流量冲击,经常会造成服务不可用,这些流量可能是异常的爬虫或者攻击,也有可能就是正常的大促活动,业务系统大多是独立的模块,某个链路节点的不可用不会造成整条链路阻塞,但在首页还真的有这样的问题,首页业务聚合了所有下游服务,一旦被流量冲垮就会造成所有用户不可访问,这样的影响是不可接受的,所以面对首页业务的大流量,其实也是解决高并发的三板斧缓存,降级,限流。...

2022-07-24 21:42:50 419

原创 重写线程池ThreadFactory接口实现对线程异常的捕获

在开发过程中经常会用到线程池,但创建线程池的方法都比较简单,使用Executors来创建相应功能的线程池,常用的方法有这些。1、 Executors.newFixedThreadPool(int nThreads);创建固定大小(nThreads,大小不能超过int的最大值)的线程池2、Executors.newSingleThreadExecutor():创建大小为1的固定线程池。3、Executors.newCachedThreadPool();创建corePoolSize为0,最大线程数为整型的

2021-07-16 13:41:41 599

原创 Java默认接口方法引发的多继承问题

Java8中的抽象类和抽象接口区别首先,一个类只能继承一个抽象类,但是一个类可以实现多个接口其次,一个抽象类可以通过实例变量(字段)保存一个通用状态,而接ロ是不能有实例变量的熟悉Java或者看过Java面试题的都知道,Java不支持多继承,原因是:安全性的考虑,如果子类继承的多个父类里面有相同的方法或者属性,子类将不知道具体要继承哪个。Java提供了接口和内部类以达到实现多继承功能,弥补单继承的缺陷。所以在实际开发中可以通过多个接口来灵活实现,但Java8中支持接口编写默认方法,变相等于可以

2021-06-28 20:48:04 306

原创 SpringCloudGateway手动编写路由规则对请求进行转发

这篇文章主要是提供一种转发路由的代码实现方式,之前说的gateway都是使用配置文件来对请求进行路由,这样虽然很简单,但是不够灵活,如果后端对应很多服务实例,网关想要根据自己的规则来转发请求,比如编写不同的负载均衡策略,做一些特别的权重,以及在运行过程中动态的变更转发地址,这些用配置文件来做都不够灵活,没法自由的定义规则。涉及的gateway版本 <dependency> <groupId>org.springframework.cloud<

2021-06-25 19:06:51 1951 1

原创 服务频繁发生YoungGC的处理过程(合理压测)

问题描述最近一直在做项目的GC优化,因为服务在运行过程中频繁发生GC问题,虽然不是FullGC,但Young频繁GC也会影响线上服务的性能,优化的方向有两个,1.修改JVM参数 ,2.优化代码逻辑。查看当前线上JVM配置调整年轻代的大小可以缓解因内存分配太小而发生频繁GC的问题。本次优化的重点在于代码逻辑的实现,主要原因是:在目前架构内,系统并不能通过改变eden区大小得到有效解决,年轻代内存区域调大,GC频率改善,但时长会变长。反之,作用也是相反。频繁的GC和pause清理耗时又引起jvm内

2021-06-22 16:33:47 2867

原创 无状态节点服务的缓存数据同步实现

在目前需求背景下要设计一套底层服务系统,提供一系列基本数据请求接口,这里把该系统服务称为P,为保证高可用高可靠性,P系统最少依赖外部中间件,例如数据库消息队列等组件,服务所涉及的数据全部缓存到本地缓存中,然后由其他服务来请求接口或数据库收集数据,将收集的数据存入Redis中,再去通知P系统更新本地缓存的数据,收集数据的服务称为D。以下为P,D,Redis关系图。需要注意的是,P并不会强依赖与Redis与D系统,因其本地缓存有一份全量的数据,只是对数据的实时性不能保证,要靠D系统来定时发送更新通知,本

2021-06-10 19:48:22 244

原创 MySQL与Redis中对LRU算法的使用

MySQL与Redis中对LRU算法的使用LRU也称为最近最少未使用算法,作为最常用的内存淘汰算法,在主流的系统中都可以见到相应的使用场景,而在MySQL与Redis中也有使用,可以说都是用来对存储空间进行管理,及时淘汰更新数据,提高存储空间利用率。Redis内存淘汰机制在redis.conf中有一行参数用来配置内存淘汰策略的maxmemory-policy volatile-LRUvolatile-LRU:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的

2021-04-15 14:47:50 274

原创 mysql自动合并索引(index merge)查询导致死锁问题

mysql自动合并索引(index merge)查询导致死锁问题虽然在生产环境上加了分布式锁,但还是会出现某一个事务未结束,而下一个事务进入来修改数据,这时就会陷入等待,最后等待超时,事务进行了回滚,在运行几个月后第一次出现这种情况,发生死锁的是两条update语句,当sql语句的where语句中使用两个索引时,mysql的优化器可能会对这两个索引进行合并,使用explain分析会显示Using intersect(index1,index2); 表示将index1和index2合并来查询。该表中只有in

2021-03-17 16:30:41 572

原创 缓存数据一致性如何保证

缓存数据一致性如何保证最近在思考的一个问题,如何保证缓存和数据库数据的一致性,防止出现类似于余额这种数据,在缓存里是1,而数据库修改为0后,用户再次发起扣费操作时,由于每次先会去判断缓存内余额的数据,缓存数据不一致,导致本应失效的一次请求被判断通过。这种情况在并发低的时候不太容易产生,当并发增大极有可能发生。我在项目中主要靠两种方式来保证数据一致性:数据必须设置随机过期时间缓存数据最重要的目的是提高数据查询速度,在第一次查库之后将数据放入缓存,之后直接从缓存里拿数据即可,所以缓存数据的持久化并不

2021-03-17 09:02:04 465

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