2017-12-13日更新
1.概述
1.1微服务架构
1.2服务端
1.2.1 NodeJS Server
1.2.1.1Common
Autostart.ts
class AutoStart extends BaseChildProcess
主要功能:
1)用于程序启动后,监听所有子线程Handle。
2) 用于程序启动后,检测该服务的子线程是否异常。如有异常捕获后重启。
3)用于程序启动后,监听子线程的console及其它打印输出情况。并且打印显示在控制台中。
监听ListenExitHandle
/**
* 重写 listenExitHandle 监听
*
* @protected
* @param {number} code
* @param {string} signal
* @memberof AutoStart
*/
protected listenExitHandle(code: number, signal: string): void
Stderr_Readable与Stdout_Readable监听 listenDataHandle
/**
* 监听数据-重写
*
* @protected
* @param {(string | Buffer)} chunk
* @memberof BaseReadable
*/
protected listenDataHandle(chunk: string | Buffer): void
自启修复功能
/**
* 自动启动
*
* @memberof autoStart
*/
public autostart(): void
BaseChildProcess.ts
class BaseChildProcess
主要功能:
1) creatSpwan 用于创建一个子线程,其中this._path是node 需要自动重启的可执行文件全路径如:
path: “D:\1_xxxx\xxx\code\xxxx\Nodejs\xxx\build\app.js”,
2) starListener用于启动线程的监听事件。
BaseNetServer.ts
class BaseNetServer
主要功能:
1) 启动监听socket事件。以便底层统一处理。
BaseReadable.ts
class BaseReadable
主要功能:
1) 启动监听 Readable事件。以便底层统一处理。
BaseThrift.ts
class BaseThrift
主要功能:
1) createServer 创建Thrift服务端。
2) createClient 创建Thrift 客户端。
3) createConnection 创建 Thrift connection,并监听。
4) addClientConnectionListener 添加connection 监听事件。
BaseZookeeper.ts
class BaseZookeeper
主要功能:
1) createClient 创建客户端,同时启动客户端监听。
2) startClientListener 启动客户端监听。
3) startSubscriberListener 启动发布订阅监听。
MSdbHelper.js
RedisClient.ts
class BaseRedis
主要功能:
1)startClientListener 启动客户端监听。
2)startSubscriberListener 启动发布订阅监听。
ServerPort.ts
class ServerPort
主要功能:
1) getIdlePort 获取空闲端口号及IP地址。
2) getIP 获取IP地址。(有多个IP地址会返回,请根据需要自行选择。返回多个IP地址为string[])
ThriftHelper.ts
ZookeeperHelper.ts
class ZookeeperHelper extends BaseZookeeper
主要功能:
1) register 注册服务器信息。(如:/xxxx/xxx/xxx/csdn.rpc/192.168.0.1:3389)
2) connect 连接服务器。
3) close 关闭连接。
4) create 注册节点信息。
5) remove 移除节点信息。
6) exists 是否存在该路径。
7) setData 设置数据。
8) getData 获取数据。
9) getPathServervices 获取zookeeper所有节点。
10) mkdirp 建立临时znode。
11) md_full_path 建立多级目录。(/xxx/xxx)
12) md 建立目录。
1.2.1.1BLL
RPC.ts
class RPC
主要功能:
1)thrift 业务逻辑的实现。
ZookeeperRPC
class ZookeeperRPC
主要功能:
1) register 注册服务器信息。
/**
* 注册服务器信息
*
* @param {string} path
* @param {Registration} reg
* @memberof zookeeperRPC
*/
public register(path: string, reg: Registration)
app.ts
主要功能:
1)createServer 启动thrift服务。
/**
* 启动服务
*
* @memberof app
*/
public createServer() {
this.serverPort.getIdlePort((port, ip) => {
console.log("请自行检查使用哪一个IP地址 IP:" + ip);
console.log(port);
let regip: string = (ip != undefined) ? ip[config.hostIP.select - 1] : "0.0.0.0";
var reg: Registration = {
servicenamespace: config.RPC.servicenamespace,
sessionid: "null",
ip: regip,
port: port,
boostpercent: 10
};
this.path = this.zookeeperRPC.stringFormat(config.RPC.path, config.RPC.servicenamespace) + "/" + reg.ip + ":" + reg.port;
//mypath = path;
console.log("建立路径:" + this.path);
this.zookeeperRPC.register(this.path, reg);
let thriftServer = new ThriftServer();
thriftServer.start(port);
console.log("启动!!!");
});
}
1.3 C#客户单
1.3.1 C#客户端公共类
详见:待优化
C#客户端公共类:
http://blog.csdn.net/gzy11/article/details/78502492
1.3.2 c#客户端实现
详见: 待优化
C#客户端实现:http://blog.csdn.net/gzy11/article/details/78503015
1.4 JAVA 客户端
详见:待优化
JAVA客户端:http://blog.csdn.net/gzy11/article/details/78680223
1.5 Python 客户端
详见:待优化
Python客户端:http://blog.csdn.net/gzy11/article/details/78793734
1.6 Nodejs 客户端
2 监视及预警 typescript
待续……
目录
1概述
1.1整体架构图
2服务端
2.1Nodejs服务端
2.1.1配置文件
2.1.1.1config.js
2.1.2common
2.1.2.1AutoSart.ts
2.1.2.2BaseChildProcess.ts
2.1.2.3BaseNetServer.ts
2.1.2.4BaseReadable.ts
2.1.2.5BaseThrift.ts
2.1.2.6BaseZookeeper.ts
2.1.2.7MSdbHelper.js
2.1.2.8RedisClient.ts
2.1.2.9ServerPort.ts
2.1.2.10ThriftHelper.ts
2.1.2.11ZookeeperHelper.ts
2.1.3BLL
2.1.3.1RPC.ts
2.1.3.2App.ts
2.1.3.3AutoServer.ts
2.1.3.4ThriftServer.ts
2.1.3Gen-nodejs
3如何使用开发thrift服务
3.1必要步骤
3.2config更改
3.3代码的替换与开发
4、调试