Skip to content

Commit 4a87dc0

Browse files
committed
chore(deps): 升级依赖版本并优化ES客户端连接逻辑
- 升级部分包依赖 - 优化 logger 中的 ES 客户端初始化逻辑,支持多版本自动适配(es7,8,9) - 移除 eureka.py 中无用的 pass 语句 - 更新 README.md 中的 Docker 镜像标签至 v2.7.6
1 parent 2886980 commit 4a87dc0

File tree

4 files changed

+35
-9
lines changed

4 files changed

+35
-9
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ gateway等网关插件的高扩展性
99
### 通过docker运行
1010

1111
```bash
12-
docker run anjia0532/discovery-syncer-python:v2.7.5
12+
docker run anjia0532/discovery-syncer-python:v2.7.6
1313
```
1414

1515
特别的,`-c ` 支持配置远端http[s]的地址,比如读取静态资源的,比如读取nacos的

app/service/discovery/eureka.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ def modify_registration(self, registration: Registration, instances: List[Instan
5050
# PUT /eureka/v2/apps/appID/instanceID/status?value=OUT_OF_SERVICE
5151
self.eureka_execute(method="PUT", params={"value": eureka_status.get(instance.enabled, "UP")},
5252
uri=f"/{registration.service_name}/{instance.ext.get('instanceId')}/status")
53-
pass
5453

5554
def get_instances(self, instance_array: List, enabled_only: bool = True) -> List[Instance]:
5655

core/lib/logger.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,12 +194,36 @@ def __init__(self, elastic_hosts: list, elastic_port, index_prefix='pylog-'):
194194
logging.Handler.__init__(self)
195195
from elasticsearch import Elasticsearch, helpers
196196
self._helpers = helpers
197-
self._es_client = Elasticsearch(elastic_hosts, )
197+
self._es_client = self.get_es_client(elastic_hosts, )
198+
198199
self._index_prefix = index_prefix
199200
t = Thread(target=self._do_bulk_op)
200201
t.setDaemon(True)
201202
t.start()
202203

204+
def get_es_client(self, elastic_hosts):
205+
from elasticsearch7 import Elasticsearch as Elasticsearch7
206+
from elasticsearch8 import Elasticsearch as Elasticsearch8
207+
from elasticsearch9 import Elasticsearch as Elasticsearch9
208+
209+
es_versions = [
210+
(Elasticsearch9, "Elasticsearch 9"),
211+
(Elasticsearch8, "Elasticsearch 8"),
212+
(Elasticsearch7, "Elasticsearch 7")
213+
]
214+
215+
for es_class, version_name in es_versions:
216+
try:
217+
es_client = es_class(elastic_hosts)
218+
# 测试连接
219+
if es_client.info():
220+
very_nb_print(f"成功连接到 {version_name}")
221+
return es_client
222+
except Exception as e:
223+
very_nb_print(f"尝试连接 {version_name} 失败: {e}")
224+
225+
raise Exception(f"Unsupported ES version: {version}")
226+
203227
@classmethod
204228
def __add_task_to_bulk(cls, task):
205229
cls.task_queue.put(task)

requirements.txt

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
fastapi==0.117.1
1+
fastapi==0.121.1
22
python-dotenv==1.1.1
33
typing-extensions==4.15.0
4-
uvicorn[standard]==0.36.0
4+
uvicorn[standard]==0.38.0
5+
PyYAML==6.0.3
56
pytest==8.4.2
67
# pytest-cov==5.0.0
78
# pytest-html==4.1.1
@@ -12,14 +13,16 @@ BeautifulReport==0.1.3
1213
# aiocache~=0.12.2
1314
# databases==0.9.0
1415
# asyncpg==0.29.0
15-
funboost==50.3
16-
pydantic-settings==2.10.1
16+
funboost==50.4
17+
pydantic-settings==2.12.0
1718
persist-queue[extra]
18-
db-libs==1.1
19+
db-libs==1.2
1920
nb-time
2021
pydantic-yaml==1.6.0
2122
cachetools==6.2.0
2223
async-timeout==5.0.1
2324
SQLAlchemy==2.0.43
24-
elasticsearch==8.19.1
25+
elasticsearch9
26+
elasticsearch8
27+
elasticsearch7
2528
PyMySQL==1.1.2

0 commit comments

Comments
 (0)