求教!SAAS软件的定制服务该如何架构和实现?

devil_zhuzhu 2021-01-08 10:52:46
SAAS软件的普通服务和定制化服务该如何关联上。例如前端传到后端的getorderlist 我该怎么分发去普通的getorderlist 还是要去定制化的getorderlist_vip?目前只能想到把所有服务都管理起来,然后每次请求的时候去遍历是否有定制化服务,再去做反射请求定制化的服务。这样有点心累啊?不知道有木有好用的工具,或者别的思路,请求指教。。
...全文
8087 10 打赏 收藏 举报
写回复
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
devil_zhuzhu 2021-01-12
  • 打赏
  • 举报
回复
引用 9 楼 wanghui0380 的回复:
我们来看现在正在被他们神话的,所谓“API网关”

https://www.cnblogs.com/jesse2013/p/net-core-apigateway-ocelot-docs.html
你会发现他们在干啥呢,写那个json配置文件哦,而那个json配置文件是啥??其实就是路由表

当然你前面说身份,身份相关路由表,其实都在这里。

你要的跳转的例子
https://www.cnblogs.com/lcyhjx/p/12649936.html
美其名曰api网关,其实还是写配置文件而已

so,他们神话的部分拿开。我们说前置一个ngnix,然后让运维写路由跳转脚本,是不是一样的事情嘛







嗯嗯,新项目是准备搭建这一整套框架的。ngnix ,ocelot,consul,服务化开发所有模块。但是就是有些点通不了。不知道有什么更好的办法。如果没有更好的工具或者方式,可能也就只能匹配路由规则啊,找路由啊这样子来做了。。多谢指教
wanghui0380 2021-01-11
  • 打赏
  • 举报
回复
我们来看现在正在被他们神话的,所谓“API网关” https://www.cnblogs.com/jesse2013/p/net-core-apigateway-ocelot-docs.html 你会发现他们在干啥呢,写那个json配置文件哦,而那个json配置文件是啥??其实就是路由表 当然你前面说身份,身份相关路由表,其实都在这里。 你要的跳转的例子 https://www.cnblogs.com/lcyhjx/p/12649936.html 美其名曰api网关,其实还是写配置文件而已 so,他们神话的部分拿开。我们说前置一个ngnix,然后让运维写路由跳转脚本,是不是一样的事情嘛
wanghui0380 2021-01-11
  • 打赏
  • 举报
回复
我们这里讲实效,不讲神话 所以我们只讲实际可用的,并不想去神话他们。他们说api网关也好,注册发现也罢,熔断也罢 其实都是很简单的事情,并非啥神秘兮兮的玩意 整体上其实不管他们想多夸大,到我们这里只需要简单一句话就能说明白,他就是“路由器,路由表和路由”有个路由器去发现api,有个路由表去配置规则,有个路由去根据规则跳转 所以前面才说,你现在怎么写就怎么写。发布的时候写个脚本注册到路由器上告诉路由器有这个服务 客户勾选要特殊处理,还是说按身份处理(你有tokenid,appid,他就有身份)-----最后那个发布配置规则按钮去生成并更新 路由表配置 最后只是根据tokenid,appid,action和路由表去路由到对应api 我们不想神秘化,因为他本来就不神秘
wanghui0380 2021-01-11
  • 打赏
  • 举报
回复
引用 5 楼 devil_zhuzhu 的回复:
[quote=引用 1 楼 wanghui0380 的回复:]累也不是你的事情。那是运维的事情。 运维会前置ngnix这类东西做统一转向 当然如果你觉着这是你的事情,那么你可以去跟那个园子学“api网关”----------当然“api网关”其实本质上也是运维层面的事情,他们更多的手段其实是配置文件,控制脚本,编写工作流
网关可以解决定制化接口分发的事情么-,- 求教 因为目前了解ngnix做转向也是负载均衡到别的压力轻的服务器上,但是部署的时候,每个服务器都是整个站点部署上去的。 这样好像也不能实现在转向的时候就可以把接口分发掉。因为定制的接口需要查询权限后才能知道是不是定制的,,有点迷[/quote] 你是被博客园那些人给忽悠了,他们并不知道运维的人们在干嘛,也并不知道真正的项目怎么做。他们往往捡个皮毛就死命忽悠(至少5,6年前我们这边其实对那个园子的DDD一点都不感冒,我们在这里很明确的说,ddd概念本身有意义,他终于给他们10年前忽悠的设计模式,分层找了个可以落地的方向,至于手段上那个eventbus的也有意义。最没意义的反而是啥单根聚合根,但是也就这个皮毛中的皮毛,让那波伙计们给死吹,把自己给吹死了) 同样ngnix除了反向代理这么一个皮毛以外,他实际上本身就是网关的一部分,身份当然有token,有token当然可以从etcd/数据库查配置,可以查配置当然可以分发(话说你都说他能转向了,那么他能分发有啥奇怪的) 当然那些人不知道是因为他们不是运维,对于合格运维来说,写脚本,api聚合编排本来就是人家天天做的事情,没他们说的那么神秘兮兮的
devil_zhuzhu 2021-01-11
  • 打赏
  • 举报
回复
引用 3 楼 以专业开发人员为伍 的回复:
"定制化服务”要编译到新版本的服务系统中,然后更新服务器上的程序。没有必要过分动态化。假设订单的类型比较多样,那么就应该提供不同的api。假设同一类型的订单内部的“杂毛属性”特别的多特别繁琐,那么对应的 api 的服务端代码就应该非常庞杂。总之不要高标题党,不要过多时间扯上很多高大上的虚幻概念,要一下子就直截了当说清楚从最前端端到最后端的 Model 设计,能落实达到具体代码说话,而不是靠“期望概念”来都耽误时间。



因为避免不了定制化的一些接口,所以同订单的接口,可能会根据权限而调取不同的接口,这个时候就不知道要怎么分发到那个特定接口上了。如果不是运行时判断的话。。不知道有木有可以解决着相关的技术或者工具-,-
devil_zhuzhu 2021-01-11
  • 打赏
  • 举报
回复
引用 1 楼 wanghui0380 的回复:
累也不是你的事情。那是运维的事情。

运维会前置ngnix这类东西做统一转向

当然如果你觉着这是你的事情,那么你可以去跟那个园子学“api网关”----------当然“api网关”其实本质上也是运维层面的事情,他们更多的手段其实是配置文件,控制脚本,编写工作流




网关可以解决定制化接口分发的事情么-,- 求教 因为目前了解ngnix做转向也是负载均衡到别的压力轻的服务器上,但是部署的时候,每个服务器都是整个站点部署上去的。 这样好像也不能实现在转向的时候就可以把接口分发掉。因为定制的接口需要查询权限后才能知道是不是定制的,,有点迷
  • 打赏
  • 举报
回复
编程设计是要尽可能地不设计新的类型(包括接口),不写代码最好。真正会设计架构的人的都知道只做必要的事,如非不要、否则不引入想当然的定制。反而是搞培训的人才会总是搞出一点小事情,总是搞一些小代码。你应该先从“前端”入手去说明为什么后端此时会有bug,前端api改变了那么自然是解决“如何发布新版本api接入规范”的问题,而不是纠缠什么服务器如何更加抽象、动态、不计性能成本去追求解释性编程的问题。
  • 打赏
  • 举报
回复
"定制化服务”要编译到新版本的服务系统中,然后更新服务器上的程序。没有必要过分动态化。假设订单的类型比较多样,那么就应该提供不同的api。假设同一类型的订单内部的“杂毛属性”特别的多特别繁琐,那么对应的 api 的服务端代码就应该非常庞杂。总之不要高标题党,不要过多时间扯上很多高大上的虚幻概念,要一下子就直截了当说清楚从最前端端到最后端的 Model 设计,能落实达到具体代码说话,而不是靠“期望概念”来都耽误时间。
wanghui0380 2021-01-08
  • 打赏
  • 举报
回复
所以大多数情况下,我们并不是运行期动态查找。 大多数情况下,我们其实是在你勾选定制服务,并更新发布服务的时候去生成一个运维配置或者生成一个运行期工作流脚本。
wanghui0380 2021-01-08
  • 打赏
  • 举报
回复
累也不是你的事情。那是运维的事情。 运维会前置ngnix这类东西做统一转向 当然如果你觉着这是你的事情,那么你可以去跟那个园子学“api网关”----------当然“api网关”其实本质上也是运维层面的事情,他们更多的手段其实是配置文件,控制脚本,编写工作流
发帖
分析与设计

1.3w+

社区成员

.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
帖子事件
创建了帖子
2021-01-08 10:52
社区公告
暂无公告