标签: multi-instance-deployment

Saas:单实例、多实例、单租户、多租户?

我一直在阅读有关实例和租户以及 Saas 架构的内容。我的问题如下(如果您发现我对以下任何术语有错误,请更正):

1)实例:一个软件的实例是否只是该软件的一个副本,有自己的数据库?还有比这更重要的事情吗?

2)租户:租户是对单个实例共享一组通用访问权限的用户/用户组吗?

3)单实例:如果 Saas 提供商提供单实例服务,这是否意味着他们只创建其软件的单个实例?或者这是否意味着可以有多个实例,但每个实例可以为多个租户提供服务?如果是这样,单实例与多租户相同吗?

4)多实例:这是否意味着每个实例只能服务一个租户,或者是否可以有多个实例,每个实例服务多个租户?IE。多实例服务可以是单租户或多租户吗?

5)单租户:这是否仅仅意味着单个实例只能为一个租户提供服务,还是也意味着存在多个实例?IE。单租户服务可以同时是单实例和多实例吗?

6)多租户:这是否仅仅意味着单个实例可以为多个租户提供服务,还是意味着只有一个实例?IE。多租户服务可以同时是单实例和多实例吗?

7)总结一下:可以单实例+单租户、单实例+多租户、多实例+单租户、多实例+多租户吗?

saas single-instance multi-tenant multi-instance-deployment server

6
推荐指数
1
解决办法
3340
查看次数

模式以避免多实例应用程序中的单例中的消息计数器

我想知道哪个模式建议使用计数器来表示处理的消息数,应用程序应该是无状态的.

例如,在应用程序部署在多个服务器上的体系结构中,数据库用于存储持久性信息(会话等).但是,此类信息不会像消息计数器那样暴露于并发更新.在单实例应用程序中,我们可以使用单例,但这不是这种情况.

你有什么建议来实施这样的计数器?使用计数器设计不好吗?

java architecture multi-instance-deployment

5
推荐指数
1
解决办法
150
查看次数

如何使用 CDN 和负载均衡器进行文件版本控制?

所以我使用一个非常简单的 CDN 服务。您指向您的网站,如果您通过其主机名调用它,他们会在第一次调用后为您缓存它。

我将其用于所有静态内容,例如 JavaScript 文件和图像。

这一切都很完美——而且我喜欢它的维护或设置成本非常低。

当推出新版本的 JavaScript 文件时,问题就出现了。如果文件发生更改,新的 JavaScript 文件会自动获取新的哈希值。

由于在多个实例上的转出并不是同时进行的,因此会出现问题。我尝试在此图中对其进行建模:

图表

用言语来说:

  • 请求以新版本命中服务器
  • 请求带有新版本哈希的 Js 文件
  • CDN正确检测到文件未缓存
  • CDN 从负载均衡器请求带有新哈希的原始文件
  • 负载均衡器将 CDN 请求提供给随机服务器 - 意外地从旧版本的服务器提供服务
  • CDN 使用新哈希缓存旧版本
  • 每个人都可以从 CDN 获取旧版本

我知道如何解决这个问题 - 即手动将文件上传到单独的存储并烘焙哈希值等。但这需要额外的代码并且有更多的“移动部件”,使维护更加复杂。

我更希望拥有像正常 CDN 行为一样无缝运行的东西。我想这是在多个实例上运行的网站的常见问题,但我找不到很多有关此问题的信息。

解决这个问题的常用方法是什么?

编辑

我认为另一个解决方案是以某种方式强制 CDN 转到 .js 文件与原始 html 文件相同的实例 - 但如何实现呢?

hash load-balancing cdn multi-instance-deployment azure-load-balancer

5
推荐指数
1
解决办法
347
查看次数

在同一图上绑定两个实例 Janusgraph 时出错

所以我正在尝试部署 Janusgraph (v 0.3.1) 的 2 个实例以在 ScyllaDb 后端的相同键空间中插入数据。为此,我使用 docker 部署了 2 个 janusgraph 容器。第一个开始时没有错误并在我的 ScyllaDb 中创建键空间,但第二个显示一些错误。

所以我的 Janusgraph 容器在一个集群上工作,而我的后端在另一个集群上工作。实际上,当我的密钥空间 Scylla 已经创建并且我遇到了同样的问题时,我尝试只使用一个容器来重新启动它。我还发现了一个脚本 clean.groovy 允许强制关闭打开的图形实例。但没有任何作用...

5316 [main] INFO  org.janusgraph.diskstorage.Backend  - Initiated backend operations thread pool of size 8
5648 [main] WARN  org.apache.tinkerpop.gremlin.server.GremlinServer  - Graph [graph] configured at [/janusgraph-config/janusgraph.properties] could not be instantiated and will not be available in Gremlin Server.  GraphFactory message: GraphFactory could not instantiate this Graph implementation [class org.janusgraph.core.JanusGraphFactory]
java.lang.RuntimeException: GraphFactory could not instantiate this Graph implementation [class org.janusgraph.core.JanusGraphFactory] …
Run Code Online (Sandbox Code Playgroud)

gremlin docker multi-instance-deployment janusgraph

4
推荐指数
1
解决办法
1038
查看次数