加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 具有外部数据库和RESTful web gui和服务的系统的正确设

发布时间:2020-12-16 08:47:05 所属栏目:安全 来源:网络整理
导读:基本上我开始设计我的项目是这样的: 玩! web gui框架(使用RESTful服务) 用于RESTful服务的Spray Framework,连接到数据库,处理传入的数据,为web gui提供数据 数据库.只有服务才有权访问它 现在我想知道,如果它真的是最好的设计. 事实上玩Play!我可以很容易
基本上我开始设计我的项目是这样的:

>玩! web gui框架(使用RESTful服务)
>用于RESTful服务的Spray Framework,连接到数据库,处理传入的数据,为web gui提供数据
>数据库.只有服务才有权访问它

现在我想知道,如果它真的是最好的设计.
事实上玩Play!我可以很容易地同时托管web gui和服务.
在可能的简单情况下,这将更容易测试和部署.
在需要高性能的复杂情况下,我仍然可以纯粹为gui运行一个实例,然后只为了服务而运行一些实例(即使它们中的每一个仍然可以提供全部功能).
另一方面,我不确定它是否会对性能造成太大影响(服务将处理大量数据,而不仅仅是来自网络gui).还有,它不是混合我应该保持分开的东西吗?

如果我决定将它们分开,我是否应该只允许通过RESTful服务连接到数据库?如何解决服务和web gui试图使用不同版本的数据库的问题?在这种情况下我应该使用版本化的REST协议吗?

—————–编辑——————
我目前的系统结构如下:

但我想知道通过将REST服务放入Play中来简化它是否有意义! gui web服务器直接.

—————–编辑2 ——————
这是说明我的主要问题的图表.
换句话说清楚一点:连接我的服务和网络gui并分享模型会不好?为什么?
因为优点也很少:

>减少服务和gui之间的配置
>无需数据传输
>不需要创建单独的访问层(可能是不利的,但在什么情况下?)
> gui /服务模型之间没有不一致(例如因为协议版本不同)
>更容易测试和部署
>没有代码重复(通常我们需要复制模型的大部分)

也就是说,这是图:

解决方法

为什么需要RESTful服务来连接数据库?最玩!应用程序直接从控制器访问数据库. Play! philosophy考虑通过服务层访问您的模型是反模式.如果您打算与其他(非Play!)应用程序或您控制之外的外部系统共享该数据,则服务层可能很方便,但除此之外,最好保持简单.但您也可以简单地从Play中公开RESTful接口!应用程序本身用于其他系统.

玩!是为了保持简单,避免过去困扰Java开发的过度设计的废话.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读