【译】如何高效的使用 Git
代码昨天还是运行好好的今天就不行了。
代码被删了。
突然出现了一个奇怪的 bug,但是没人知道怎么回事。
如果你出现过上面的任何一种情况,那本篇文章就是为你准备的。
除了知道 git add
, git commit
, git push
之外,Git 中还需要其他重要的技术需要掌握。长远来看对我们是有帮助的。这里我将向你展示 Git 的最佳实践。
「造个轮子」——cicada 源码分析
前言
两天前写了文章《「造个轮子」——cicada(轻量级 WEB 框架)》
向大家介绍了 cicada
之后收到很多反馈,也有许多不错的建议。
同时在 GitHub 也收获了 100 多颗 小♥♥(绝对不是刷的。。)
也有朋友希望能出一个源码介绍,本文就目前的 v1.0.1
版本来一起分析分析。
没有看错,刚发布就修复了一个 bug,想要试用的请升级到
1.0.1
吧。
「造个轮子」——cicada(轻量级 WEB 框架)
前言
俗话说 「不要重复造轮子」,关于是否有必要不再本次讨论范围。
创建这个项目的主要目的还是提升自己,看看和知名类开源项目的差距以及学习优秀的开源方式。
好了,现在着重来谈谈 cicada 这个项目的核心功能。
我把他定义为一个快速、轻量级 WEB 框架;没有过多的依赖,核心 jar 包仅 30KB。
也仅需要一行代码即可启动一个 HTTP
服务。
强如 Disruptor 也发生内存溢出?
分布式(一) 搞定服务注册与发现
背景
最近在做分布式相关的工作,由于人手不够只能我一个人来怼;看着这段时间的加班表想想就是够惨的。
不过其中也有遇到的不少有意思的事情今后再拿来分享,今天重点来讨论服务的注册与发现。
分布式带来的问题
我的业务比较简单,只是需要知道现在有哪些服务实例可供使用就可以了(并不是做远程调用,只需要拿到信息即可)。
要实现这一功能最简单的方式可以在应用中配置所有的服务节点,这样每次在使用时只需要通过某种算法从配置列表中选择一个就可以了。
但这样会有一个非常严重的问题:
由于应用需要根据应用负载情况来灵活的调整服务节点的数量,这样我的配置就不能写死。
不然就会出现要么新增的节点没有访问或者是已经 down 掉的节点却有请求,这样肯定是不行的。
往往要解决这类分布式问题都需要一个公共的区域来保存这些信息,比如是否可以利用 Redis?
每个节点启动之后都向 Redis 注册信息,关闭时也删除数据。
其实就是存放节点的 ip + port
,然后在需要知道服务节点信息时候只需要去 Redis 中获取即可。