1 / 26

营销平台通道设计

营销平台通道设计. 开发一部 2009 年 11 月. 目录. 营销平台整体结构 通道模块划分 通道部署 整体 MQ 通道基础框架设计 Intercepting Filter JMS 消息处理 发送器设计 通道优先级设计 MQ 方案设计 疲劳度控制 概念模型 基础框架 接收人员邮件接收数量时间段内疲劳度控制 电子邮件发送 text/html 邮件发送 Tracelog 通道接口 模式 黑名单控制. 营销平台整体结构. 营销平台由两部分组成: 营销模块 通道模块. 通道模块划分. 通道模块划分和规划. 通道部署 - 整体.

breck
Download Presentation

营销平台通道设计

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 营销平台通道设计 开发一部 2009年11月

  2. 目录 营销平台整体结构 通道模块划分 通道部署 整体 MQ 通道基础框架设计 Intercepting Filter JMS消息处理 发送器设计 通道优先级设计 MQ方案设计 疲劳度控制 概念模型 基础框架 接收人员邮件接收数量时间段内疲劳度控制 电子邮件发送 text/html邮件发送 Tracelog 通道接口 模式 黑名单控制

  3. 营销平台整体结构 营销平台由两部分组成: • 营销模块 • 通道模块

  4. 通道模块划分

  5. 通道模块划分和规划

  6. 通道部署-整体 NODE1 NODE2 NODE3 QUEUE1 QUEUE2 … NODE4 … 数据库

  7. 通道部署 MQ的部署 在一个Virtual IP下挂2台JBOSS MQ,JBOSS MQ使用数据保存MQ 消息。 • 2台MQ,一主一副,由F5做负载均衡,当MQ1活动时将消息发送给MQ1,只有当MQ1出现当机的情况,MQ2才会工作。 • MQ会把MQ消息保存到数据库中,当MQ2工作的时候不会导致消息的丢失。

  8. 通道部署 MQ的资源使用 国际站高优先级任务 国际站普通级任务 CRM普通级任务 CRM高优先级任务 QUEUE/HIGH1 QUEUE/MIDDLE QUEUE/HIGH2

  9. 通道基础框架设计 新建任务接口调用 发送邮件接口调用 接口调用权限验证 接口调用权限验证 参数验证 参数验证 发送上下限控制 疲劳度控制 …… …… 新建任务接口执行 发送邮件 Intercepting Filter

  10. 通道基础框架设计 Intercepting Filter Intercepting Filter模式通常用在某些消息需要进行相关的处理,但目标处理应该包装到任意的一组前置、后置处理流程中,例如消息的转换、转义等等。

  11. 通道基础框架设计 Intercepting Filter • InterceptorManager 类是Intercepting Filter模式的边界,客户程序在特定的上下文(由Context接口定义)通过InterceptorManager 处理目标操作(由Executor接口定 义)。另外,InterceptorManager 负责InterceptorChain的创建、初始化和执行。 • InterceptorChain维护一组interceptor和Executor。 • Interceptor接口只有一个方法,先做前置处理,如果处理没有问题就让InterceptorChain去处理接下来的Interceptor。如果中途发生了错误 Interceptor返回或抛出异常。执行完一系列Filter以后就执行executor的处理,然后以同样的方式返回,executor可以做一些后置处理。 • Executor接口实现类是消息的接受者或者包装者。 • Context应该是相当抽象的,它可以使不同的类或者是一组类,或是Map。

  12. 通道基础框架设计 JMS消息处理

  13. 通道基础框架设计 JMS消息处理 • 每个消息除了包含原有的业务信息外,还要包含消息的类型,用于消息处理器灵活动态处理消息。 • DefaultJmsProducer缺省的Jms消息发送, 不关心具体的消息格式。 • DefaultJmsListener系统jms消息的监听者。当收到消息的时候依据消息的类型调用相应的MessageCommand进行处理。 • MessageCommand抽象的命令接口。 • SendFaxMessageCommand,SendEmailMessageCommand 具体的邮件发送命令。

  14. 通道基础框架设计 发送器设计

  15. 任务优先级

  16. 疲劳度控制 疲劳度概念模型

  17. 疲劳度控制 基础框架-疲劳度设计类图

  18. 疲劳度控制 基础框架-疲劳度控制案例解释 近7天不超过3封邮件 而且近3天不超过2封 。 For each a in chilren { a.compare(); ……. } JoinFatigureStrategy LastCount(Email,7)<3 LastCount(Email,3)<2

  19. 疲劳度控制 基础框架-疲劳度控制案例解释 (近7天不超过3封邮件 而且近3天不超过2封 )或者(今天一封都没有发过)。 UnionFatigureStrategy JoinFatigureStrategy LastCount(Email,1)<1 LastCount(Email,7)<3 LastCount(Email,3)<2

  20. 疲劳度控制 接收人员邮件接收数量时间段内疲劳度控制 将各种疲劳度数据组成Key-Value这种信息,例如为了【接收人员邮件接收数量时间段内疲劳度控制】,以接收方放的Email地址为Key,Value为各种疲劳度数值(最近31天内每天的发送数量,历史各个月发送数量汇总)。 key=>weijun.huwj@alibaba-inc.com value=> { 'email':{'2009-10-12':1, '2009-10-11':3 '2009-09':20} }

  21. 疲劳度控制 接收人员邮件接收数量时间段内疲劳度控制

  22. 邮件发送 text/html邮件发送 MimeMultipart content = new MimeMultipart("alternative"); MimeBodyPart text = new MimeBodyPart(); MimeBodyPart html = new MimeBodyPart(); text.setText(plain_text); html.setContent(html_text, "text/html"); content.addBodyPart(text); content.addBodyPart(html); 目前的mail发送包支持该扩展.

  23. 邮件发送 通道接口蓝图 Web Service ESB 通道服务 基础业务 基础业务 基础业务 …

  24. 传真接收 Web Service ESB … 传真接收 订单处理 基础业务2 基础业务3 …

  25. 黑名单过滤 过滤黑名单 名单已载入缓存? 从DB载入 黑名单 缓存过滤 返回过滤结果

  26. THE END 谢谢!

More Related