设计一个敏感词过滤模块或系统

jerry1985 2012-03-28
在一家B2B的公司面试时遇到一个这样的问题,可是我觉得这个跟系统架构设计关系不大,而跟算法的优劣有关。可能是我的功力太浅薄吧。希望群里的大师们能谈谈自己的看法和思路。

个人的想法是提供一个敏感词过滤服务,服务采用同步(请求响应)的方式接收待过滤的文字,服务内部使用多线程搭配高性能的算法对请求的内容进行处理,并返回处理后的文字。(是不是有点太简单了? )
weiqiang.yang 2012-04-01
做异步吧,搞个队列抄送数据,让他们准备回调接口~
搞成同步应用都要依赖你的服务,万一挂了那不是悲剧了
jerry1985 2012-04-02
weiqiang.yang 写道
做异步吧,搞个队列抄送数据,让他们准备回调接口~
搞成同步应用都要依赖你的服务,万一挂了那不是悲剧了


言之有理,多谢指点.
凤舞凰扬 2012-05-22
weiqiang.yang 写道
做异步吧,搞个队列抄送数据,让他们准备回调接口~
搞成同步应用都要依赖你的服务,万一挂了那不是悲剧了

   楼上考虑得很好,我们在做一个服务的时候,需要考虑这个服务是否会对主业务造成影响。其实淘宝也是这么处理的。对于非业务的行为,都会采取异步,从而避免因为系统原因成为业务瓶颈。
   当然,从内部实现来说,多线程并行调度来进行词过滤是可以的技术方案
jerry1985 2012-05-23
凤舞凰扬 写道
weiqiang.yang 写道
做异步吧,搞个队列抄送数据,让他们准备回调接口~
搞成同步应用都要依赖你的服务,万一挂了那不是悲剧了

   楼上考虑得很好,我们在做一个服务的时候,需要考虑这个服务是否会对主业务造成影响。其实淘宝也是这么处理的。对于非业务的行为,都会采取异步,从而避免因为系统原因成为业务瓶颈。
   当然,从内部实现来说,多线程并行调度来进行词过滤是可以的技术方案


多谢指点。
javamonkey 2012-05-23
jerry1985 写道
凤舞凰扬 写道
weiqiang.yang 写道
做异步吧,搞个队列抄送数据,让他们准备回调接口~
搞成同步应用都要依赖你的服务,万一挂了那不是悲剧了

   楼上考虑得很好,我们在做一个服务的时候,需要考虑这个服务是否会对主业务造成影响。其实淘宝也是这么处理的。对于非业务的行为,都会采取异步,从而避免因为系统原因成为业务瓶颈。
   当然,从内部实现来说,多线程并行调度来进行词过滤是可以的技术方案


多谢指点。


使用线程达到异步效果,造成的问题是如果主业务处理的比较快,那么,非主业务就会挤压很多,那你如何管理这些挤压?譬如,任何时间重启服务器。

敏感词过滤,我觉得要么同步,要么还是事后采用批量过滤的方式
凤舞凰扬 2012-10-17
javamonkey 写道
jerry1985 写道
凤舞凰扬 写道
weiqiang.yang 写道
做异步吧,搞个队列抄送数据,让他们准备回调接口~
搞成同步应用都要依赖你的服务,万一挂了那不是悲剧了

   楼上考虑得很好,我们在做一个服务的时候,需要考虑这个服务是否会对主业务造成影响。其实淘宝也是这么处理的。对于非业务的行为,都会采取异步,从而避免因为系统原因成为业务瓶颈。
   当然,从内部实现来说,多线程并行调度来进行词过滤是可以的技术方案


多谢指点。


使用线程达到异步效果,造成的问题是如果主业务处理的比较快,那么,非主业务就会挤压很多,那你如何管理这些挤压?譬如,任何时间重启服务器。

敏感词过滤,我觉得要么同步,要么还是事后采用批量过滤的方式

不是太清楚你的问题,如果只是任何时间重启服务器,完全可以发结束指令,等待线程结束(类似于阀门模式)。
Global site tag (gtag.js) - Google Analytics