【问题标题】:Are SOA based apps/websites fast, how to improve performance and speed基于 SOA 的应用程序/网站是否快速,如何提高性能和速度
【发布时间】:2015-11-28 08:18:39
【问题描述】:

目前我有一个基于 Java 的网站,它使用 JDBC 与 DB 进行原生集成。但现在我开发了一个 android 应用程序和一个 iOS 应用程序,它们在本机应用程序中提供相同的网站功能。 android 和 iOS 应用程序目前都与网站项目连接以访问 API

我现在想的是用 Java 创建一个单独的项目,它只为网站、android 应用程序和 iOS 应用程序提供 API 接口,并且将来如果有任何东西需要与相同的业务逻辑或 DB 集成。

但在继续之前,我想了解这种方法是否正确。在我看来,这会影响网站的速度和性能,因为它需要使用 JSON 数据访问服务中的数据,这需要将对象转换为 JSON 并再次解析它们以呈现视图。

问题:

  1. 这种方法正确吗?要创建一个类似于 SOA 的架构,其中服务项目将只提供 API?
  2. 会影响性能和速度
  3. 如果是,如何解决这个问题?
  4. 是否有任何其他选项可供探索以创建这样的架构,其中多个应用程序访问相同的业务逻辑或数据

【问题讨论】:

    标签: java android performance web-applications soa


    【解决方案1】:
    1. 你的想法是正确的。通过实现向所有消费应用程序公开 API 的联合服务层,您将实现关注点分离,您将解耦 UI 和数据模型,并且能够在不破坏任何使用公共层的应用程序的情况下实现核心逻辑更改。您还可以轻松地将更多消耗量的应用添加到场景中。

    2. 是的,服务层中的任何数据处理都会自然地影响速度和性能。

    3. 解决性能问题的方法有很多,具体取决于具体问题和您的预算。想到的一些解决方案是:

      • 在多台服务器上扩展层 + 负载平衡
      • 尽可能避免数据转换(例如采用通用数据模型)
    4. 人们会想到微服务作为通用集中式服务层的替代方案。它有其自身的好处和复杂性。您可以查看this Martin Fowler article

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-12
      • 2018-03-20
      • 2010-12-01
      相关资源
      最近更新 更多