1.报错描述12345678D:\desktop\我的项目> pip install --upgrade pipLooking in indexes: https://mirrors.aliyun.com/pypi/simple/Requirement already satisfied: pip in d:\pythonproject\python\lib\site-packages (23.3.2)WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x000001E30562B6D0>: Failed to esta ...
1. 概述Nacos 是什么?其官方文档自我介绍如下:
FROM https://nacos.io/zh-cn/docs/what-is-nacos.html
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
看起来介绍看起来有点高大上,嘿嘿。Nacos 是 Dynamic Naming and Configuration Service 的缩写,动态命名和配置服务。正如其名,Nacos 是阿里开源的注册中心 + 配置中心服务。
目前,Nacos 对 Spring、Spring Boot、Spring Cloud、Dubbo 提供了非常好的支持,已经有蛮多大型互联网公司正在使用。
下面,我们先来一起对 Nacos 进行快速入门,美滋滋。
2. 单机部署(最简模式)本小节,我们来最小化部署一个 Nacos 服务,适合演示或学习 ...
magic-api一个基于Java的接口快速开发框架,通过magic-api提供的UI界面完成编写接口,无需定义Controller、Service、Dao、Mapper、XML、VO等Java对象即可完成常见的HTTP API接口开发。
1、打开易优评项目git clone 仓库,做好相应数据库的初始化及启动准备,相关操作参考,此处不赘述
2、导入magic-api相关依赖
位置:ruoyi-admin 模块的 pom.xml 文件
12345<dependency> <groupId>org.ssssssss</groupId> <artifactId>magic-api-spring-boot-starter</artifactId> <version>2.0.2</version></dependency>
3、在application.yml 中添加 magic-api 配置项
位置:ruoyi-admin/src/main/resources/appl ...
1.脚本如下123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114#!/bin/bash# 定义颜色RED='\033[0;31m'GREEN='\033[0;32m'YELLOW='\033[0;33m'NC='\033[0m' # No Color# 定义总步骤数TOTAL_STEPS=18current_step=0# 显示进度的函数show_progress() { current_step=$((current_step + 1)) percentage=$((curr ...
本篇主要讲以下三种Redis集群方式
单机安装Redis
Redis主从
Redis分片集群
1.单机安装Redis首先需要安装Redis所需要的依赖:
1yum install -y gcc tcl
redis-6.2.4下载地址:https://www.123pan.com/s/eeJbVv-c37UA.html
然后将Redis安装包上传到虚拟机的任意目录:
例如,我放到了/tmp目录:
解压缩:
1tar -xvf redis-6.2.4.tar.gz
解压后:
进入redis目录:
1cd redis-6.2.4
在上述目录下运行编译命令:
1make && make install
如果没有出错,应该就安装成功了。
然后修改redis.conf文件中的一些配置:
1234# 绑定地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问bind 0.0.0.0# 数据库数量,设置为1databases 1
启动Redis:
1redis-server redis.conf
停止redi ...
Redis有两种持久化方案:
RDB持久化–(Redis数据备份文件)
AOF持久化–(追加文件)
1.1.RDB持久化RDB全称Redis Database Backup file(Redis数据备份文件),也被叫做Redis数据快照。简单来说就是把内存中的所有数据都记录到磁盘中。当Redis实例故障重启后,从磁盘读取快照文件,恢复数据。快照文件称为RDB文件,默认是保存在当前运行目录。
1.1.1.执行时机RDB持久化在四种情况下会执行:
执行save命令
执行bgsave命令
Redis停机时
触发RDB条件时
1)save命令
执行下面的命令,可以立即执行一次RDB:
save命令会导致主进程执行RDB,这个过程中其它所有命令都会被阻塞。只有在数据迁移时可能用到。
2)bgsave命令
下面的命令可以异步执行RDB:
这个命令执行后会开启独立进程完成RDB,主进程可以持续处理用户请求,不受影响。
3)停机时
Redis停机时会执行一次save命令,实现RDB持久化。
4)触发RDB条件
Redis内部有触发RDB的机制,可以在redis.conf文件中找到,格式如 ...
SpringAMQPSpringAMQP是基于RabbitMQ封装的一套模板,并且还利用SpringBoot对其实现了自动装配,使用起来非常方便。
SpringAmqp的官方地址:https://spring.io/projects/spring-amqp
SpringAMQP提供了三个功能:
自动声明队列、交换机及其绑定关系
基于注解的监听器模式,异步接收消息
封装了RabbitTemplate工具,用于发送消息
3.1.Basic Queue 简单队列模型在父工程mq-demo中引入依赖
12345<!--AMQP依赖,包含RabbitMQ--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependency>
3.1.1.消息发送首先配置MQ地址,在publisher服务的application.yml ...
1.初识MQ1.1.同步和异步通讯微服务间通讯有同步和异步两种方式:
同步通讯:就像打电话,需要实时响应。
异步通讯:就像发邮件,不需要马上回复。
两种方式各有优劣,打电话可以立即得到响应,但是你却不能跟多个人同时通话。发送邮件可以同时与多个人收发邮件,但是往往响应会有延迟。
1.1.1.同步通讯我们之前学习的Feign调用就属于同步方式,虽然调用可以实时得到结果,但存在下面的问题:
总结:
同步调用的优点:
时效性较强,可以立即得到结果
同步调用的问题:
耦合度高
性能和吞吐能力下降
有额外的资源消耗
有级联失败问题
1.1.2.异步通讯异步调用则可以避免上述问题:
我们以购买商品为例,用户支付后需要调用订单服务完成订单状态修改,调用物流服务,从仓库分配响应的库存并准备发货。
在事件模式中,支付服务是事件发布者(publisher),在支付完成后只需要发布一个支付成功的事件(event),事件中带上订单id。
订单服务和物流服务是事件订阅者(Consumer),订阅支付成功的事件,监听到事件后完成自己业务即可。
为了解除事件发布者与订阅者之间的耦合,两者并不是直接通信,而 ...
Feign远程调用原理(同步)
1、Feign介绍Feign是一个http请求调用的轻量级框架,可以以Java接口注解的方式调用Http请求。Spring Cloud引入 Feign并且集成了Ribbon实现客户端负载均衡调用。
Feign解决了什么问题?封装了Http调用流程,更适合面向接口化的变成习惯
2、Feign工作原理Feign远程调用流程图
(1) 基于面向接口的动态代理方式生成实现类在使用feign 时,会定义对应的接口类,在接口类上使用Http相关的注解,标识HTTP请求参数信息
在Feign 底层,通过基于面向接口的动态代理方式生成实现类,将请求调用委托到动态代理实现类,基本原理如下所示:
(2) 根据Contract协议规则,解析接口类的注解信息,解析成内部表现:
(3) 基于 RequestBean,动态生成Request根据传入的Bean对象和注解信息,从中提取出相应的值,来构造Http Request 对象
(4) 使用Encoder 将Bean转换成 Http报文正文(消息解析和转码逻辑)Feign 最终会将请求转换成Http 消息发送出去,传入的请求对象 ...
基础篇Redis1.Redis简单介绍Redis是一种键值型的NoSql数据库,这里有两个关键字:
键值型
NoSql
其中键值型,是指Redis中存储的数据都是以key.value对的形式存储,而value的形式多种多样,可以是字符串.数值.甚至json:
而NoSql则是相对于传统关系型数据库而言,有很大差异的一种数据库。
对于存储的数据,没有类似Mysql那么严格的约束,比如唯一性,是否可以为null等等,所以我们把这种松散结构的数据库,称之为NoSQL数据库。
2.课程目录
初始Redis
认识NoSQL
认识Redis
安装Redis
Redis常见命令
5种常见数据结构
通用命令
不同数据结构的操作命令
Redis的Java客户端
Jedis客户端
SpringDataRedis客户端
3.初始Redis3.1.认识NoSQLNoSql可以翻译做Not Only Sql(不仅仅是SQL),或者是No Sql(非Sql的)数据库。是相对于传统关系型数据库而言,有很大差异的一种特殊的数据库,因此也称之为非关系型数据库。
3.1.1.结构化与非结构化传统关系型数据库是 ...








