Guide

Results 166 comments of Guide

> JavaGuide,大佬啊 @Snailclimb 嘿嘿 一直有关注大佬的项目,很不错👍

Anti-Entropy的伪代码如下: ![](https://img-blog.csdnimg.cn/20210605165106728.png) Rumor mongering的伪代码如下: ![](https://img-blog.csdnimg.cn/20210605170707933.png)

内容太喜欢了!看周志明老师的公开课《周志明的软件架构课》的时候发现的宝藏书籍!期待出版! 提一个格式上的小建议。Markdown 排版的话,一般建议中英文之间以及中文和数字之间增加空格。可以参考中文文案排版指南:https://github.com/sparanoid/chinese-copywriting-guidelines 再推荐一个 Markdown 在线排版工具:https://jsonformatter.org/markdown-formatter

> 公开课 地址分享下 谢谢😊发自我的华为手机-------- 原始邮件 --------发件人: IcyFenix ***@***.***>日期: 2021年6月1日周二 16:23收件人: fenixsoft/awesome-fenix ***@***.***>抄送: 叫我超哥就好了 ***@***.***>, Mention ***@***.***>主 题: Re: [fenixsoft/awesome-fenix] 「Comment」http://localhost:8080/board/ (#72) @Snailclimb 内容太喜欢了!看周志明老师的公开课《周志明的软件架构课》的时候发现的宝藏书籍!期待出版! 提一个格式上的小建议。Markdown 排版的话,一般建议中英文之间以及中文和数字之间增加空格。可以参考中文文案排版指南:https://github.com/sparanoid/chinese-copywriting-guidelines 再推荐一个 Markdown 在线排版工具:https://jsonformatter.org/markdown-formatter 谢谢,之前有同学提过英文、数字的空格问题,当时是准备写个parser在markdown生成html时自动修正过来的,后来忙起来就忘记了,正好你提供的这个markdown排版工具有现成的。 —You...

内容很赞!感谢周老!单体架构能解决的问题就不用考虑微服务了。放弃微服务,我们为什么重回单体架构? :https://www.infoq.cn/article/o6kcqCSGBTmeTbOP4wG1

> > @Snailclimb > > 内容很赞!感谢周老!单体架构能解决的问题就不用考虑微服务了。放弃微服务,我们为什么重回单体架构? > > :https://www.infoq.cn/article/o6kcqCSGBTmeTbOP4wG1 > > 碰到guide哥了😊 哈哈哈 快刷完了~

> https://github.com/Snailclimb/guide-rpc-framework/blob/master/rpc-framework-simple/src/main/java/github/javaguide/serialize/protostuff/ProtostuffSerializer.java > > ``` > /** > * Avoid re applying buffer space every time serialization > */ > private static final LinkedBuffer BUFFER = LinkedBuffer.allocate(LinkedBuffer.DEFAULT_BUFFER_SIZE); > > @Override...

> https://github.com/Snailclimb/guide-rpc-framework/blob/311019140e41968f01c122fc170ee0df187df42f/rpc-framework-simple/src/main/java/github/javaguide/registry/zk/util/CuratorUtils.java#L58 之前这里有一点参考 dubbo 的做法。其实,我觉得直接将异常通过`log.error`打印出来就好。 ![image](https://user-images.githubusercontent.com/29880145/97848695-68dccf00-1d2c-11eb-8a68-e307333983d8.png)

> 我个人很喜欢这个项目,因为它能帮助我更好的理解rpc的细节。前段时间我看了李林峰的 《Netty权威指南》,也自己实现过简单的rpc,但是却不如你的全面和细节。在阅读源码的过程中,我发现了一下小问题,也可能是我没有get到你的思路,请指教 > > 1. github.javaguide.factory.SingletonFactory#getInstance,这个单例只是实现了一次校验,所以它恐怕不能正确的运行。 > 2. github.javaguide.serialize.kyro.KryoSerializer#kryoThreadLocal,因为Kryo是非线程安全的,所以用了ThreadLocal为每个线程创建一个实例。由于netty的序列化操作是在线程池中运行,所以没必要每次序列化完成后都做remove操作。 > 3. 我看项目中实现了以注解的方式发布服务,主要原理是用了SpringBeanPostProcessor对实例做了后置处理,但是SpringBeanPostProcessor能注册到容器原因是,你的示例项目example-server中NettyServerMain类中含有@componentscan注解,扫描的包名与rpc-framework-simple项目相同而已,这显然是不合理的。 > 4. 许多资源的创建没有加锁,比如github.javaguide.registry.zk.util.CuratorUtils#getZkClient。当然,这些可以靠spring完成。 > > 个人的一些理解,如有不足,还望指教 很赞啊!老哥!有些点的话确实没处理好。有时间的话还会继续优化以及修复现有的问题和你说的问题。🤟

> > 我个人很喜欢这个项目,因为它能帮助我更好的理解rpc的细节。前段时间我看了李林峰的 《Netty权威指南》,也自己实现过简单的rpc,但是却不如你的全面和细节。在阅读源码的过程中,我发现了一下小问题,也可能是我没有get到你的思路,请指教 > > > > 1. github.javaguide.factory.SingletonFactory#getInstance,这个单例只是实现了一次校验,所以它恐怕不能正确的运行。 > > 2. github.javaguide.serialize.kyro.KryoSerializer#kryoThreadLocal,因为Kryo是非线程安全的,所以用了ThreadLocal为每个线程创建一个实例。由于netty的序列化操作是在线程池中运行,所以没必要每次序列化完成后都做remove操作。 > > 3. 我看项目中实现了以注解的方式发布服务,主要原理是用了SpringBeanPostProcessor对实例做了后置处理,但是SpringBeanPostProcessor能注册到容器原因是,你的示例项目example-server中NettyServerMain类中含有@componentscan注解,扫描的包名与rpc-framework-simple项目相同而已,这显然是不合理的。 > > 4. 许多资源的创建没有加锁,比如github.javaguide.registry.zk.util.CuratorUtils#getZkClient。当然,这些可以靠spring完成。 > > > > 个人的一些理解,如有不足,还望指教 > > 很赞啊!老哥!有些点的话确实没处理好。有时间的话还会继续优化以及修复现有的问题和你说的问题。🤟...