具有 ElasticSearch Reactive Streams 的 Spring 引导应用程序的体系结构



我是Spring Boot的新手。 我不确定如何使用所有这些功能构建我的应用程序:

0) 外部 JSON restful API 1) Rest API

2) Reactive Streams
3) ElasticSearch
4) 微服务
5) MongoDB
6) Angular 前端

我连接到此资源以检索 JSON。由于它是外部的,我需要检索它,将其存储在我的 Mongo DB 数据库中,并不时检查外部资源 JSON 是否有更新并检索更新的字段。 然后,我需要将此JSON传递给ElasticSearch服务器,该服务器将根据所做的一些查询返回响应。 我希望能够为此使用反应式流和微服务,其中包括 oAuth2、一个 restful API、一个令牌 API 服务、一个创建响应的服务,最后在前端有一个带有搜索栏的 Angular 或 React 页面来查询 elasticSearch 服务器中的 JSON 数据...... 关于如何构建此结构的任何意见或方向将不胜感激......


您必须创建 @RestController bean 类和@Service bean 类才能接收来自 Angular 前端的请求;

收到请求后,使用服务(使用 @Autowired 将其注入到某个位置)对外部源进行 http 调用以获取 JSON:这是一个服务到服务的调用,因此您的后端服务是请求的客户端。

当您获得 JSON 时,处理它并使用另一个 @Repository 服务保存到 MongoDB 中。您必须使用配置文件配置 mongo 存储库。 在这里,您可以选择是将对象关系映射与 mongo 一起使用,还是直接使用没有更多内置层的 Java Mongo 驱动程序。

在将JSON保存到MongoDB之前,您可以检查数据是否已更改,并在此基础上调用ElasticSearch Web服务器,就像您为上一次调用获取JSON所做的那样。

如果 OAuth2 位于外部服务器上,则当您必须调用它们时,必须添加有效的令牌。TOKEN 可能来自 Angular 前端的第一个请求,因为微服务必须是无状态的。 在请求的标头中传递令牌。

要第一次获得令牌,Angular 前端必须实现 Oath2 客户端,并且必须有一个 Oauth2 服务器(也许是外部服务?)。

调查是否必须实现 Oauth2 客户端或服务器的后端,因为它取决于所选的 Oauth2 流:它们有许多变体。

我希望它有所帮助!

最新更新