V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  vczyh  ›  全部回复第 1 页 / 共 2 页
回复总数  25
1  2  
26 天前
回复了 AerithLoveMe 创建的主题 问与答 kafka 生产者和业务耦合的关系
@AerithLoveMe
我个人觉得没有必要:
1. 增加一次网络是否有必要。
2. rpc 服务提供者( kafka 生产者)是否有必要做成一个单独的服务,因为他功能太简单了。
3. 通过 rpc 发送消息,是否少了很多 kafka 机制,比如丢失消息、重试等。
26 天前
回复了 AerithLoveMe 创建的主题 问与答 kafka 生产者和业务耦合的关系
kafka 或者 rpc 只是邮件服务向外暴露的不同方式而已。

至于引入 kafka 依赖,这不是很正常么?如果不想引入,那就使用 rpc 方式,rpc 也有可能增加依赖。
@PMR
感谢老哥,我看看去。
80 天前
回复了 vczyh 创建的主题 Java 不限语言,谈谈如何避免循环依赖?
@byte10
没遇到过循环依赖么...
90 天前
回复了 vczyh 创建的主题 Java 不限语言,谈谈如何避免循环依赖?
@summerLast 感谢~
91 天前
回复了 vczyh 创建的主题 Java 不限语言,谈谈如何避免循环依赖?
@shot
这个思路跟在 service 上加一层很类似,只不过这一层是 web/app 。
91 天前
回复了 vczyh 创建的主题 Java 不限语言,谈谈如何避免循环依赖?
@nothingistrue
非常感谢老哥打这么多字解释。

我理解就是明确每个 Service 的职责和边界,如果需要组合那么这个就不是 User 或者 Order 的职责,这个功能应该放到别的 Service 中。

> 第二,同层之内允许从上到下的调用链,而如果是同层同模块内部,允许双向依赖——不分场合的禁止双向依赖,是违反内聚原则的。

对于这个我有一些疑问:我认为允许同层同模块互相依赖确实可以减少代码冗余,增加内聚,但我们在设计之初是否最好避免互相依赖呢。

能否通过这样的方式:在 service 下加 manager 层,manager 和 service 都不允许同层互相调用,service 可以组合多个 manager ,manager 提供一些细粒度的操作。
91 天前
回复了 vczyh 创建的主题 Java 不限语言,谈谈如何避免循环依赖?
@nothingistrue
情况 1:查询用户,带出对应的订单(造成 User 依赖 Order.getListByUserId(long userId)接口)
情况 2:查询订单,带出用户的某些信息(造成 Order 依赖 User.getSomeInfo(long userId))
请问这种 service 互相依赖怎么解决?
91 天前
回复了 vczyh 创建的主题 Java 不限语言,谈谈如何避免循环依赖?
@ChoateYao 那意思是
之前:UserService.get(long id):获取用户信息->根据用户 ID 获取所有订单信息(造成 UserService 依赖 OrderService )
改成:为了禁止 service 之间调用,在 service 层上加一层,在这一层组合 UserService 和 OrderService
可以这么理解吗?
91 天前
回复了 vczyh 创建的主题 Java 不限语言,谈谈如何避免循环依赖?
@libook 我也是这么认为
91 天前
回复了 vczyh 创建的主题 Java 不限语言,谈谈如何避免循环依赖?
有没有同学有比较好的实践
91 天前
回复了 vczyh 创建的主题 Java 不限语言,谈谈如何避免循环依赖?
@frank1256 事实确实是你说的那样,很蛋疼。
91 天前
回复了 vczyh 创建的主题 Java 不限语言,谈谈如何避免循环依赖?
@Kontinue 是的,主要是后面会出现的,前期没有这个问题。
91 天前
回复了 vczyh 创建的主题 Java 不限语言,谈谈如何避免循环依赖?
@VeryZero 那这一层一般叫什么呢?
91 天前
回复了 vczyh 创建的主题 Java 不限语言,谈谈如何避免循环依赖?
@Jooooooooo spring 是一定程度上是支持的,但是 Golang 是禁止的。
91 天前
回复了 vczyh 创建的主题 Java 不限语言,谈谈如何避免循环依赖?
@xuanbg 你其实说到重点了,最根本的就是设计问题,谁依赖谁在设计之初就决定了,如果大家都了解那么没有问题,但是在业务发展的过程中,没有 review 很有可能破坏规则,那么可以可以在工程代码上指定一些规范来尽量避免,比如说:禁止 service 调用 service ?
91 天前
回复了 vczyh 创建的主题 Java 不限语言,谈谈如何避免循环依赖?
@hay313955795 在理哈哈
91 天前
回复了 vczyh 创建的主题 Java 不限语言,谈谈如何避免循环依赖?
@Jooooooooo 不是追求规定,如果一开始没有规定或者设计不合理,之后大概率出现循环依赖。
91 天前
回复了 vczyh 创建的主题 Java 不限语言,谈谈如何避免循环依赖?
@frank1256 主要是检查出来后又得重新设计,不如在设计之初想想如何避免。
91 天前
回复了 vczyh 创建的主题 Java 不限语言,谈谈如何避免循环依赖?
@Very
@vczyh 写错了,应该是禁止 service 注入别的 service
1  2  
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3772 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 32ms · UTC 04:18 · PVG 12:18 · LAX 20:18 · JFK 23:18
Developed with CodeLauncher
♥ Do have faith in what you're doing.