java - 与服务接口(interface)

标签 java spring algorithm oop

我不知道 Stack Overflow 上是否已经存在这个问题。

Stack Overflow 是这样的情况:

  1. 我正在编写一个后端应用程序(用 Java)

  2. 我有一个 rest API(建议在数据库中搜索一些项目)

  3. 搜索 API 调用多种不同的服务以达到最终结果。

现在,因为这个 API 去到各种服务,那些服务接口(interface)已经被定义,那些暴露的方法,接受哪些参数等等。所以现在这需要很多时间来完成这个任务(整个搜索任务, 去真正的服务)。

我的困惑是,如果我在这里更改一些服务调用,或更改设计/数据(哪个服务持有哪些数据),那么我可能会更快地获得结果。在这种情况下,我的搜索算法会变得更好,但设计不会像现在这样非常好和干净

所以我们是先做设计部分还是先考虑我们要实现的算法复杂度?在高负载应用中哪个更重要。为了更快地获得结果而与应用程序设计部分妥协是否好?

这些类型的场景的最佳做法是什么?

最佳答案

简短的回答是 - 如果您的搜索操作对您的系统来说过于重要,您可以在考虑搜索 API 的效率的同时插入服务的设计决策。但是,如果除了搜索 API 之外还有其他操作,并且新设计会影响这些操作的性能,那么您需要在重新设计之前考虑。

您应该坚持一些约束来定义微服务边界。请阅读Microservice boundaries: five characteristics to guide your design .

此外,您在设计服务时,不仅要着眼于操作简单,而且要确保在其中一项服务出现故障时,整个系统应该能够提供服务,并且可以独立更改、扩展和部署。请查看Vertical Slicing on Microservices

关于java - 与服务接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52129726/

相关文章:

java - Spring 启动测试: Is it a good idea to have Application class per module?

Spring portlet mvc 提交编辑表单期间验证失败

algorithm - 改变硬币

java - 使用 java.sql.Statement 执行多行 sybase 语句

java - 检查对 Java servlet 的 HTTP POST 请求的内容类型

java - 打开联系意向DISPLAY_NAME

algorithm - 解释多元大 O 符号

java.net.URLDecoder 依赖源文件编码?

java spring rest参数不起作用

algorithm - 哥伦布序列