请教一个多人开发项目的设计问题

2020-12-23 15:08:34 +08:00
 MeloForsaken

两三个人对项目进行开发(每个人负责几个模块,并且单独部署服务),有以下几个问题:

1.有必要将接口的鉴权、用户认证抽成一个公共的服务,或者说有没有更好的方法?

2.有必要上网关、服务注册中心、监控等微服务的组件吗?

3.如果让开发人员只关注业务,那需要哪些基础设施?是不是必须要上微服务?

1473 次点击
所在节点    程序员
10 条回复
wizzer
2020-12-23 15:20:14 +08:00
简单、快捷、性能也不差,为什么不用 https://nutzwk.wizzer.cn

微服务单应用项目,可以 jar 部署,也可 war 部署。
securityCoding
2020-12-23 16:10:23 +08:00
1. 有必要 . 接口鉴权,账户认证必须解耦出来
2. 没必要 ,先按模块分
3. ci
MeloForsaken
2020-12-23 16:16:32 +08:00
@securityCoding 不上网关的话怎么转发请求到鉴权认证服务,认证通过后又怎么转发到业务的服务上?
rapperx2
2020-12-23 16:19:24 +08:00
看项目流量来啊,小流量上微服务有什么用,加大成本。不过也要看业务需求来
micean
2020-12-23 16:21:09 +08:00
两三个人的项目做成单体就行了,上什么微服务
iceneet
2020-12-23 16:26:26 +08:00
不是所有项目的都要上微服务的 项目小的话 微服务带来的问题可能会更多
shakeyo
2020-12-23 16:31:15 +08:00
单体的问题在于无法复用,特别是在某些数据和代码都需要公用的情况下
我现在的做法是提取出需要共享的服务,然后由单体应用进行 rpc 调用
MeloForsaken
2020-12-23 16:42:41 +08:00
@micean 你的意思是代码合并成一个服务打包部署?
chendy
2020-12-23 16:49:24 +08:00
项目多大?不大的话直接分模块写一个项目里完事了
securityCoding
2020-12-23 16:53:24 +08:00
@MeloForsaken 解耦方式不一定非要做成跨进程 , 规模不大的时候做到模块解耦就够了,比如统一的拦截器 /过滤器,给业务层提供统一获取登录态上下文 api ,结合缓存来做性能是没有啥问题的. 业务层对鉴权和登录态校验是没有感知的.同个进程内也就不存在转发请求的概念了. 俗称客户端模式

要上业务层网关,其实差别也不是很大 ,无非是将鉴权的代码功独立成服务,网关层面做前置认证再自动帮你做转发和传递上下文 .

技术方案都是慢慢演进的,没有完美的方案 . 结合业务场景来分析业务 ,选个最简单的方案来做就好.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/738252

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX