Rails开发:消息系统、代码组织与插件编写全解析
1. 消息系统(Messaging System)
消息系统,如企业服务总线(ESB),能让系统的各个独立部分异步运行。当网站前端或服务层发生事件时,可能需要执行一些不影响当前用户请求结果展示的操作。
比如,用户在网站上下单,在用户在线时,系统需要将交易记录存储到数据库并处理信用卡验证。此外,还可能需要执行其他操作,如发送确认邮件或在配送中心系统中排队订单。这些额外操作耗时较长,为避免让用户等待每个系统处理完成,应用程序可以向ESB发送一条消息:“用户X以$Z的价格购买了Y”。任何需要此信息的外部进程都可以监听该消息,并在看到感兴趣的消息时相应地操作。
使用这样的消息系统,允许多个订阅者监听任何给定消息,能在不更新主应用程序的情况下为数据添加额外的处理层。这减少了添加新功能时需要重新测试的系统数量,也减少了负责用户流程的应用程序需要关注的问题数量。该应用程序可以专注于其特定功能——用户流程,而应用程序的其他部分可以异步接管并管理其他任务。
2. 网络服务器(Web Server)
在Rails应用程序中,网络服务器的角色相对简单,其目的只是接受客户端的连接,并将其传递给应用程序。需要注意的是,访问网站的用户并不是与网络服务器交互的唯一客户端。当将应用程序拆分为具有独立前端的独立服务时,每个部分都是一个完整的Rails应用程序栈,包括网络服务器。
3. 防火墙(Firewall)
防火墙是信任的屏障。它不仅能防止恶意黑客攻击,还应成为大型系统设计的重要组成部分。在防火墙内,可以假设访问来自受信任的源,从而简化应用程序逻辑。除了最敏感的应用程序(
超级会员免费看
订阅专栏 解锁全文
7

被折叠的 条评论
为什么被折叠?



