RabbitMQ
1.初识MQ 1.1.同步和异步通讯 微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应。 异步通讯:就像发邮件,不需要马上回复。 两种方式各有优劣,打电话可以立即得到响应,但是你却不能跟多个人同时通话。发送邮件可以同时与多个人收发邮件,但是往往响应会有延迟。 1.1.1.同步通讯 我们之前学习的Feign调用就属于同步方式,虽然调用可以实时得到结果,但存在下面的问题: 总结: 同步调用的优点: 时效性较强,可以立即得到结果 同步调用的问题: 耦合度高 性能和吞吐能力下降 有额外的资源消耗 有级联失败问题 1.1.2.异步通讯 异步调用则可以避免上述问题: 我们以购买商品为例,用户支付后需要调用订单服务完成订单状态修改,调用物流服务,从仓库分配响应的库存并准备发货。 在事件模式中,支付服务是事件发布者(publisher),在支付完成后只需要发布一个支付成功的事件(event),事件中带上订单id。 订单服务和物流服务是事件订阅者(Consumer),订阅支付成功的事件,监听到事件后完成自己业务即可。 为了解除事件发布者与订阅者之间的耦合,两者并不是直...
SpringCloud学习
微服务结构 Nacos结构 Nacos与Eureka的区别 Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式 临时实例心跳不正常会被剔除,非临时实例则不会被剔除 Nacos支持服务列表变更的消息推送模式,服务列表更新更及时 Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;Eureka采用AP方式 rabbitmq结构 bootstrap.yaml文件 解决的问题:微服务要拉取nacos中管理的配置,并且与本地的application.yml配置合并,才能完成项目启动,但如果尚未读取application.yml,又如何得知nacos地址呢? spring引入了一种新的配置文件:bootstrap.yaml文件,会在application.yml之前被读取,流程如下: 读取nacos热更新配置的bootstrap.yaml文件写法 当nacos、服务本地同时出现相同属性时,优先级有高低之分: mysql与elasticsearch的概念对比: 在elasticsearch中,早期使用的打分算法是TF-...
SpringCloud01
1.认识微服务 1.1.单体架构 单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署。 单体架构的优缺点如下: 优点: 架构简单 部署成本低 缺点: 耦合度高(维护困难、升级困难) 1.2.分布式架构 分布式架构:根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。 分布式架构的优缺点: 优点: 降低服务耦合 有利于服务升级和拓展 缺点: 服务调用关系错综复杂 分布式架构虽然降低了服务耦合,但是服务拆分时也有很多问题需要思考: 服务拆分的粒度如何界定? 服务之间如何调用? 服务的调用关系如何管理? 人们需要制定一套行之有效的标准来约束分布式架构。 1.3.微服务 微服务的架构特征: 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责 自治:团队独立、技术独立、数据独立,独立部署和交付 面向服务:服务提供统一标准的接口,与语言和技术无关 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题 微服务的上述特性其实是在给分布式架构制定一个标准,进一步降低服务之间的耦合度,提供服务的独...
Windows下MySQL数据库安装(详细)
如果是重装数据库的话,直接把MySQL文件夹下的data文件夹删掉,再从4.1往后按流程走即可 (先看我!!!) 一、下载MySQL压缩包 dev.mysql.com/downloads/mysql/5.5.html#downloads 也可以直接用我这个v8.1.0版本 pan.baidu.com/s/1ImE4HX1zCwe5CeiMF1UfJw?pwd=xo08 提取码:xo08 –来自百度网盘超级会员V4的分享 二、配置环境变量 如下图所示 三、配置用户配置 第一步:在D:\MySQL\mysql-8.1.0-winx64目录下创建一个新的文件后缀名为 .ini 的 my.ini空白文件。 第二步:编辑创建好的my.ini文件,用于初始化mysql数据库 主要修改下面第 ==5== 和 ==7== 行的路径即可 tips:路径必须为“\”的形式。 [mysqld] # 设置3306端口 port=3306 # 设置mysql的安装目录 ----------是你的文件路径------------- basedir=D:\\soft...
ERROR Could not build wheels for XXX, which is required to install pyprojec
报错内容: ERROR: Could not build wheels for XXX, which is required to install pyproject.toml-based projects 前提:看一下具体报错信息,是不是因为缺少另一个包导致这个包构建失败,如果是的话,先把另一个包装了,再装这个包 看完前提之后,还是没找到是因为缺少另一个包导致这个包构建失败的有效信息,那么可以先去CSDN搜**Pythonxxx(版本号)安装不上xxx(软件包名)** ******,**有奇效(别问我怎么知道的),因为有时候Python版本安装包时有对应的版本的,一般pip只会无脑下最新的,根本不管你适不适应!!! !!!注意:这个是属于终极杀招,也就是你正常pip install安装一直报错(怎么都解决不了,呜呜呜┭┮﹏┭┮),才选择用这招!!! 解决办法(以pynacl包为例): ① 在python 官网下载文件包,点击PyNaCl下载 ② 本地安装 其中E:\Download\PyNaCl-1.5.0-cp36-abi3-win_amd64.whl 为本地安装...
Python安装requirements文件里的软件包时报错
报错内容:UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xa3 in position 13: illegal multibyte sequence 解决方法: 以虚拟环境为例,进入到 .venv\Lib\site-packages\pip_internal\utils文件夹下,编辑encoding.py文件,操作如下 ==注意:(如果不是虚拟环境,就进入到当前Python环境\Lib\site-packages\pip_internal\utils\文件夹下,也是编辑encoding.py文件,操作都是一样的)== 鼠标滑到文档末尾, 改前 改后 其实就是去掉括号里面那一行代码即可 然后重新 pip install -r requirements.txt -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
Python环境安装与配置
一、准备工作 Python目前已支持所有主流操作系统,在Linux,Unix,Mac系统上自带Python环境,在Windows系统上需要安装一下,超简单 打开官网 https://www.python.org/downloads/ 下载中心,根据自己的系统和版本选择合适的安装包,这里是直接下主页的3.12.2版本的,如果是需要下其他版本的,往下划,即可看到其他不同的Python版本 也可以用我网盘里面的python安装包,内含3.10、3.11、3.12版本 **链接:**https://pan.baidu.com/s/12IKQlRmmSpQnWv1vWC7agQ?pwd=et0k 提取码:et0k –来自百度网盘超级会员V5的分享 二、开始安装 1.双击下载好的安装包,这里我以3.12为例 2. 勾选Add python.exe to PATH ,然后再点击Customize installation进入到下一步 3.进入Optional Features后,不用操作,直接点击Next 4.点击Browse进行自定义安装路径,也可以直接点击Inst...
Python安装软件包的一些总结
1、在线安装 # 如果是安装单个包 pip install [包名] # 建议使用下面这一个命令,毕竟是万能命令,一般的包拿这个命令来装都不会有什么问题 pip install [包名] -i http://pypi.douban.com/simple --trusted-host pypi.douban.com # 备用 pip install [包名] -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn 2、离线安装 2.1 先下载好whl文件 以下是两个比较好用的whl文件源 清华镜像网站 https://pypi.tuna.tsinghua.edu.cn/simple/ Pythonlibs网站 https://www.lfd.uci.edu/\~gohlke/pythonlibs/ 2.2 进入到whl文件所在目录,cmd打开当前文件夹 pip install whl文件名.whl 注意:如果安装时报 ERROR: Failed buildin...
ubuntu升级python到python3.11
在 Ubuntu 中升级 Python 到 3.11 版本可以通过编译源代码或者使用第三方工具来完成。请注意,在升级 Python 之前,请确保备份重要数据,并谨慎操作。 以下是通过编译源代码的步骤: 安装编译所需的依赖项: sudo apt update sudo apt install build-essential zlib1g-dev libffi-dev libssl-dev 下载 Python 3.11 源代码: wget https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tgz tar -xzvf Python-3.11.0.tgz cd Python-3.11.0 配置、编译并安装: ./configure make sudo make install 验证安装: python3.11 --version 修改软链接: #先进入超管权限 sudo su rm -rf /usr/bin/python3 rm -rf /usr/local/bin/python3 ln -s /usr/lo...
内层包报ModuleNotFoundError
问题: 最外层的包安装有了,且可以访问到,但是还是报缺少里面的模块,下面是一个示例 ModuleNotFoundError: No module named ‘libsvm.python’ 附原先的代码 解决方案 这里以anaconda为例, 找到包的路径 ps: E:\anaconda3\envs\[conda环境名]\Lib\site-packages\[软件包名] 然后就发现不对劲 没有Python包,直接去掉Python,把导包的代码换下,换成 from libsvm.svmutil import * from libsvm.svm import * 就可以了。 如果还是不行的话,请在百度或者CSDN直接搜(优先百度,别问我怎么知道的) libsvm.python #示例,反正报啥就搜啥
