【问题标题】:Header and footer as a service in Dropwizard?在 Dropwizard 中作为服务的页眉和页脚?
【发布时间】:2016-01-16 05:06:30
【问题描述】:

我有一个假设的 Web 应用程序,它被拆分成一个微服务架构,例如(例如):

客户端 A-C 是提供 HTML 的 Web 应用程序。服务 1-3 是处理 CRUD 和服务 JSON 的后端。还有其他客户端(未显示)不访问前端服务 - 即原生客户端,如 Android 和 iOS。我正在尝试找出在所有 Web 客户端中提供通用前端内容(例如页眉/页脚/css)的最佳方式。我能想到的最好的方法是创建一个前端服务,每个 Web 客户端都可以访问它来获取这些公共信息。这样一来,公共前端的更改将立即反映在每个应用程序中,而无需更新版本、重新编译或重新部署。

我的问题是这样做的最佳方式是什么?我正在使用 Dropwizard 为 Web 客户端和服务提供服务。 Web 客户端通过 Jetty 提供 Dropwizard 视图(带有 freemarker 模板)。有没有办法组合 Dropwizard 视图,以便我可以从前端服务请求页眉和页脚视图并将它们包装在从客户端返回的每个视图周围?还是我完全错了?我知道 Freemarker 支持模板继承,但据我所知,这意味着页眉/页脚必须存在于每个客户端中,或者从公共 JAR 中提取(这需要更新版本号并重新编译)。

【问题讨论】:

    标签: web-services architecture freemarker dropwizard microservices


    【解决方案1】:

    您也可以使用Hazelcast 作为分布式映射/缓存。它真的很容易使用(见代码示例),但是如果你想要一些企业功能,你必须付出很多。

    【讨论】:

      【解决方案2】:

      如果您想在所有微服务之间同步内容,在您的情况下是页眉和页脚,我建议 Zookeeper,它专为分布式编排而设计,并且具有更多的推送模型 - 即您将更新Zookeeper 中的标头,您的所有服务几乎都会立即收到该更新。

      我建议使用 Curator 库,因为它比直接使用 Zookeeper 更容易使用,cache example 可能是一个有用的起点。

      【讨论】:

        猜你喜欢
        • 2012-02-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-30
        • 2011-08-17
        • 2017-03-20
        相关资源
        最近更新 更多