小弟第一次搭建 分布式开发框架
想问以下这种模式是正确的嘛?
把MVC应用项目 部署在 2台服务器, MVC项目不处理逻辑, 只调用webapi接口数据, 然后渲染页面返回给客户端!
疑问
在A服务器 MVC控制器里调用B服务器webapi接口 会不会脱裤子放屁?
如果我在A服务器 MVC控制器里直接调用Dll 的业务层代码, 是否业务计算是发生在A服务器里的? 而我只调用webapi接口 相对的业务逻辑是不是发生在 webapi服务器那台服务器上 这样是不是好点?
1、没问题,效率更高。
2、正如你所说。
其他疑问:
1、你这样如果webapi是一台的话,相当于把压力转换给了webapi项目,还是有单点问题。
2、如果分布式部署,需要考虑分布式Session,分布式存储等一系列问题。
3、你这个设计图貌似不太对劲(理论上终端是直接访问web api才对,而不是从mvc访问)
如果 终端直接访问 webapi 那html页面是在客户端进行渲染吗?
我想的是 用户通过访问MVC MVC再访问数据, 然后在MVC服务器上渲染好了, 返回给客户端
还望大神指点下
@狂扁小朋友: 这样就不合理了。多跑了一层。如果是mvc后端渲染,不走ajax的话,那么就不需要api这一层。
@幻天芒: 谢谢大神指点 那请问 正确的做法 是通过 前端页面请求 webapi 然后渲染页面吗?
@狂扁小朋友: 要看你那边的需求如何。大致以下一些做法:
1、直接MVC,干掉webapi这层。后端渲染。
2、直接写纯静态页面,然后通过Webapi进行交互。客户端渲染(一般结合mvvm框架/库)。
3、混合式做法,利用mvc后端渲染基本内容,然后通过api渲染局部区域。前后端混合渲染。
mvc里调用webapi其实挺正常.
但是在mvc的后台代码调用,就不怎么正常。
@幻天芒: 不会啊。比如我有多端。然后这些多端的服务器。都调用统一的一个内部业务服务器。
我们现在的系统就是。web/app的web服务。都调用一个webapi的内部服务。不然很多东西都是重复的
@吴瑞祥: 这种场景,更多的是业务层共享。如果在mvc的后台中,再去调用一次webapi,性能会降低不少。
当然,现在更流行的多端是一个api,N个无后端渲染的Client。
@幻天芒: 看个人吧.我觉得这种性能问题完全不是问题.
如果用dll的方式.一改就得全发一边.
@幻天芒: 主要是方便.发一个就行了.
@吴瑞祥: 实际上,分离之后更方便,哈哈~你这个做法只是比较少见。
给你参考一下