V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  cxytz01  ›  全部回复第 5 页 / 共 8 页
回复总数  151
1  2  3  4  5  6  7  8  
2021-09-27 15:18:32 +08:00
回复了 itechnology 创建的主题 程序员 微服务怎么划分才算是正确的?是越细越好吗?
微服务的划分粒度是比较感性的话题,没有统一的标准。不能为了微服务而微服务,也不能为了单体而单体。它们之间没有明显的边界,不是泾渭分明的。

从单体到 SOA,到横向、垂直划分,到微服务,它们之所以出现都是为了提高生产力亦或者降低扩容成本,简称降本增效。以下讨论排除金融、游戏业务。(金融、游戏业务,为了更低的时延,核心模块不会使用微服务,关键模块甚至不计成本,性能至上)

先从成本角度考虑:如果你是一个 NewSQL DB,显然做成单体不适合。DB 作为整套业务系统的核心,压力最大,扩容最贵。单体 DB 扩容,意味着把整个 DB 程序整体复制 n 次,而不管热点模块是哪个,扩容成本比较大。因此,需要按模块拆分,扩容时,只需扩容热点模块。可以想象 mysql,redis 等 OLD SQL 的扩容,都是整个 DB 进行扩容,贵。

又从成本角度考虑:如果你是一个 DB,轻量级的。应用于嵌入式场景,开发者最求的是我只需要调用函数,就可以用你的 DB,不需要各种网络功能,而且占用资源少,还要快。那么此时微服务显然不适合,甚至带有网络 IO 的 server 都不适合,这就是 SQLite 的诞生原因: 我就是一个 library,不需要微服务,只需要模块化。

从技术维护角度考虑:一个单体服务,业务变更频繁,牵一发而动全身,每次上线整套系统都要有不定长的停机时间。因此需要微服务化:将不频繁变更的模块、频繁变更的模块剥离、分离出来,日后的改动只需要关注频繁变更的模块。
上线时只有频繁变更的模块会受到影响。

从技术的角度考虑:一个单体服务,需要稳定,不能重启,但又经常业务变更: 比如涉及到 TCP 长链接管理的服务。那么需要将长链接管理的模块和经常变更的业务剥离出来。

从机器资源的角度考虑:一个单体服务,既是 IO 密集型,又是 CPU 密集型的。那么需要将 IO 逻辑和 CPU 计算逻辑剥离出来,充分利用不同机器特性。

从业务、项目推进、扩容成本的角度考虑:一个电商程序,一个人可以负责全部,那么就不剥离。后续功能变多,一个人负责不过来,就模块化,依然不剥离。再再后续,某个模块上线时需要整个程序停机更新,则需要剥离。再再后续,某个模块成为热点时,需要整个程序扩容,则需要剥离。再再后续,单体服务限制了多人协作,你一个 pr,我一个 pr,他一个 pr,全都 hold 住,等着 merge 进入主干,则需要剥离。

从人员管理角度:A 和 B 天生合不来,那么需要微服务化,各自管各自的服务,谁也别管谁怎么实现的,给我接口就行。


以上讨论的是分。分了之后在合,我没遇到过,但是我可以想象也是为了降本增效: 分了的服务,给技术、技术维护、项目、业务、运维等任一项带来了层本上的上升,所以要合。

关于你的首席技术官,我不好评价他的对错,因为基于你的描述,只谈到了果,没有谈到因 -- 为什么而分。
2021-09-21 04:00:07 +08:00
回复了 opentrade 创建的主题 酷工作 [武汉] 新创公司招聘 Rust 开发工程师(非区块链)
请问,看候选人籍贯有什么用?
2021-09-16 15:26:09 +08:00
回复了 zxCoder 创建的主题 程序员 研究生请教关于找工作的问题
普通程序员请教下:什么是 Tranformer,inference,embedding 。 搜索引擎的解释看不懂。
2021-09-13 17:20:54 +08:00
回复了 beryl 创建的主题 程序员 工作 5-10 年应该具备什么样的能力
@JerryMouse 那你得加把劲,争取不需要测试。起码你已经进步到测试觉得测你的代码没劲了。下个阶段就是:优秀的开发工程师不需要额外配一个测试工程师。😄
2021-09-13 14:28:20 +08:00
回复了 beryl 创建的主题 程序员 工作 5-10 年应该具备什么样的能力
什么算是优秀,如何定义优秀?

非优秀 10+后端开发说下我的看法:
1.业务抽象能力,能将需求抽象成简单代码。能用抽象思维解决的问题,绝不通过黑科技代码来解决。(这句话很难理解,不展开)
2.代码精简能力,你写的代码几天、几个月,甚至几年之后自己还能一眼看懂。同事也很容易看懂你的代码,尤其是 2-3 年的同事也能看懂你的代码,然后喷你:还是工作 10 年的人呢,代码写得我也能看得懂,毫无技术含量,lowB 。
3.严谨的逻辑思维能力,能够对各种黑天鹅事件,预先在代码做上防御式编码。

三面三条是我认为优秀的工程师需要具备的能力,总结一下就是:解决问题于未然;善战者无赫赫之功。

拥有上面三条,你基本在团队里面就是毫无存在感的。整天无所事事,线上救火也无你份。 -- 然后等着被裁吧。😄
2021-09-13 12:04:26 +08:00
回复了 cxytz01 创建的主题 职场话题 大龄码农人生岔路口,求帮忙做个选择题(选择 offer)。
@auxox 非评论区里坛友猜测的公司,加你微信没意义。
后端开发,加班情况如何? 平时几点上下班的啊?
2021-09-09 18:01:48 +08:00
回复了 wangyzj 创建的主题 程序员 彦祖们, pg 还是 mysql? 到底该怎么选?
现在已经是 newSQL 时代了,放弃 oldSQL 吧。
至少把 noSQL 用上吧: 用 mongoDB 。
@MarioLuo mongo 已经支持事务了吧?虽然对你们不重要,但我还是提醒下的,已经支持事务了。
另外,你们的系统是什么类型的系统,为什么选择 mongodb,能分享下吗?
只能在上海 wfh 吗,能在其他城市 wfh 吗?
2021-08-30 11:21:31 +08:00
回复了 Rooger 创建的主题 Go 编程语言 Go 游戏后端微服务后端求推荐
为什么要用微服务框架呢,go 这门语言不用微服务框架不行吗? 你使用框架是需要框架提供的什么能力?
你的游戏服务是有状态的,和微服务有什么关系呢?

目前公司微服务的项目,都是基于 go,但是就没用微服务框架。
2021-08-24 15:20:38 +08:00
回复了 boaofCHIAN 创建的主题 C++ C++ 优秀开源类库叠楼推荐
google: awesome cpp
@fengjiang 没转。
2021-08-23 10:15:35 +08:00
回复了 boyhailong 创建的主题 C++ 周末调试了 grpc C++
高级点,上 systemtap,自己写调试脚本。
2021-08-23 10:14:43 +08:00
回复了 boyhailong 创建的主题 C++ 周末调试了 grpc C++
strace + pmap + pstack
英语要求怎么样?
技术栈是互联网分布式后台的,你们是否考虑?
2021-07-30 14:41:53 +08:00
回复了 RTShield 创建的主题 酷工作 上海端御科技求贤 ing | 柠月如风,屡践致远,不负青云之志
对不起,我理解错误了。
2021-07-30 14:16:42 +08:00
回复了 RTShield 创建的主题 酷工作 上海端御科技求贤 ing | 柠月如风,屡践致远,不负青云之志
红队基因的"公司"都是空壳公司,而且绝不敢公开招聘,你这不算红队基因,别问我为什么知道。
2021-07-21 16:22:49 +08:00
回复了 0xAshu 创建的主题 酷工作 [杭州/新加坡/远程] imToken 招聘产品经理、前端、后端工程师
一周工作几天,晚上加班情况怎么样?
官网 golang 后端的 jd 是杭州的,没有全职远程的吗?
1  2  3  4  5  6  7  8  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1136 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 34ms · UTC 17:19 · PVG 01:19 · LAX 09:19 · JFK 12:19
♥ Do have faith in what you're doing.