houbb / sensitive-word

👮‍♂️The sensitive word tool for java.(敏感词/违禁词/违法词/脏词。基于 DFA 算法实现的高性能 java 敏感词过滤工具框架。请勿发布涉及政治、广告、营销、翻墙、违反国家法律法规等内容。高性能敏感词检测过滤组件,附带繁体简体互换,支持全角半角互换,汉字转拼音,模糊搜索等功能。)
https://houbb.github.io/opensource/sensitive-word
Apache License 2.0
4.36k stars 589 forks source link

[功能建议] SensitiveWordBs无法序列化 #63

Closed ws-liusw closed 4 months ago

ws-liusw commented 4 months ago

不同的过滤器需要绑定在不同的内容通道中,本来打算通过redis实现,后来发现咱们 SensitiveWordBs无法序列化,有其他方案可以支持序列化吗

houbb commented 4 months ago

具体场景是什么?

为什么要存储整体的实现类呢? 如果只存储引导类的名字,比如唯一 beanName 可行不。

发自我的iPhone

------------------ 原始邮件 ------------------ 发件人: ws-liusw @.> 发送时间: 2024年6月13日 17:11 收件人: houbb/sensitive-word @.> 抄送: Subscribed @.***> 主题: Re: [houbb/sensitive-word] [功能建议] SensitiveWordBs无法序列化 (Issue #63)

不同的过滤器需要绑定在不同的内容通道中,本来打算通过redis实现,后来发现咱们 SensitiveWordBs无法序列化,有其他方案可以支持序列化吗

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you are subscribed to this thread.Message ID: @.***>

ws-liusw commented 4 months ago

微服务场景,在管理后台服务中根据用户配置,会存在多个不同的过滤器,过滤器又可以绑定在多个内容通道中,在service服务中,根据用户的所使用的内容通道,再获取敏感词过滤器(SensitiveWordBs),对输入输出内容进行过滤

ws-liusw commented 4 months ago

由于service服务对响应延时的要求很高,无法在过滤时再对SensitiveWordBs进行init,本打算是在管理后台服务中,创建过滤器后就存入redis,在service服务直接获取使用

houbb commented 4 months ago

可以直接放在服务端本地初始化,而不是带过去。

发自我的iPhone

------------------ 原始邮件 ------------------ 发件人: ws-liusw @.> 发送时间: 2024年6月14日 09:35 收件人: houbb/sensitive-word @.> 抄送: 老马啸西风 @.>, Comment @.> 主题: Re: [houbb/sensitive-word] [功能建议] SensitiveWordBs无法序列化 (Issue #63)

由于service服务对响应延时的要求很高,无法在过滤时再对SensitiveWordBs进行init,本打算是在管理后台服务中,创建过滤器后就存入redis,在service服务直接获取使用

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

ws-liusw commented 4 months ago

是的,目前已经策略,管理后台事件触发广播,服务端各个节点收到广播后,初始化SensitiveWordBs存放在内存中

ws-liusw commented 4 months ago

后续需要观察,多个SensitiveWordBs对服务端内存的消耗情况,比较担心会出现内存溢出

houbb commented 4 months ago

可以实现一个专门的敏感词服务 内存适当即可。占用还行,做好资源的管理。