auto commit
This commit is contained in:
15
README.md
15
README.md
@@ -166,12 +166,21 @@ ID示例(基于默认配置):
|
||||
7.不要修改核心算法。本算法内部参数较多,逻辑较为复杂,在你尚未掌握核心逻辑时,请勿尝试修改核心代码且用于生产环境,除非通过大量细致、科学的测试验证。
|
||||
|
||||
|
||||
#### 自动/手动 设置 WorkerId
|
||||
#### 自动注册WorkerId
|
||||
|
||||
1.如果Id生成服务是明确的,可在初始化时,手动设置 WorkerId。
|
||||
本算法提供一个开源的动态库(go实现),能在容器k8s环境下,通过 redis 自动注册 WorkerId。动态库提供的C接口方法有:
|
||||
```
|
||||
|
||||
2.如果Id生成服务是不明确的,如容器环境:动态的、自动执行、生命周期完全自动化,可在初始化时通过Redis,自动申请 WorkerId,详见“Tools/AutoRegisterWorkerId”
|
||||
// 注册一个新的WorkerId
|
||||
extern __declspec(dllexport) GoInt RegisterWorkerId(char* ip, GoInt port, char* password, GoInt maxWorkerId);
|
||||
|
||||
// 注销WorkerId
|
||||
extern __declspec(dllexport) void UnRegisterWorkerId();
|
||||
|
||||
// 检查本地WorkerId是否有效
|
||||
extern __declspec(dllexport) GoUint8 ValidateLocalWorkerId(GoInt workerId);
|
||||
|
||||
```
|
||||
|
||||
|
||||
#### 其它分布式集成
|
||||
|
||||
83
Tools/AutoRegisterWorkerId/lib/yitidgengo.h
Normal file
83
Tools/AutoRegisterWorkerId/lib/yitidgengo.h
Normal file
@@ -0,0 +1,83 @@
|
||||
/* Code generated by cmd/cgo; DO NOT EDIT. */
|
||||
|
||||
/* package command-line-arguments */
|
||||
|
||||
|
||||
#line 1 "cgo-builtin-export-prolog"
|
||||
|
||||
#include <stddef.h> /* for ptrdiff_t below */
|
||||
|
||||
#ifndef GO_CGO_EXPORT_PROLOGUE_H
|
||||
#define GO_CGO_EXPORT_PROLOGUE_H
|
||||
|
||||
#ifndef GO_CGO_GOSTRING_TYPEDEF
|
||||
typedef struct { const char *p; ptrdiff_t n; } _GoString_;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
/* Start of preamble from import "C" comments. */
|
||||
|
||||
|
||||
|
||||
|
||||
/* End of preamble from import "C" comments. */
|
||||
|
||||
|
||||
/* Start of boilerplate cgo prologue. */
|
||||
#line 1 "cgo-gcc-export-header-prolog"
|
||||
|
||||
#ifndef GO_CGO_PROLOGUE_H
|
||||
#define GO_CGO_PROLOGUE_H
|
||||
|
||||
typedef signed char GoInt8;
|
||||
typedef unsigned char GoUint8;
|
||||
typedef short GoInt16;
|
||||
typedef unsigned short GoUint16;
|
||||
typedef int GoInt32;
|
||||
typedef unsigned int GoUint32;
|
||||
typedef long long GoInt64;
|
||||
typedef unsigned long long GoUint64;
|
||||
typedef GoInt64 GoInt;
|
||||
typedef GoUint64 GoUint;
|
||||
typedef __SIZE_TYPE__ GoUintptr;
|
||||
typedef float GoFloat32;
|
||||
typedef double GoFloat64;
|
||||
typedef float _Complex GoComplex64;
|
||||
typedef double _Complex GoComplex128;
|
||||
|
||||
/*
|
||||
static assertion to make sure the file is being used on architecture
|
||||
at least with matching size of GoInt.
|
||||
*/
|
||||
typedef char _check_for_64_bit_pointer_matching_GoInt[sizeof(void*)==64/8 ? 1:-1];
|
||||
|
||||
#ifndef GO_CGO_GOSTRING_TYPEDEF
|
||||
typedef _GoString_ GoString;
|
||||
#endif
|
||||
typedef void *GoMap;
|
||||
typedef void *GoChan;
|
||||
typedef struct { void *t; void *v; } GoInterface;
|
||||
typedef struct { void *data; GoInt len; GoInt cap; } GoSlice;
|
||||
|
||||
#endif
|
||||
|
||||
/* End of boilerplate cgo prologue. */
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
// 注册一个新的WorkerId
|
||||
extern __declspec(dllexport) GoInt RegisterWorkerId(char* ip, GoInt port, char* password, GoInt maxWorkerId);
|
||||
|
||||
// 注销WorkerId
|
||||
extern __declspec(dllexport) void UnRegisterWorkerId();
|
||||
|
||||
// 检查本地WorkerId是否有效
|
||||
extern __declspec(dllexport) GoUint8 ValidateLocalWorkerId(GoInt workerId);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
BIN
Tools/FFI for Python-Node-PHP/lib/yitidgen.dll
Normal file
BIN
Tools/FFI for Python-Node-PHP/lib/yitidgen.dll
Normal file
Binary file not shown.
Reference in New Issue
Block a user