首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SaaS代理模式

SaaS代理模式
EN

Stack Overflow用户
提问于 2012-02-13 00:04:21
回答 1查看 545关注 0票数 2

今天早上,我正在为一个自己喜欢的项目设置一个新工具,我意识到每个SaaS工具都遵循一个特定的模式:发送者代理。

例如,我有我的webapp,但它不能与数据库层通信(当然,也不应该),所以有一个代理在我的封闭网络中运行,它发布到webapp。

但是有没有更好的方式让我错过

编辑:让我用一个例子更好地定义我的术语。ServerDensity是我们使用的监控工具。对于我想要监控的每个专用设备,我都会编写一个发送器代理(即通过HTTP将更新发布到SD的插件脚本),因为SD不能直接与我的数据库通信。

我意识到这个问题可以简化为RPC问题。

EN

回答 1

Stack Overflow用户

发布于 2012-02-13 09:12:59

让我首先解决您提出的前提:“……每个SaaS工具都遵循一个特定的模式:发送方代理”。我希望您能向我推荐这份声明的来源。在我使用SaaS的经验中,我从未听说过这样的模式。

老实说,“发送者代理”听起来和“业务组件”或“服务器内核”一样宽泛和模糊。

我有我的nor应用程序,但它不能与数据库层对话(当然,它也不应该)

你在这里不是在比较苹果和苹果。Webapp是一个,数据库是一个层。Webapp层必须与数据库层通信。Webapp可能有不同的,webapp中的持久层将与数据库层通信。

...所以有一个在我的封闭网络中运行的代理,它发布到webapp。

这让它听起来就像webapp是一座没有生命的雕像,而代理人就是一个在它周围跑来跑去并向它扔泥块的雕塑家。Webapp正在接收来自客户端的请求,查询持久层(可能是缓存)并发回响应。无论您可能拥有什么代理,都会将数据发布到持久化或队列存储,而不是webapp本身。

阅读关于层与层的比较,它将帮助你更好地理解webapps和SaaS模型:What's the difference between "Layers" and "Tiers"?

更新

谢谢你的澄清,它极大地改变了问题。你所做的听起来很合理。您在特定系统的约束下工作,并且您必须满足插件合同。如果契约规定必须是HTTP POST,那么这就是您必须要做的。

关于如何做到这一点,有几十种方法。这只是几个例子:

  • 当事件发生时,代理将事件推送到服务器
  • 如果代理可能对服务器施加太多压力,则代理将事件推送到队列。然后,队列将由读取数据库并将事件推送到服务器的专用和节流进程来排空。
  • 计划的进程(守护进程)以一定的时间间隔读取数据库并将更新推送到服务器
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9250248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档