Linux下TA_Lib安装失败的问题处理
Linux下TA_Lib安装失败的问题处理
TA_Lib是python的量化指标库,其中包含了很多150多种量化指标 ,量化分析中经常使用。
This is a Python wrapper for TA-LIB based on Cython instead of SWIG.
From the homepage:TA-Lib is widely used by trading software developers requiring to
perform technical analysis of financial market data.Includes 150+ indicators such as ADX, MACD, RSI, Stochastic, Bollinger
Bands, etc. Candlestick pattern recognition Open-source API for C/C++,
Java, Perl, Python and 100% Managed .NET
1.环境
在Linux下用的conda
Python 的版本是V3.8
# python -V
Python 3.8.13
conda的版本V4.5.11
# conda infoactive environment : nlpactive env location : /root/anaconda3/envs/nlpshell level : 2user config file : /root/.condarcpopulated config files : /root/.condarcconda version : 4.5.11conda-build version : 3.15.1python version : 3.7.0.final.0base environment : /root/anaconda3 (writable)channel URLs : https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/noarchhttps://repo.anaconda.com/pkgs/main/linux-64https://repo.anaconda.com/pkgs/main/noarchhttps://repo.anaconda.com/pkgs/free/linux-64https://repo.anaconda.com/pkgs/free/noarchhttps://repo.anaconda.com/pkgs/r/linux-64https://repo.anaconda.com/pkgs/r/noarchhttps://repo.anaconda.com/pkgs/pro/linux-64https://repo.anaconda.com/pkgs/pro/noarchpackage cache : /root/anaconda3/pkgs/root/.conda/pkgsenvs directories : /root/anaconda3/envs/root/.conda/envsplatform : linux-64user-agent : conda/4.5.11 requests/2.28.2 CPython/3.7.0 Linux/3.10.0-327.el7.x86_64 centos/7 glibc/2.17UID:GID : 0:0netrc file : Noneoffline mode : False
2.错误信息
直接用pip安装
# pip install TA_Lib
Looking in indexes: https://pypi.douban.com/simple/
Collecting TA_LibDownloading https://pypi.doubanio.com/packages/39/6f/6acaee2eac6afb2cc6a2adcb294080577f9983fbd2726395b9047c4e13ec/TA-Lib-0.4.26.tar.gz (272 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 272.6/272.6 kB 972.6 kB/s eta 0:00:00Installing build dependencies ... doneGetting requirements to build wheel ... doneInstalling backend dependencies ... donePreparing metadata (pyproject.toml) ... done
Requirement already satisfied: numpy in ./anaconda3/envs/nlp/lib/python3.8/site-packages (from TA_Lib) (1.23.5)
Building wheels for collected packages: TA_LibBuilding wheel for TA_Lib (pyproject.toml) ... errorerror: subprocess-exited-with-error× Building wheel for TA_Lib (pyproject.toml) did not run successfully.│ exit code: 1╰─> [27 lines of output]running bdist_wheelrunning buildrunning build_pycreating buildcreating build/lib.linux-x86_64-cpython-38creating build/lib.linux-x86_64-cpython-38/talibcopying talib/__init__.py -> build/lib.linux-x86_64-cpython-38/talibcopying talib/abstract.py -> build/lib.linux-x86_64-cpython-38/talibcopying talib/deprecated.py -> build/lib.linux-x86_64-cpython-38/talibcopying talib/stream.py -> build/lib.linux-x86_64-cpython-38/talibcopying talib/test_abstract.py -> build/lib.linux-x86_64-cpython-38/talibcopying talib/test_data.py -> build/lib.linux-x86_64-cpython-38/talibcopying talib/test_func.py -> build/lib.linux-x86_64-cpython-38/talibcopying talib/test_pandas.py -> build/lib.linux-x86_64-cpython-38/talibcopying talib/test_polars.py -> build/lib.linux-x86_64-cpython-38/talibcopying talib/test_stream.py -> build/lib.linux-x86_64-cpython-38/talibrunning build_extbuilding 'talib._ta_lib' extensioncreating build/temp.linux-x86_64-cpython-38creating build/temp.linux-x86_64-cpython-38/talibgcc -pthread -B /root/anaconda3/envs/nlp/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/usr/include -I/usr/local/include -I/opt/include -I/opt/local/include -I/opt/homebrew/include -I/opt/homebrew/opt/ta-lib/include -I/tmp/pip-build-env-lmazfngv/normal/lib/python3.8/site-packages/numpy/core/include -I/root/anaconda3/envs/nlp/include/python3.8 -c talib/_ta_lib.c -o build/temp.linux-x86_64-cpython-38/talib/_ta_lib.otalib/_ta_lib.c:747:28: fatal error: ta-lib/ta_defs.h: No such file or directory#include "ta-lib/ta_defs.h"^compilation terminated.<string>:77: UserWarning: Cannot find ta-lib library, installation may fail.error: command '/usr/bin/gcc' failed with exit code 1[end of output]note: This error originates from a subprocess, and is likely not a problem with pip.ERROR: Failed building wheel for TA_Lib
Failed to build TA_Lib
ERROR: Could not build wheels for TA_Lib, which is required to install pyproject.toml-based projects
github介绍TA-Lib
TA-Lib中包含的原始Python绑定使用SWIG,不幸的是,SWIG很难安装,而且效率也不如预期。
按推荐的安装方法用:
conda install -c conda-forge ta-lib
安装成功,效果如下:
conda install -c conda-forge ta-lib
Solving environment: done==> WARNING: A newer version of conda exists. <==current version: 4.5.11latest version: 23.7.2Please update conda by running$ conda update -n base -c defaults conda## Package Plan ##environment location: /root/anaconda3/envs/nlpadded / updated specs: - ta-libThe following packages will be downloaded:package | build---------------------------|-----------------python_abi-3.8 | 2_cp38 4 KB conda-forge_libgcc_mutex-0.1 | conda_forge 3 KB conda-forgelibta-lib-0.4.0 | h166bdaf_1 517 KB conda-forgelibuuid-2.32.1 | h7f98852_1000 28 KB conda-forgelibgfortran5-12.2.0 | h337968e_19 1.8 MB conda-forgebzip2-1.0.8 | h7f98852_4 484 KB conda-forge_openmp_mutex-4.5 | 2_gnu 23 KB conda-forgelibgfortran-ng-12.2.0 | h69a702a_19 22 KB conda-forgelibblas-3.9.0 |16_linux64_openblas 13 KB conda-forgelibzlib-1.2.12 | h166bdaf_2 63 KB conda-forgelibnsl-2.0.0 | h7f98852_0 31 KB conda-forgeliblapack-3.9.0 |16_linux64_openblas 13 KB conda-forgelibgcc-ng-12.2.0 | h65d4601_19 931 KB conda-forgelibffi-3.4.2 | h7f98852_5 57 KB conda-forgelibgomp-12.2.0 | h65d4601_19 455 KB conda-forgeopenssl-3.0.7 | h166bdaf_0 2.8 MB conda-forgeta-lib-0.4.19 | py38h71d37f0_4 398 KB conda-forgeca-certificates-2022.9.24 | ha878542_0 150 KB conda-forgelibopenblas-0.3.21 |pthreads_h78a6416_3 10.1 MB conda-forgepython-3.8.13 |ha86cf86_0_cpython 25.2 MB conda-forgenumpy-1.21.4 | py38he2449b9_0 6.2 MB conda-forgelibcblas-3.9.0 |16_linux64_openblas 13 KB conda-forge------------------------------------------------------------Total: 49.2 MBThe following NEW packages will be INSTALLED:_openmp_mutex: 4.5-2_gnu conda-forgebzip2: 1.0.8-h7f98852_4 conda-forgelibblas: 3.9.0-16_linux64_openblas conda-forgelibcblas: 3.9.0-16_linux64_openblas conda-forgelibgfortran-ng: 12.2.0-h69a702a_19 conda-forgelibgfortran5: 12.2.0-h337968e_19 conda-forgelibgomp: 12.2.0-h65d4601_19 conda-forgeliblapack: 3.9.0-16_linux64_openblas conda-forgelibnsl: 2.0.0-h7f98852_0 conda-forgelibopenblas: 0.3.21-pthreads_h78a6416_3 conda-forgelibta-lib: 0.4.0-h166bdaf_1 conda-forgelibuuid: 2.32.1-h7f98852_1000 conda-forgelibzlib: 1.2.12-h166bdaf_2 conda-forgenumpy: 1.21.4-py38he2449b9_0 conda-forgepython_abi: 3.8-2_cp38 conda-forgeta-lib: 0.4.19-py38h71d37f0_4 conda-forgeThe following packages will be UPDATED:_libgcc_mutex: 0.1-main --> 0.1-conda_forge conda-forgelibffi: 3.3-he6710b0_2 --> 3.4.2-h7f98852_5 conda-forgelibgcc-ng: 9.1.0-hdf63c60_0 --> 12.2.0-h65d4601_19 conda-forgeopenssl: 1.1.1t-h7f8727e_0 --> 3.0.7-h166bdaf_0 conda-forgepython: 3.8.13-h12debd9_0 --> 3.8.13-ha86cf86_0_cpython conda-forgeThe following packages will be DOWNGRADED:ca-certificates: 2023.01.10-h06a4308_0 --> 2022.9.24-ha878542_0 conda-forgeProceed ([y]/n)? yDownloading and Extracting Packages
python_abi-3.8 | 4 KB | ######################################################################################### | 100%
_libgcc_mutex-0.1 | 3 KB | ######################################################################################### | 100%
libta-lib-0.4.0 | 517 KB | ######################################################################################### | 100%
libuuid-2.32.1 | 28 KB | ######################################################################################### | 100%
libgfortran5-12.2.0 | 1.8 MB | ######################################################################################### | 100%
bzip2-1.0.8 | 484 KB | ######################################################################################### | 100%
_openmp_mutex-4.5 | 23 KB | ######################################################################################### | 100%
libgfortran-ng-12.2. | 22 KB | ######################################################################################### | 100%
libblas-3.9.0 | 13 KB | ######################################################################################### | 100%
libzlib-1.2.12 | 63 KB | ######################################################################################### | 100%
libnsl-2.0.0 | 31 KB | ######################################################################################### | 100%
liblapack-3.9.0 | 13 KB | ######################################################################################### | 100%
libgcc-ng-12.2.0 | 931 KB | ######################################################################################### | 100%
libffi-3.4.2 | 57 KB | ######################################################################################### | 100%
libgomp-12.2.0 | 455 KB | ######################################################################################### | 100%
openssl-3.0.7 | 2.8 MB | ######################################################################################### | 100%
ta-lib-0.4.19 | 398 KB | ######################################################################################### | 100%
ca-certificates-2022 | 150 KB | ######################################################################################### | 100%
libopenblas-0.3.21 | 10.1 MB | ######################################################################################### | 100%
python-3.8.13 | 25.2 MB | ######################################################################################### | 100%
numpy-1.21.4 | 6.2 MB | ######################################################################################### | 100%
libcblas-3.9.0 | 13 KB | ######################################################################################### | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
3.验证
查看talib 的方法函数:
import talib
#按组输入talib的方法,返回是字典
content=talib.get_function_groups()
#返回元组
for item in content.items():#遍历元组for k in item:print(k)
输出:
Cycle Indicators
['HT_DCPERIOD', 'HT_DCPHASE', 'HT_PHASOR', 'HT_SINE', 'HT_TRENDMODE']
Math Operators
['ADD', 'DIV', 'MAX', 'MAXINDEX', 'MIN', 'MININDEX', 'MINMAX', 'MINMAXINDEX', 'MULT', 'SUB', 'SUM']
Math Transform
['ACOS', 'ASIN', 'ATAN', 'CEIL', 'COS', 'COSH', 'EXP', 'FLOOR', 'LN', 'LOG10', 'SIN', 'SINH', 'SQRT', 'TAN', 'TANH']
Momentum Indicators
['ADX', 'ADXR', 'APO', 'AROON', 'AROONOSC', 'BOP', 'CCI', 'CMO', 'DX', 'MACD', 'MACDEXT', 'MACDFIX', 'MFI', 'MINUS_DI', 'MINUS_DM', 'MOM', 'PLUS_DI', 'PLUS_DM', 'PPO', 'ROC', 'ROCP', 'ROCR', 'ROCR100', 'RSI', 'STOCH', 'STOCHF', 'STOCHRSI', 'TRIX', 'ULTOSC', 'WILLR']
Overlap Studies
['BBANDS', 'DEMA', 'EMA', 'HT_TRENDLINE', 'KAMA', 'MA', 'MAMA', 'MAVP', 'MIDPOINT', 'MIDPRICE', 'SAR', 'SAREXT', 'SMA', 'T3', 'TEMA', 'TRIMA', 'WMA']
Pattern Recognition
['CDL2CROWS', 'CDL3BLACKCROWS', 'CDL3INSIDE', 'CDL3LINESTRIKE', 'CDL3OUTSIDE', 'CDL3STARSINSOUTH', 'CDL3WHITESOLDIERS', 'CDLABANDONEDBABY', 'CDLADVANCEBLOCK', 'CDLBELTHOLD', 'CDLBREAKAWAY', 'CDLCLOSINGMARUBOZU', 'CDLCONCEALBABYSWALL', 'CDLCOUNTERATTACK', 'CDLDARKCLOUDCOVER', 'CDLDOJI', 'CDLDOJISTAR', 'CDLDRAGONFLYDOJI', 'CDLENGULFING', 'CDLEVENINGDOJISTAR', 'CDLEVENINGSTAR', 'CDLGAPSIDESIDEWHITE', 'CDLGRAVESTONEDOJI', 'CDLHAMMER', 'CDLHANGINGMAN', 'CDLHARAMI', 'CDLHARAMICROSS', 'CDLHIGHWAVE', 'CDLHIKKAKE', 'CDLHIKKAKEMOD', 'CDLHOMINGPIGEON', 'CDLIDENTICAL3CROWS', 'CDLINNECK', 'CDLINVERTEDHAMMER', 'CDLKICKING', 'CDLKICKINGBYLENGTH', 'CDLLADDERBOTTOM', 'CDLLONGLEGGEDDOJI', 'CDLLONGLINE', 'CDLMARUBOZU', 'CDLMATCHINGLOW', 'CDLMATHOLD', 'CDLMORNINGDOJISTAR', 'CDLMORNINGSTAR', 'CDLONNECK', 'CDLPIERCING', 'CDLRICKSHAWMAN', 'CDLRISEFALL3METHODS', 'CDLSEPARATINGLINES', 'CDLSHOOTINGSTAR', 'CDLSHORTLINE', 'CDLSPINNINGTOP', 'CDLSTALLEDPATTERN', 'CDLSTICKSANDWICH', 'CDLTAKURI', 'CDLTASUKIGAP', 'CDLTHRUSTING', 'CDLTRISTAR', 'CDLUNIQUE3RIVER', 'CDLUPSIDEGAP2CROWS', 'CDLXSIDEGAP3METHODS']
Price Transform
['AVGPRICE', 'MEDPRICE', 'TYPPRICE', 'WCLPRICE']
Statistic Functions
['BETA', 'CORREL', 'LINEARREG', 'LINEARREG_ANGLE', 'LINEARREG_INTERCEPT', 'LINEARREG_SLOPE', 'STDDEV', 'TSF', 'VAR']
Volatility Indicators
['ATR', 'NATR', 'TRANGE']
Volume Indicators
['AD', 'ADOSC', 'OBV']
相关文章:
Linux下TA_Lib安装失败的问题处理
Linux下TA_Lib安装失败的问题处理 TA_Lib是python的量化指标库,其中包含了很多150多种量化指标 ,量化分析中经常使用。 This is a Python wrapper for TA-LIB based on Cython instead of SWIG. From the homepage: TA-Lib is widely used by trading …...
egg.js企业级web框架
egg与express、koa的区别 三者皆为node.js web框架,但: express适合做个人项目,灵活性太高;egg是基于koa封装的企业级框架,奉行约定优于配置,按照一套统一的约定进行应用开发,减少开发学习成本…...
小说网站第二章-关于文章的上传的实现
简述 因为最近比较忙,所以只有时间把以前的东西整理一下。前端方面,我使用了既存md5框架语法来保存数据,原谅我展示没找到好的方法。后端的话,我使用nodemongodb来保存数据。下面我就来简单介绍一下我的东西。 前端的实现 前端的…...
Java面试题01
1、以下不属于oracle的逻辑结构的是?答案:B A.段 B.数据文件 C.表空间 D.区 2、构造函数何时被调用?答案:A A.创建对象时 B.使用对象变量时 C.调用对象方法时 D.类定义时 3、下列排序…...
6.3 社会工程学攻击
数据参考:CISP官方 目录 社会工程学攻击概念社会工程学攻击利用的人性 “弱点”典型社会工程学攻击方式社会工程学攻击防护 一、社会工程学攻击概念 什么是社会工程学攻击 也被称为 "社交工程学" 攻击利用人性弱点 (本能反应、贪婪、易于信任等) 进…...
typeScript 之 Map
工具: PlayGround 源码: GitHub TypeScript Map简介 Map是ES6引入的一种新的数据结构, 它是一只用于存储**键值对(key-value)**的集合。 let map new Map(); let map_1: Map<string, number> new Map(); let map_2: Map<string…...
Apache Doris 入门教程29:文件管理器
文件管理器 Doris 中的一些功能需要使用一些用户自定义的文件。比如用于访问外部数据源的公钥、密钥文件、证书文件等等。文件管理器提供这样一个功能,能够让用户预先上传这些文件并保存在 Doris 系统中,然后可以在其他命令中引用或访问。 名词解释 …...
【佳佳怪文献分享】MVFusion: 利用语义对齐的多视角 3D 物体检测雷达和相机融合
标题:MVFusion: Multi-View 3D Object Detection with Semantic-aligned Radar and Camera Fusion 作者:Zizhang Wu , Guilian Chen , Yuanzhu Gan , Lei Wang , Jian Pu 来源:2023 IEEE International Conference on Robotics and Automat…...
word 应用 打不开 显示一直是正在启动中
word打开来显示一直正在启动中,其他调用word的应用也打不开,网上查了下以后进程关闭spoolsv.exe,就可以正常打开word了...
Flink-----Yarn应用模式作业提交流程
Yarn应用模式作业提交流程 在Yarn当中又分为Session,PerJob,Application,建议和推荐使用独立集群的,其中就包含PerJob 和Application,但是1.17版本的Flink已将PerJob标记为过时,并且Application可以解决PerJob的一些痛点,减轻客户端的一些压力,所以需要重点了解Yarn应…...
Python学习笔记_基础篇(五)_数据类型之字典
一.基本数据类型 整数:int 字符串:str(注:\t等于一个tab键) 布尔值: bool 列表:list 列表用[] 元祖:tuple 元祖用() 字典:dict 注:所有的数据类型都存在想对…...
【第三阶段】kotlin语言的安全调用操作符
?. fun main() {var name:String?"kotlin" //name是一个可空类型,发出广播,调用的地方必须补救措施namenullvar r name?.capitalize() //?. 如果namenull,那么?.的将不执行,就不会引发空指针异常prin…...
机器学习重要内容:特征工程之特征抽取
目录 1、简介 2、⭐为什么需要特征工程 3、特征抽取 3.1、简介 3.2、特征提取主要内容 3.3、字典特征提取 3.4、"one-hot"编码 3.5、文本特征提取 3.5.1、英文文本 3.5.2、结巴分词 3.5.3、中文文本 3.5.4、Tf-idf ⭐所属专栏:人工智能 文中提…...
Logic 2逻辑分析器捉到的CAN帧
代码开发环境 逻辑分析仪环境 MCU芯片环境:RH850/U2A16 逻辑分析器(LA)抓到的CAN帧 <完>...
手机的发展历史
目录 一.人类的通信方式变化 二.手机对人类通信的影响 三.手机的发展过程 四.手机对现代人的影响 一.人类的通信方式变化 人类通信方式的变化是一个非常广泛和复杂的话题,随着技术的进步和社会的发展,人类通信方式发生了许多重大的变化。下面是一些主…...
为什么要分库分表?
不急于上手实战 ShardingSphere 框架,先来复习下分库分表的基础概念,技术名词大多晦涩难懂,不要死记硬背理解最重要,当你捅破那层窗户纸,发现其实它也就那么回事。 什么是分库分表 分库分表是在海量数据下࿰…...
Unity游戏源码分享-中国象棋Unity5.6版本
Unity游戏源码分享-中国象棋Unity5.6版本 项目地址: https://download.csdn.net/download/Highning0007/88215699...
打造专属花店展示小程序
在当今社会,微信小程序已经成为了各行各业拓展客户资源的利器,而花店行业也不例外。通过打造一个独特的花店小程序,你可以为你的花店带来更多的曝光和客户资源。那么,如何制作一个专属的花店小程序呢?下面我们就来一步…...
SpringBoot整合、SpringBoot与异步任务
目录 一、背景描述二、简单使用方法三、原理五、使用自定义线程池1、默认使用2、如何使用自定义线程池 六、Async失效情况1、同一个类中,一个方法调用 Async标注的方法 一、背景描述 java 的代码是同步顺序执行,当我们需要执行异步操作时我们通常会去创…...
复习1-2天【80天学习完《深入理解计算机系统》】第六天
专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录) 文章字体风格: 红色文字表示&#…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP
编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
