jetstream-api 0.6.9__tar.gz → 0.6.11__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {jetstream_api-0.6.9 → jetstream_api-0.6.11}/PKG-INFO +28 -1
- {jetstream_api-0.6.9 → jetstream_api-0.6.11}/README.md +27 -0
- {jetstream_api-0.6.9 → jetstream_api-0.6.11}/ilink/__init__.py +1 -1
- {jetstream_api-0.6.9 → jetstream_api-0.6.11}/ilink/admin.py +228 -613
- {jetstream_api-0.6.9 → jetstream_api-0.6.11}/ilink/common.py +24 -26
- {jetstream_api-0.6.9 → jetstream_api-0.6.11}/ilink/connectivity.py +61 -1
- {jetstream_api-0.6.9 → jetstream_api-0.6.11}/ilink/msg.py +19 -0
- {jetstream_api-0.6.9 → jetstream_api-0.6.11}/ilink/producer.py +117 -11
- {jetstream_api-0.6.9 → jetstream_api-0.6.11}/ilink/properties.py +570 -895
- {jetstream_api-0.6.9 → jetstream_api-0.6.11}/ilink/qmgr.py +37 -0
- {jetstream_api-0.6.9 → jetstream_api-0.6.11}/jetstream_api.egg-info/PKG-INFO +28 -1
- {jetstream_api-0.6.9 → jetstream_api-0.6.11}/pyproject.toml +1 -1
- {jetstream_api-0.6.9 → jetstream_api-0.6.11}/LICENSE.txt +0 -0
- {jetstream_api-0.6.9 → jetstream_api-0.6.11}/ilink/admintopic.py +0 -0
- {jetstream_api-0.6.9 → jetstream_api-0.6.11}/ilink/exception.py +0 -0
- {jetstream_api-0.6.9 → jetstream_api-0.6.11}/ilink/partitioner.py +0 -0
- {jetstream_api-0.6.9 → jetstream_api-0.6.11}/ilink/pattern.py +0 -0
- {jetstream_api-0.6.9 → jetstream_api-0.6.11}/ilink/py.typed +0 -0
- {jetstream_api-0.6.9 → jetstream_api-0.6.11}/ilink/topic.py +0 -0
- {jetstream_api-0.6.9 → jetstream_api-0.6.11}/ilink/util.py +0 -0
- {jetstream_api-0.6.9 → jetstream_api-0.6.11}/jetstream_api.egg-info/SOURCES.txt +0 -0
- {jetstream_api-0.6.9 → jetstream_api-0.6.11}/jetstream_api.egg-info/dependency_links.txt +0 -0
- {jetstream_api-0.6.9 → jetstream_api-0.6.11}/jetstream_api.egg-info/requires.txt +0 -0
- {jetstream_api-0.6.9 → jetstream_api-0.6.11}/jetstream_api.egg-info/top_level.txt +0 -0
- {jetstream_api-0.6.9 → jetstream_api-0.6.11}/setup.cfg +0 -0
- {jetstream_api-0.6.9 → jetstream_api-0.6.11}/tests/test_example.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: jetstream-api
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.11
|
|
4
4
|
Summary: Python client API for iLink M.O.M. (Message Oriented Middleware)
|
|
5
5
|
Author: snowjeans
|
|
6
6
|
License: Boost Software License - Version 1.0 - August 17th, 2003
|
|
@@ -54,6 +54,33 @@ Python으로 작성된 ILink 클라이언트 API입니다.
|
|
|
54
54
|
## 설치 방법
|
|
55
55
|
pip install jetstream-api
|
|
56
56
|
|
|
57
|
+
## 0.6.11 변경 - 메시지 크기 상한(기본 128MiB), 재시도 보호, 클러스터 편의 개선
|
|
58
|
+
|
|
59
|
+
- **메시지(프레임) 크기 상한의 기본값이 128MiB 입니다**(엔진 `Runtime@MaxFrameLength` 기본과 같습니다). 넘는 메시지는 **보내기 전에** `MIMQE_MSG_SIZE_OVER` 로 막고 연결은 그대로 둡니다.
|
|
60
|
+
- 엔진은 서버의 상한을 알려 주지 않습니다. 서버에서 상한을 올렸다면 클라이언트도 같이 올리십시오 - 연결은 `setMaxFrameLength(n)`(`ILQmgr` / `ILAdminService`), producer 는 `ILProducerConfig.maxFrameLength(n)` 입니다. 범위는 1,048,576 ~ 999,999,999 입니다.
|
|
61
|
+
- producer 레코드 한 건의 실제 상한은 `maxRequestSize` 와 `maxFrameLength - 25`(헤더) 중 작은 쪽입니다.
|
|
62
|
+
- **재시도 보호**: 1MiB 를 넘는 레코드를 보낸 직후 응답 없이 연결이 **연속 2번** 끊기면, producer 는 재시도를 멈추고 그 레코드를 `MIMQE_MSG_SIZE_OVER` 로 실패시킵니다. 서버 상한이 클라이언트 설정보다 작을 때 같은 큰 레코드를 시한이 다할 때까지 되풀이해 보내지 않게 하려는 것입니다. 큰 레코드는 따로 보내므로 옆 레코드는 영향을 받지 않습니다.
|
|
63
|
+
- `ILClusterNode("QM1", "10.0.0.12", 21001, 27091)` 처럼 자바와 같은 순서로 만들 수 있습니다(`ILClusterProperty("C1", 27091)` 도 같습니다).
|
|
64
|
+
- `getAuthorityHolderType()` 은 권한 보유자를 `"MAIN"` / `"SUB"` / `""` 로 줍니다. `getAuthorityHolder()` 는 선 코드(`"M"` / `"S"`)라 `clusterType` 과 바로 비교하면 늘 거짓입니다.
|
|
65
|
+
|
|
66
|
+
★ 엔진 7.0.1.3404 전에는 엔진 쪽 상한이 999,999,999 였습니다. 그런 엔진에 128MiB 를 넘는 메시지를 보내려면 위 설정을 올리십시오.
|
|
67
|
+
|
|
68
|
+
## 0.6.10 변경 - 클러스터 관리 API 를 판사/조정자 모델로 (클러스터는 엔진 7.0.1.3391 이상)
|
|
69
|
+
|
|
70
|
+
클러스터 하나는 관리 서비스 셋(판사 · MAIN · SUB)에 **각자 정의를 만듭니다.** 한 서비스에 만들면 나머지에 퍼지던 옛 방식은 엔진에서 없어졌습니다.
|
|
71
|
+
|
|
72
|
+
- 정의는 `ILClusterProperty.judge(name, main, sub, ilcc_port)` 와 `ILClusterProperty.coordinator(name, "MAIN" 또는 "SUB", ilcc_port)` 로 만들고, 세 서비스에서 각각 `createCluster(정의)` 합니다.
|
|
73
|
+
- 노드(`ILClusterNode`)에 그 호스트 조정자의 `ilcc_port` 를 싣습니다. 판사 정의와 그 조정자 정의 **두 곳에 같은 값**을 적습니다.
|
|
74
|
+
- `setClusterProperty` 로 바꿀 수 있는 것은 자동 기동(어디서나)과 하트비트(판사에서만)뿐입니다. 타입 · ilcc 포트 · 노드를 바꾸려면 세 곳에서 지우고 다시 만듭니다.
|
|
75
|
+
- `removeCluster` / `startCluster` / `stopCluster` 는 **접속한 서비스만** 다룹니다. 떠 있어도 지워집니다. `stopCluster` 는 정지를 기다리지 않으므로, 곧바로 다시 띄우려면 상태가 `STOPPED` 인지 먼저 확인하십시오.
|
|
76
|
+
- `getClusterDefDiag` 는 새 본문(FORMAT 2)을 읽습니다. 판사에 물으면 두 조정자의 상태가, 조정자에 물으면 판사와의 관계가 옵니다.
|
|
77
|
+
- 기동/정지 실패 사유가 "-1" 대신 엔진이 준 사유로 올라옵니다.
|
|
78
|
+
- **없어진 API**: `addClusterNode` / `removeClusterNode`, `getLastClusterWarning`, 이름 · 포트로 만드는 `createCluster` 형태, `ILClusterProperty` 의 `priSvc` · `secSvc` · `witSvc` · 세 포트 · `role` · `add_node` · `remove_node`, 옛 진단 접근자(`getLocal`, `getLocalAddress`, `isMissing`, `hasAgreement` 등), 상수 `CLUSTER_NO_NODES_MIN_REVISION` · `CLUSTER_DEFDIAG_MAX_FORMAT` · `CLUSTER_DEFDIAG_MAX_ELAPSED_MS`.
|
|
79
|
+
|
|
80
|
+
그 밖:
|
|
81
|
+
|
|
82
|
+
- 프레임 길이가 999,999,999 바이트를 넘으면 **보내기 전에** `MIMQE_MSG_SIZE_OVER` 로 막습니다. 엔진은 그런 프레임을 받으면 사유 없이 연결을 끊습니다. `maxRequestSize` 는 999,999,974 를 넘지 않게 보정됩니다.
|
|
83
|
+
|
|
57
84
|
## 0.6.9 변경 - 파티션을 클라이언트가 정한다 (엔진 7.0.1.3401 이상 필요)
|
|
58
85
|
|
|
59
86
|
엔진이 더는 파티션을 고르지 않습니다. 이 판부터 producer 와 관리 API 단건 발행이 파티션을 정해 보냅니다(Kafka 와 같은 방식).
|
|
@@ -8,6 +8,33 @@ Python으로 작성된 ILink 클라이언트 API입니다.
|
|
|
8
8
|
## 설치 방법
|
|
9
9
|
pip install jetstream-api
|
|
10
10
|
|
|
11
|
+
## 0.6.11 변경 - 메시지 크기 상한(기본 128MiB), 재시도 보호, 클러스터 편의 개선
|
|
12
|
+
|
|
13
|
+
- **메시지(프레임) 크기 상한의 기본값이 128MiB 입니다**(엔진 `Runtime@MaxFrameLength` 기본과 같습니다). 넘는 메시지는 **보내기 전에** `MIMQE_MSG_SIZE_OVER` 로 막고 연결은 그대로 둡니다.
|
|
14
|
+
- 엔진은 서버의 상한을 알려 주지 않습니다. 서버에서 상한을 올렸다면 클라이언트도 같이 올리십시오 - 연결은 `setMaxFrameLength(n)`(`ILQmgr` / `ILAdminService`), producer 는 `ILProducerConfig.maxFrameLength(n)` 입니다. 범위는 1,048,576 ~ 999,999,999 입니다.
|
|
15
|
+
- producer 레코드 한 건의 실제 상한은 `maxRequestSize` 와 `maxFrameLength - 25`(헤더) 중 작은 쪽입니다.
|
|
16
|
+
- **재시도 보호**: 1MiB 를 넘는 레코드를 보낸 직후 응답 없이 연결이 **연속 2번** 끊기면, producer 는 재시도를 멈추고 그 레코드를 `MIMQE_MSG_SIZE_OVER` 로 실패시킵니다. 서버 상한이 클라이언트 설정보다 작을 때 같은 큰 레코드를 시한이 다할 때까지 되풀이해 보내지 않게 하려는 것입니다. 큰 레코드는 따로 보내므로 옆 레코드는 영향을 받지 않습니다.
|
|
17
|
+
- `ILClusterNode("QM1", "10.0.0.12", 21001, 27091)` 처럼 자바와 같은 순서로 만들 수 있습니다(`ILClusterProperty("C1", 27091)` 도 같습니다).
|
|
18
|
+
- `getAuthorityHolderType()` 은 권한 보유자를 `"MAIN"` / `"SUB"` / `""` 로 줍니다. `getAuthorityHolder()` 는 선 코드(`"M"` / `"S"`)라 `clusterType` 과 바로 비교하면 늘 거짓입니다.
|
|
19
|
+
|
|
20
|
+
★ 엔진 7.0.1.3404 전에는 엔진 쪽 상한이 999,999,999 였습니다. 그런 엔진에 128MiB 를 넘는 메시지를 보내려면 위 설정을 올리십시오.
|
|
21
|
+
|
|
22
|
+
## 0.6.10 변경 - 클러스터 관리 API 를 판사/조정자 모델로 (클러스터는 엔진 7.0.1.3391 이상)
|
|
23
|
+
|
|
24
|
+
클러스터 하나는 관리 서비스 셋(판사 · MAIN · SUB)에 **각자 정의를 만듭니다.** 한 서비스에 만들면 나머지에 퍼지던 옛 방식은 엔진에서 없어졌습니다.
|
|
25
|
+
|
|
26
|
+
- 정의는 `ILClusterProperty.judge(name, main, sub, ilcc_port)` 와 `ILClusterProperty.coordinator(name, "MAIN" 또는 "SUB", ilcc_port)` 로 만들고, 세 서비스에서 각각 `createCluster(정의)` 합니다.
|
|
27
|
+
- 노드(`ILClusterNode`)에 그 호스트 조정자의 `ilcc_port` 를 싣습니다. 판사 정의와 그 조정자 정의 **두 곳에 같은 값**을 적습니다.
|
|
28
|
+
- `setClusterProperty` 로 바꿀 수 있는 것은 자동 기동(어디서나)과 하트비트(판사에서만)뿐입니다. 타입 · ilcc 포트 · 노드를 바꾸려면 세 곳에서 지우고 다시 만듭니다.
|
|
29
|
+
- `removeCluster` / `startCluster` / `stopCluster` 는 **접속한 서비스만** 다룹니다. 떠 있어도 지워집니다. `stopCluster` 는 정지를 기다리지 않으므로, 곧바로 다시 띄우려면 상태가 `STOPPED` 인지 먼저 확인하십시오.
|
|
30
|
+
- `getClusterDefDiag` 는 새 본문(FORMAT 2)을 읽습니다. 판사에 물으면 두 조정자의 상태가, 조정자에 물으면 판사와의 관계가 옵니다.
|
|
31
|
+
- 기동/정지 실패 사유가 "-1" 대신 엔진이 준 사유로 올라옵니다.
|
|
32
|
+
- **없어진 API**: `addClusterNode` / `removeClusterNode`, `getLastClusterWarning`, 이름 · 포트로 만드는 `createCluster` 형태, `ILClusterProperty` 의 `priSvc` · `secSvc` · `witSvc` · 세 포트 · `role` · `add_node` · `remove_node`, 옛 진단 접근자(`getLocal`, `getLocalAddress`, `isMissing`, `hasAgreement` 등), 상수 `CLUSTER_NO_NODES_MIN_REVISION` · `CLUSTER_DEFDIAG_MAX_FORMAT` · `CLUSTER_DEFDIAG_MAX_ELAPSED_MS`.
|
|
33
|
+
|
|
34
|
+
그 밖:
|
|
35
|
+
|
|
36
|
+
- 프레임 길이가 999,999,999 바이트를 넘으면 **보내기 전에** `MIMQE_MSG_SIZE_OVER` 로 막습니다. 엔진은 그런 프레임을 받으면 사유 없이 연결을 끊습니다. `maxRequestSize` 는 999,999,974 를 넘지 않게 보정됩니다.
|
|
37
|
+
|
|
11
38
|
## 0.6.9 변경 - 파티션을 클라이언트가 정한다 (엔진 7.0.1.3401 이상 필요)
|
|
12
39
|
|
|
13
40
|
엔진이 더는 파티션을 고르지 않습니다. 이 판부터 producer 와 관리 API 단건 발행이 파티션을 정해 보냅니다(Kafka 와 같은 방식).
|