|
9 | 9 |
|
10 | 10 | ## Install |
11 | 11 |
|
12 | | -``pip install -e .`` |
| 12 | +``pip install huskar-sdk-v2`` |
13 | 13 |
|
14 | 14 | With extra dependencies of doc: |
15 | 15 |
|
16 | | -``pip install -e ".[doc]"`` |
| 16 | +``pip install "huskar-sdk-v2[doc]"`` |
17 | 17 |
|
18 | 18 | With extra dependencies of tests: |
19 | 19 |
|
20 | | -``pip install -e ".[test]"`` |
| 20 | +``pip install "huskar-sdk-v2[test]"`` |
| 21 | + |
| 22 | +Install all: |
21 | 23 |
|
22 | | -Install all |
23 | 24 | ``make develop`` |
24 | 25 |
|
25 | 26 |
|
26 | 27 | ## Tests |
27 | 28 |
|
28 | 29 | run |
29 | | - |
30 | 30 | ``python setup.py test`` |
31 | 31 | or |
32 | | -``make test` |
33 | | - |
34 | | -## 分支版本 |
35 | | - |
36 | | -0.x.y: |
37 | | - |
38 | | -* x 代表是否有不兼容. |
39 | | -* y 为自动同一兼容性下, 自动升级的版本. 会自动在线上安装. |
40 | | - |
41 | | -总共维护 3 个不兼容. |
42 | | - |
43 | | -* 最新版本分支: master |
44 | | -* 0.13.x 版本分支: v0.13.x |
45 | | -* 0.14.x 版本分支: v0.14.x |
46 | | - |
47 | | - |
48 | | -## Kazoo |
49 | | - |
50 | | -Kazoo 仅在使用 `BootstrapHuskar` 时用到, 这是供 Huskar API 自举用的接口。 |
51 | | - |
52 | | -对于其他使用方, 建议只使用 `HttpHuskar` , 这是唯一受支持的 Huskar 接入方式。 |
53 | | - |
54 | | -我们依赖的 Kazoo 版本是基于上游 2.0 版本 fork 的[一个分支](https://github.com/huskar-org/kazoo/tree/eleme-2.0), |
55 | | -其中 backport 了一些 hotfix 和特性。 |
56 | | - |
57 | | -至于为什么不升级到最新版本的 Kazoo,历史中留存了一份解释。 |
58 | | - |
59 | | -> 我们上次 `add_auth` 导致的 xid mismatch 的问题, 结合 |
60 | | -> https://github.com/python-zk/kazoo/pull/305, 以及我对比 ZooKeeper Java Client |
61 | | -> 和 Kazoo 实现的结果,可以得出一个结论: Kazoo 的连接管理中 `def _invoke` |
62 | | -> 这种不经过队列直接递交连接时请求的行为是完全有可能导致 race condition 的… |
63 | | -> 目前的 Kazoo 版本结合 huskar-sdk 实现算是很小心地躲开已知的石子, |
64 | | -> 如果换个姿势就未必还能躲开了。 |
65 | | -> |
66 | | -> 这个问题如果没有(通过 Kazoo 重构)彻底解决,我建议我们不要再抱有升级 Kazoo |
67 | | -> 的想法了。如果需要上游的某个 patch,我们可以 backport 到我们 fork 的分支。 |
68 | | -
|
69 | | -## FAQ |
70 | | - |
71 | | -### 在面板上添加的数据用 SDK 取不到 |
72 | | -请确认: |
73 | | - |
74 | | -1. Huskar SDK 连接的服务器和面板是否相同 |
75 | | -2. Huskar SDK 使用的服务名称和面板的服务名称是否相同 |
76 | | -3. 功能模块是否有弄错?配置和开关分别对应面板中的 `Config` 和 `Switch` |
77 | | -4. Huskar SDK 使用的版本是否 **过旧** ,一般来说我们推荐使用 [已发布的最新版](https://github.com/huskar-org/huskar-python/releases) |
78 | | - |
79 | | - |
80 | | -## 特性 |
81 | | - |
82 | | -* 开关修改实时生效 |
83 | | -* 以/team/project/project_module/cluster/api为粒度进行管理,例如:/arch/test/test_233/test_6666/query_by_geohash |
84 | | -* 以user和team为单位进行权限分配,以api为粒度进行权限设置(change/delete/read)。 |
85 | | -* 以比例形式设置接口开关,例如:设置开关大小为50%,则所有流量的50%经过接口处理,50%的流量返回默认。 |
86 | | -* 默认返回的方式: 以decorator的方式设置接口返回的默认值. |
| 32 | +``make test`` |
0 commit comments