Apache [[ZooKeeper]] 是 Apache 软件基金会的一个软件项目,为大型分布式计算提供开源的分布式协调系统,提供的功能包括配置服务、同步服务和命名注册等。Zookeeper 项目的初衷就是为了降低分布式应用从头开发协同服务的负担。
ZooKeeper
ZooKeeper is a high-performance coordination service for distributed applications. It exposes common services - such as naming, configurati
Read more ...
Fabric 在升级 2.x 之后,几乎就是重写了。很多以前的用法都变了,然后在 1.x 时代,本地和远程都是用一套代码处理,但是 2.x 的时候将 local 处理部分和远程处理部分分别拆分为 fab 和 invoke 了,拆分的理由可以参考这里。
以前 Fabric 是不支持 Python 3 的,升级之后的版本可以完美支持 Python 3,然后下面是 Fabric 2.x 的升级理由:
Python 3 compatibility support 2.7 and 3.4+
Thread-safe
API reorganized
Read more ...
总得来说这本书按照微服务的各个内容介绍了一遍,但是只适合入门,并不适合深入了解。看完可以对什么是微服务有一个大致的了解,对于自己实现一个微服务架构还是需要更多的阅读。
第 1 章 原理
微服务架构的目的是为了解决传统单体应用在业务急剧增长时遇到的水平扩展问题。通过拆分服务,将微服务系统中的服务划分明确的职责,做到低耦合,高内聚。
微服务交互模式
读者容错处理
消费者驱动契约模式,服务提供者向所有消费者承诺遵守的约束,一旦消费者把具体期望告诉提供者,提供者无论在什么时间和场景下,都不应该打破契约。
两个概念:
水平扩展,扩展单节
Read more ...
这一篇讲在威联通上安装和使用下载工具 – Transmission,一个知名的轻量级,跨平台,开源的 BT 下载工具。
Transmission 是一个 BT 客户端,提供了 Web 和命令行界面,非常适合在威联通机子上跑。威联通自身的 Download Station 根本无法用,而迅雷和百度也基本无法用。只能尝试一下这个方法了。
安装
如果看过之前的文章,应该知道威联通第三方的应用市场 QNAP CLUB,在其中直接能够找到 QTransmission。安装完成之后用户名密码是 qnap 和 qnap。
配置文件路径:
/opt/QTr
Read more ...
文件同步应该算是 NAS 最最基本的一个服务了,但是为什么直到篇六才提到他呢,是因为威联通自带的 QSync ,嗯,虽然能用,但是,没有 Linux 客户端,虽然其他平台客户端 OK,但是作为我主力工作的平台没有同步客户端,只能 smb 挂载。而之前搞 zerotier 同局域网速度不佳,其他 frp 内网穿透 也最多拉一些小文件,完全做不到 Dropbox 那样无缝,无痛。
而到现在,腾讯云上的 NextCloud 已经稳定运行近半年,所以如果在威联通上装上 NextCloud 只要网络访问畅通的情况下,做到所有平台访问 NAS 应该问题不大。而说到
Read more ...
威联通上有一个 Container Station 的应用,可以直接用官方的 App Center 中下载安装,这其实就是一个 Docker 本地环境,如果熟悉 Docker 使用,那么其实都直接可以 ssh 登录 NAS 然后完全使用命令行来操作。
不过既然威联通提供了一个直观的界面,那么久来使用看看。官方的例子中有一个 GitLab,我的体验来看是非常完美的,几乎就是一键下载部署,即使不了解容器,也不知道 Docker 内部怎么实现,也能够快速的搭建好 GitLab 的服务。威联通 Container Station 中自带很多的服务,比如这个 G
Read more ...
如果想要给威联通安装一个 qpkg 的安装包时,最直观界面方式就是在 App Center 中,右上角,将本地的 .qpkg 文件上传到 NAS 并安装。
但是这种方式在外网图形界面加载很慢的情况下是非常难用的,那么这个时候如果能使用命令行安装就非常方便。需要在系统中预先开启 SSH 连接,当然这一步早就做好了。然后使用 ssh 连接登录上。比如下面以安装 Entware 为例:
wget http://bin.entware.net/other/Entware_1.00std.qpkg
sh Entware_1.00std.qpkg
经过这两个
Read more ...
这是 QNAP NAS 折腾第二篇,使用 frp 来从外网访问 NAS。威联通自带的 qlink.to 实在是太慢几乎到了无法使用的地步,用 Zerotier 也依然很慢,所以无奈还是用回了 frp.
之前就写过一篇很简单的 frp 使用,不过那是是在 PC 客户端和树莓派上,不过 NAS 就是一个 Linux 嘛,所以也很简单。不过需要注意的是,映射本地 8080 端口,如果需要其他端口,需要相应的添加配置:
[common]
server_addr = frp.server.com # frp 服务端地址,可以为 IP 或者域名
Read more ...
ZeroTier 是为了解决复杂网络以及因特网过于中心化而提出的组网解决方案。ZeroTier 可以使得在不同网络,不同物理空间的机器组件在同一个虚拟局域网中,使得他们之间可以交换数据,直接连接。
[[ZeroTier]] 使用点对点 的网络,并且在上面附加一层 VXLAN-like 虚拟网络层 来提高局域网的可见性,安全性。
所以简单来说,ZeroTier 通过创建一个虚拟网络,把你的设备添加到这个网络,那么在这个网络内,你的设备就像在同一个路由器内那样可以使用各种端口。
免费版 ZeroTier 支持局域网内 100 个设备。ZeroTier
Read more ...
Celery 使用过程中又遇一坑,最近升级项目中使用的 Celery 到 4.1.1,突然发现一些定时任务突然不执行了。开始还以为代码哪里做了变化,尝试找了很久,然后打开 scheduler 的日志观察了一段时间。
Celery config 中的配置是如下所示,理论上,早间的任务应该在 8 点到 12 点 每隔 5 分钟执行一次,然后午间和晚间的以此类推。
app.conf.timezone = 'Asia/Shanghai'
app.conf.beat_schedule = {
'morning': {
'task':
Read more ...