自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

原创 SHA-256、HMAC-SHA256加密算法工具类

SHA-256、HMAC-SHA256加密算法工具类

2022-05-31 19:38:55 2923 1

原创 统一网关 Gateway

1、搭建网关服务(1)、创建moudle,添加依赖<!--网关依赖--><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> <version>2.2.6.RELEASE</version></depe

2022-03-09 16:35:30 723

原创 http 客户端 Feign

Feign是一个声明式的http客户端,官方地址:https://github.com/OpenFeign/feign作用就是帮助我们优雅的实现http请求的发送,替代RestTemplate远程调用的方式。一、定义和使用 Feign 客户端1.引入依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-start

2022-03-09 14:50:31 783 1

原创 Nacos配置管理

一、统一配置管理二、多服务共享配置

2022-03-02 10:58:16 2152

原创 Nacos 注册中心入门 安装、服务注册

一、Nacos安装二、服务注册1、在父工程中添加依赖<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2.2.6.RELEASE</version> <type>pom</typ

2022-03-01 15:18:15 779

原创 云服务器中Docker启动Nacos

1、拉取镜像下载最新版docker pull nacos/nacos-server指定版本2.0.3docker pull nacos/nacos-server:2.0.32、启动容器docker run --name mynacos -e MODE=standalone -p 8848:8848 -d nacos/nacos-server:2.0.3–name: 为容器命名-e MODE:指定访问模式(如果不加这个条件会使nacos启动成功但是无法访问,MODE必须大写)-p:为容

2022-03-01 13:54:44 3424

原创 Ribbon负载均衡

通过定义IRule实现可以修改负载均衡规则,有两种方式:方式1:代码方式在服务消费者(consumer)一方的启动类中@Beanpublic IRule randomRule(){ return new RandomRule();//其他负责均衡策略附在文后}方式2:配置方式(推荐)在服务消费者(consumer)一方的application.yml中添加新的配置consumerservice: # 服务消费者name ribbon: NFLoadBala

2022-02-28 16:06:08 127

原创 Eureka原理和入门案例

一、Eureka 原理Eureka客户端会每隔30s向服务端发送心跳包以告知服务端当前客户端没有挂掉。对于Client来说,服务Server超过90s没有收到该Client的心跳数据,Server就会把该Client移出服务列表。最好不要修改30s的默认心跳间隔,因为Server会使用这个时间数值来判断是否出现了大面积故障。...

2022-02-28 15:44:06 216

原创 创建Maven项目后启动类@SpringBootApplication失效解决方法

Spring Boot的Maven插件(Spring Boot Maven plugin)能够以Maven的方式为应用提供Spring Boot的支持,能够将Spring Boot应用打包为可执行的jar或war文件,以Spring Boot应用运行。在pom.xml中添加spring-boot-maven-plugin插件<build> <plugins> <plugin> <groupId>org.

2022-02-25 13:48:26 1406

原创 Maven pom.xml 中设置项目JDK版本指定Java1.8

在pom.xml中添加方法1:<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target></properties>方法2:<build> <plugins> <p

2021-11-29 09:48:10 4207

原创 MySQL 8 数据库安装(Windows)

1.下载数据库下载地址:https://dev.mysql.com/downloads/mysql/点击Download,进入下载页点击“No thanks, just start my download.”下载完成得到zip压缩包2.安装配置1、解压下载的压缩包,我这里解压到d盘2、编写mysql配置文件在解压目录下新建my.ini文件编辑my.ini[client]# 设置mysql客户端默认字符集default-characte...

2021-10-21 10:35:42 290 1

原创 RabbitMQ

RabbitMQ 简介AMQP,即 Advanced Message Queuing Protocol(高级消息队列协议),是一个网络协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。2006年,AMQP 规范发布。类比HTTP。2007年,Rabbit 技术公司基于 AMQP 标准开发的 RabbitMQ 1.0 发布。RabbitMQ 采用 Erlang 语言开发。Erlang 语言由 E

2021-10-19 10:24:44 96

原创 RabbitMQ 6 种工作模式 - (五)Topics 通配符模式

概念: Topic 类型与 Direct 相比,都是可以根据 RoutingKey 把消息路由到不同的队列。只不过 Topic 类型Exchange 可以让队列在绑定 Routing key 的时候使用通配符! Routingkey 一般都是有一个或多个单词组成,多个单词之间以”.”分割,例如: item.insert 通配符规则:# 匹配一个或多个词,* 匹配不多不少恰好1个词,例如:item.# 能够匹配 item.insert.abc 或者 item.insert,i...

2021-10-19 10:23:32 258

原创 RabbitMQ 6 种工作模式 - (四)Routing 路由模式

概念: 队列与交换机的绑定,不能是任意绑定了,而是要指定一个 RoutingKey(路由key) 消息的发送方在向 Exchange 发送消息时,也必须指定消息的 RoutingKey Exchange 不再把消息交给每一个绑定的队列,而是根据消息的 Routing Key 进行判断,只有队列的Routingkey 与消息的 Routing key 完全一致,才会接收到消息 P:生产者,向 Exchange 发送消息,发送消息时,会指定一个routing key..

2021-10-19 10:23:14 195

原创 RabbitMQ 6 种工作模式 - (三)Pub/Sub 订阅模式

概念:在订阅模型中,多了一个 Exchange 角色,而且过程略有变化: P:生产者,也就是要发送消息的程序,但是不再发送到队列中,而是发给X(交换机) C:消费者,消息的接收者,会一直等待消息到来 Queue:消息队列,接收消息、缓存消息 Exchange:交换机(X)。一方面,接收生产者发送的消息。另一方面,知道如何处理消息,例如递交给某个特别队列、递交给所有队列、或是将消息丢弃。到底如何操作,取决于Exchange的类型。 Exchange有常见以...

2021-10-19 10:22:49 480

原创 RabbitMQ 6 种工作模式 - (二)Work queues 工作队列模式

概念: Work Queues:与入门程序的简单模式相比,多了一个或一些消费端,多个消费端共同消费同一个队列中的消息。 应用场景:对于任务过重或任务较多情况使用工作队列可以提高任务处理的速度。 生产者 producer:import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitmq.client.ConnectionFactory;import ...

2021-10-19 10:22:20 292

原创 RabbitMQ 6 种工作模式 - (一)简单模式

概念: P:生产者,也就是要发送消息的程序 C:消费者:消息的接收者,会一直等待消息到来 queue:消息队列,图中红色部分。类似一个邮箱,可以缓存消息;生产者向其中投递消息,消费者从 其中取出消息 生产者 producer: import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitmq.client.ConnectionFa...

2021-10-19 10:21:54 337

原创 RabbitMQ启动报错Starting rabbitmq-server (via systemctl): Job for rabbitmq-server.service failed解决方法

输入service rabbitmq-server start 报错如下:解决办法:编辑 /etc/rabbitmq/rabbitmq-env.conf ,添加NODENAME=rabbit@localhostvi /etc/rabbitmq/rabbitmq-env.confNODENAME=rabbit@localhost成功开启

2021-10-17 14:11:40 624

原创 线程池详解

线程池使用及优势:线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量超出数量的线程排队等待,等其它线程执行完毕,再从队列中取出任务来执行。主要特点:线程复用、控制最大并发数、管理线程。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低

2021-10-15 20:09:09 336

原创 IPUtils工具类

import lombok.extern.slf4j.Slf4j;import org.apache.commons.lang3.StringUtils;import javax.servlet.http.HttpServletRequest;/** * 获取Ip * */@Slf4jpublic class IpUtils { /** * 获取IP地址 * <p> * 使用Nginx等反向代理软件, 则不能通过request.getR.

2021-10-04 20:15:59 170

原创 不使用Synchronized实现单例模式

1.CAS实现public class Singleton { private static final AtomicReference<Singleton> instance = new AtomicReference<>(); private Singleton(){} public static Singleton getInstance(){ while(true){ Singleton singleton = instance.get(); i

2021-09-27 20:47:09 86

原创 windos下安装 zookeeper 3.7.0

官方下载地址:http://zookeeper.apache.org/releases.html需下载带有bin的安装包conf目录下将zoo_sample.cfg复制一份改为zoo.cfg。(因为zookeeper启动加载zoo.cfg)使用记事本打开zoo.cfg文件,将其中dataDir路径设置为自己想存放的位置。注释里说明了,不要使用默认的路径,所以最好自己定义一个路径编辑bin/zkServer.cmd加入p...

2021-09-20 21:10:07 141

原创 文件上传 Spring Boot

Spring Boot 代码:@PostMapping("/upload")public String upload(@RequestParam("Img") MultipartFile img, @RequestParam("photos") MutipartFile[] photos) throws IOException{ if(!img.isEmpty()){ String imgFileName = img.getOrigi

2021-09-20 20:04:39 91

原创 双重校验锁、枚举实现单例对象

public class Singleton{ //volatile关键字,是为了禁止指令重排 //singleton = new Singleton;分为三步 //1.为 singleton 分配内存空间 //2.初始化 singleton //3.将 singleton 指向分配的内存空间 //第2步和第3步交换的话可能会A线程没有被初始化但指向内存地址, //确实不为null,B线程拿到单例对象是没有初始化的对象 private v.

2021-09-01 16:24:42 166

原创 LRU算法模板

public int[] LRU (int[][] operators, int k) { // write code here Map<Integer,Integer> map = new LinkedHashMap<>(); //实现有序 List<Integer> list = new LinkedList<>(); for (int[] operator : operato...

2021-09-01 15:23:58 169

原创 MySQL索引

索引1、索引概述索引是帮助MySQL高效获取数据的数据结构。2、优劣势优势:(1)提高数据检索的效率,降低数据库的IO成本。(2)通过索引对数据进行排序,降低数据排序的成本,降低CPU的消耗。劣势:(1)索引占用空间。索引也是一张表,表中记录主键和索引字段,指向实体类的记录。(2)对表进行更新也需要更新索引,降低了更新表的速度。3、数据结构BTREE索引(MySQL默认引擎InnoDB支持),如不指定则使用B+树(多路搜索树)在B+树的基础上,增加一个指向相.

2021-09-01 09:10:22 86

原创 二分查找模板

/** * 返回target所在索引,没有则返回-1 * */ public int binarySearch(int[] nums,int target){ int left = 0; int right = nums.length - 1; //[left...right] while(left < right){ //向下取整 //防止两数过大相加溢出 int mid = left + ((right - left) >> 1)..

2021-08-31 13:11:16 63

原创 快速排序模板

/** * 快速排序 * 时间复杂度:O(n^2) * 空间复杂度:O(logn) */public class QuickSort { public void quickSort(int[] nums, int start, int end){ if(start < end){ int mid = doSort(nums, start, end); quickSort(nums, 0, mid - 1); quickSort(nums, mid + 1, end).

2021-08-31 13:06:17 57

原创 归并排序模板

一、排序思想 先分割,分成不可再分,再开始合并,在合并中通过比较完成排序以升序为例二、代码实现以升序为例,可以通过改变比较逻辑完成降序等/** * 归并排序 * 时间复杂度: O(nlogn) * 空间复杂度: O(n):辅助数组的长度 */public class MergeSort extends Sort { public void sort(int[] nums, int left, int right, int[] temp) { if...

2021-08-31 12:58:11 78

原创 Shiro在spring boot中整合thymeleaf 出现的问题:shiro标签、注解不生效的解决方案

https://blog.csdn.net/A233666/article/details/113436981

2021-08-31 09:57:53 913 3

原创 RedisUtil工具类

RedisTemplateimport org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.stereotype.Component;import org.springframework.util.CollectionUtils;import java.util.Col

2021-08-30 13:30:05 104

原创 Redis Template固定模板

@Configurationpublic class RedisConfig { //RedisTemplate固定模板 @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) { RedisTemplate<String, Object> template = new RedisTemplate<>().

2021-08-30 13:01:56 258

原创 Docker安装Redis

# Redis configuration file example.## Note that in order to read the configuration file, Redis must be# started with the file path as first argument:## ./redis-server /path/to/redis.conf # Note on units: when memory size is needed, it is possible to

2021-08-28 20:58:53 69

原创 Docker安装Redis,Redis.conf配置

# Redis configuration file example.## Note that in order to read the configuration file, Redis must be# started with the file path as first argument:## ./redis-server /path/to/redis.conf # Note on units: when memory size is needed, it is possible t.

2021-08-28 20:57:49 698

原创 Docker安装MySQL及处理连接问题

首先安装好Docker ->https://blog.csdn.net/sxs1051310123/article/details/119964707大致步骤两步 1.下载MySQL 2.启动容器1、下载MySQL(拉取镜像,镜像配置阿里云,否则可能会失败)docker pull mysql查看是否下载成功docker images2、启动容器docker run -p 3306:3306 --name mysql ...

2021-08-28 19:04:16 726

原创 Docker常用命令

帮助命令 1. docker version 2. docker info 3. docker --help镜像命令1.列出本地主机上的镜像 docker imagesOPTIONS说明: -a :列出本地所有的镜像(含中间映像层) -q :只显示镜像ID。 --digests :显示镜像的摘要信息 --no-trunc ...

2021-08-28 16:45:33 74

原创 Centos 7 安装Docker

1.Docker是什么: 解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。2.三要素: 仓库:存放镜像文件的场所 仓库注册服务器存放多个仓库,每个仓库包含多个镜像文件,每个镜像有不同的标签 仓库分为公开仓库和私有仓库,Docker Hub是最大的公开仓库 镜像:是一个只读模板,可以用来创建很多容器 容器:是用镜像创建的运行实例,Docker利用容器来独立运行一个...

2021-08-28 14:58:52 93

原创 Redis缓存穿透、击穿、雪崩,分布式锁概述

1、缓存穿透 问题描述: 解决方案:2、缓存击穿 问题描述: 解决方案:3、缓存雪崩 问题描述: 解决方案:4、分布式锁...

2021-08-28 10:18:15 101

原创 Redis主从复制设置

1.配置一主多从首先创建一个目录,目录名就叫Redis将redis的配置文件redis.conf复制到此目录下同一个目录Redis下创建redis1.conf,redis2.conf在Redis/redis.conf 文件中将AOF关闭appendonly no在redis1.conf中编辑下列内容include /Redis/redis.confpidfile /var/run/redis_6379.pidport 6379dbfilename dump6379

2021-08-17 09:33:09 95

原创 Redis的RDB和AOF

1.RDB 在指定的时间间隔内将内存中的数据集快照写入磁盘,恢复时将快照文件直接读到内存。备份:Redis单独创建(Frok)一个子进程进行持久化,会先将数据写入一个临时文件中,待持久化过程结束了再用临时文件替换上次持久化好的文件。恢复:根据持久化后生成的文件恢复数据相关配置:(1)save <时间> <数量>:如设置save 30 10,表示30秒内10个key改变则进行持久化操作,将这10个ke...

2021-08-16 21:10:43 74

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除