2021-07-25 03:41:47 +08:00
|
|
|
# shizukana
|
|
|
|
nodejs restful webapi
|
2021-07-26 19:12:47 +08:00
|
|
|
|
|
|
|
## Install
|
|
|
|
```bash
|
|
|
|
# clone 到本地
|
|
|
|
git clone ...
|
|
|
|
|
|
|
|
# 切换到项目目录
|
|
|
|
cd shizukana
|
|
|
|
|
|
|
|
# 使用 yarn 或 npm 安装依赖包
|
|
|
|
yarn
|
|
|
|
|
|
|
|
# 使用 node 运行 index 文件
|
|
|
|
node index
|
|
|
|
|
|
|
|
# 也可以使用 pm2 作守护进程
|
|
|
|
pm2 start node --name shizukana -- index
|
|
|
|
```
|
|
|
|
|
2021-11-28 22:50:56 +08:00
|
|
|
## 特征
|
|
|
|
|
|
|
|
1. 抽象化以扩大泛用性
|
|
|
|
2. 无须配置依赖项的
|
|
|
|
|
2021-07-26 19:12:47 +08:00
|
|
|
|
|
|
|
### 程序结构
|
2021-11-28 22:50:56 +08:00
|
|
|
1. 抽象细分原则模块化
|
|
|
|
2. 免配置原则
|
|
|
|
3. 分层原则
|
|
|
|
4. 分布式原则
|
|
|
|
5. 解耦扩容原则
|
2021-07-26 19:12:47 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
2021-11-28 22:50:56 +08:00
|
|
|
#### 接口层
|
|
|
|
对外接口允许多服务终端, 服务集群皆为公开阵列
|
|
|
|
允许即刻熔断
|
|
|
|
|
|
|
|
1. 每地区一台或多台伺服器, 伺服器只是节点, 不属于中心
|
|
|
|
2. 具体落盘数据格式与冗余如何与接口节点无关
|
|
|
|
|
|
|
|
则终端连接伺服器通过可用时期节点列表缓存
|
|
|
|
终端连接信任域列表, 使用证书校验节点有效性
|
|
|
|
终端从信任域获取列表, 并将列表缓存, 特定更新周期或事件对伺服器列表更新
|
|
|
|
|
|
|
|
/全功能伺服器
|
|
|
|
任意节点都是伺服器之一, 没有分级且发挥节点所有效能
|
|
|
|
节点给出可用节点列表,
|
|
|
|
|
|
|
|
节点之间如何通信实现可用列表和数据的同步?
|
|
|
|
|
|
|
|
1. 主动从节点阵列获取
|
|
|
|
2. 被动从节点阵列收取
|
|
|
|
|
|
|
|
事件模型中, 当伺服节点产生事件, 向有限域传递事件
|
|
|
|
但由于传递过程时间有滞后, 无法保障事件发生顺序准确性
|
|
|
|
|
|
|
|
|
|
|
|
因而, 有因果勾连的事物须在唯一时空与媒介发生
|
|
|
|
不同节点并不能属于同一时空, 且节点本以在不同时空降低滞后性效用而存在, 以及隔离
|
|
|
|
|
|
|
|
|
|
|
|
小团体伺服节点在不同伺服器之间无感转移(媒介)
|
|
|
|
1. 媒介作为通讯会话, 可轻易建立与销毁
|
|
|
|
2. 伺服器作为沟通节点提供连接,如 websocket
|
|
|
|
3. 在节点与节点之间建立通信, 为媒介
|
|
|
|
4. 多个节点可能同时通信
|
|
|
|
5. 但效率不如此次会话所有终端连接同一伺服节点
|
|
|
|
6. 且算力是定量, 无论节点多少
|
|
|
|
|
|
|
|
### 使用示例
|
2021-07-26 19:12:47 +08:00
|
|
|
|