自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Big Data

当下的拼搏,照亮自我突破的勇气。

  • 博客(95)
  • 资源 (2)
  • 收藏
  • 关注

原创 生产者与消费者问题?

生产者消费者模式是并发、多线程编程中经典的设计模式。简单来看,就是一个类负责生产,一个类负责消费。举例来说,一个变量,生产者不断增加这个变量,消费者不断减少这个变量。在互联网应用中,抢票机制就是应用了该模式,比如大麦网演唱会门票抢票,12306火车票抢票等。1、生产者与消费者问题 synchronized 版本假设有两个线程A和B,操作同一个变量,A线程+1,B线程-1, 交替循环进行package cn.dczh.juc;/** * @ClassName: A...

2022-03-19 15:47:54 236

原创 Lock锁

Lock实现提供比使用synchronized方法和语句可以获得的更广泛的锁定操作。 它们允许更灵活的结构化,可能具有完全不同的属性,并且可以支持多个相关联的对象Condition1、传统的synchronizedpackage cn.dczh.juc;/** * @ClassName: MaipiaoDemo1 * @description: 买票案例 synchronized版本 * @author: * @date: 2022/3/16 20:39 * @ve...

2022-03-19 15:04:26 395

原创 微服务六种设计模式

1、聚合设计模式 聚合设计模式常用于报表服务,在微服务系统中报表服务是肯定存在的。2、代理设计模式 在微服务架构中代理服务是必然存在的,常用的代理服务是网关服务。 微服务的各个服务是没有状态的,需要通过统一的入口(代理服务)经过权限的校验、请求的过滤(非法请求、SQL注入等),然后请求具体的服务。3、分支设计模式 这种模式是聚合器模式的扩展,允许同时调用两个微服务链4、异步消息传递设计模式 虽然REST设计模式非常流...

2021-10-25 10:28:38 5501 4

原创 Mybatis-Plus&&Druid多数据源配置

多数据源配置思路目录多数据源配置思路

2021-06-21 14:23:18 3247

原创 docker(CentOS7)安装

前提条件Docker运行对内核要求比较高,因此一般建议直接在Ubuntu这样的平台运行。但作为一个容器标准,Docker也是支持其他如CentOS, Mac OS X, Windows等平台。目前Docker支持以下版本CentOS: 在运行CentOS 6.5及以后版本时,需要内核版本>=2.6.32-431,因为这些内核包含了运行Docker的一些特定修改[root@izbp15w3wc1228gxqn1rzqz ~]# uname -r 3.10.0-514.26.2.el7...

2021-05-03 17:57:00 115

原创 spring生命周期

什么是spring?Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。目的:解决企业应用开发的复杂性 功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能 范围:任何Java应用 它是一个容器框架,用来装javabe.

2021-04-17 21:07:17 285 1

原创 初始GUC(一)

1、什么时JUCJUC就是java.util .concurrent工具包的简称。这是一个处理线程的工具包。2、什么是进程与线程进程:进程是程序的一次执行,进程是一个程序及其数据在处理机上顺序执行时所发生的活动,进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。简单来说:一个进程包含多个线程,至少包含一个。线程:线程作为资源调度的基本单位,是程序的执行单元,执行路径(单线程:一条执行路径,多线程:多条执行路径)。是程序使用CPU的最基本单

2021-03-28 18:23:57 1581

原创 nacos(windows)配置

1024快乐

2020-10-24 18:16:55 758

原创 vue中async和await用法(地狱回调)

很多时候我们有很多业务,需要依次调用多个后台接口,并且后一个接口需要依赖前一个接口的响应结果,如果上一个接口挂了,后一个接口也就不需要调用了。先说一下async的用法,它作为一个关键字放到函数前面,用于表示函数是一个异步函数,因为async就是异步的意思, 异步函数也就意味着该函数的执行不会阻塞后面代码的执行。 写一个async 函数async function timeout() {  return 'hello world async';}语法很简单,就是在函数前面加上async关键.

2020-09-29 16:25:00 4484

原创 Redis哨兵模式(Sentinel)

简介主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。哨兵模式概述哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。哨兵模式写两个作用: 通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从

2020-09-07 21:22:30 160 1

原创 springboot多线程定时任务

新建ScheduleConfig类@Configuration@EnableSchedulingpublic class ScheduleConfig implements SchedulingConfigurer, AsyncConfigurer { @Override public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { TaskScheduler taskScheduler = t

2020-09-02 17:23:51 158

原创 spring boot结合redis实现阿里云短信验证码

登录阿里云控制台阿里云地址:https://www.aliyun.com/在搜索栏目搜索短信服务,然后点击;在控制台首页点击我的-->AccessKey管理,然后点击点击开始使用子用户然后创建用户组并且给用户组添加短信权限(在搜索栏搜索sms),然后创建用户,用户添加至用户组,...

2020-08-31 10:54:16 581

原创 MySQL存储过程

存储过程简介存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。存储过程的特点 能完成较复杂的判断和运算 可编程行强,灵活 SQL编程的代码可重复使用 执行的速度相对快一些 减少网络之间的数据传输,节省开销 ...

2020-08-28 11:53:00 119

原创 Redis集群搭建及主从复制

主从复制概述主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。主从复制的作用主从复制的作用主要包括: 数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。 故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快

2020-08-23 22:06:26 330

原创 springboot整合Redis发布订阅

简介发布订阅(Pub/Sub):目前广泛使用的通信模型,它采用事件作为基本的通信机制,提供大规模系统所要求的松散耦合的交互模式:订阅者(如客户端)以事件订阅的方式表达出它有兴趣接收的一个事件或一类事件;发布者(如服务器)可将订阅者感兴趣的事件随时通知相关订阅者------是不是与设计模式里面的观察者模式一个妈妈生的?最经典的应用场景就是微博和公众号,任何粉丝只要关注(订阅)了某一个人的微博或者公众号,该微博或者公众号只有有状态更新,都会将消息推送(发布)到粉丝..命令实现发布订阅redis订

2020-08-19 15:34:27 838

原创 Redis中RDB与AOF的区别

简介由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁盘上,当redis重启后,可以从磁盘中恢复数据。redis提供两种方式进行持久化,一种是RDB持久化(原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化),另外一种是AOF持久化(原理是将Reids的操作日志以追加的方式写入文件)。那么这两种持久化方式有什么区别呢,改如何选择呢?网上看了大多数都是介绍这两种方式怎么配置,怎么使用,就是没有介绍

2020-08-18 09:34:42 342

原创 springboot整合redis

Jedis和Lettuce的区别在哪?1、Jedis 是直连模式,在多个线程间共享一个 Jedis 实例时是线程不安全的,每个线程都去拿自己的 Jedis 实例,当连接数量增多时,物理连接成本就较高了。2、Lettuce的连接是基于Netty的,连接实例可以在多个线程间共享,如果你不知道Netty也没事,大致意思就是一个多线程的应用可以使用同一个连接实例,而不用担心并发线程的数量。通过异步的方式可以让我们更好地利用系统资源。既然有这么大的好处,干脆就用了这个,跟上时代的变化。下面新建一个Spri

2020-08-13 23:02:44 191

原创 初始redis-基本指令

redisdis是一个开源(BSD许可)的使用C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,它可以用作数据库、缓存和消息中间件,并提供多种语言的API。从2010年3月15日起,redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。redis是一个key-value存储系统。它支持存储的value类型包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希

2020-08-09 22:13:04 195

原创 spring boot-自定义注解实现日志

功能简介本文主要记录如何使用aop切面的方式来实现日志记录功能。主要记录的信息有:操作人,方法名,参数,运行时间,操作类型(增删改查),详细描述,返回值。功能结构图代码实现这个是最主要的类,可以使用自定义注解或针对包名实现AOP增强。1)这里实现了对自定义注解的环绕增强切点,对使用了自定义注解的方法进行AOP切面处理;2)对方法运行时间进行监控;3)对方法名,参数名,参数值,对日志描述的优化处理;在方法上增加@Aspect注解声明切面,使用@Pointcut注解...

2020-08-02 22:45:31 394

原创 统一返回json数据封装

简介首先,采用的是springboot,在controller中使用了@RestController或者@ResponseBody注解,返回的数据本身就是json格式。但是这样的json串在前后端分离使用中并不满足实际的效果,因此需要进行相应的封装,以满足前端能够正确处理获取的数据。导入依赖(使用阿里的fastjson)<dependency> <groupId>com.alibaba</groupId> <artifactId

2020-06-29 09:06:48 943 1

原创 vue组件之间的传值

父组件向子组件传值 通过props接受vue使用中,经常会用到组件,好处是:1、如果有一个功能很多地方都会用到,写成一个组件就不用重复写这个功能了;2、页面内容会简洁一些;方便管控;props可以对象的形式接受<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device

2020-06-09 16:28:46 210

原创 spring cloud学习(八)-Hystrix【断路器】

熔断机制概述熔路机制是应对雪崩效应的一种微服务链路的保护机制,当扇出某个微服务出错不可用或者响应时间过长时,回进行服务降级,进而熔断该节点微服务的调用,快速返回错误的响应信息。当检测到该节点下的微服务调用响应正常后,恢复调用链路。在spring cloud框架中,熔断机制是通过Hystrix实现,Hystrix会监控微服务间的调用状况,当失败的调用到一定的阙值,缺省是5秒内20次调用失败,就会启动熔断机制,熔断机制的注解是@HystrixCommand...

2020-05-30 16:34:12 227

原创 spring cloud学习(七)-Hystrix【Feign服务降级】

Hystrix介绍Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等;Hystrix能够保证在一个依赖处问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性;"断路器" 本身是一种开关装置,当某个服务单元发生故障之后,通过断路器的故障监控(类似熔断保险丝),向调用方向返回一个符合预期的、可处理的备选响应(fallback),而不是长时间的等待或者抛出调用方无法处理的异常,这样就保证了服务调用方的线程不会被长时

2020-05-26 22:07:54 222

原创 spring boot-使用邮件

前言发送邮件应该是网站的必备拓展功能之一,注册验证,忘记密码或者是给用户发送营销信息。正常我们会用JavaMail相关api来写发送邮件的相关代码,但现在springboot提供了一套更简易使用的封装mail依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId&gt

2020-05-11 22:22:23 176

转载 微信小程序-图片放大与缩小

wxml文件里添加点击事件<image class='img' src='{{imgUrl}}' bindtap='clickImg'></image>src:存放当前图片的路径bindtap:自定义点击事件给图片添加一个点击事件根据wxml里的clickImg事件,创建一个点击事件:注意参数里的urls,是一个数组data: { imgUrl:'/images/img.jpg' //图片路径},//点击事件 clickImg: fun.

2020-05-11 18:39:26 5416

原创 spring boot—异步处理

什么是异步调用?异步调用是相对于同步调用而言的,同步调用是指程序按预定顺序一步步执行,每一步必须等到上一步执行完后才能执行,异步调用则无需等待上一步程序执行完即可执行。如何实现异步调用?多线程,这是很多人第一眼想到的关键词,没错,多线程就是一种实现异步调用的方式。 在非spring目项目中我们要实现异步调用的就是使用多线程方式,可以自己实现Runable接口或者集成Thread类,或者使用jdk1.5以上提供了的Executors线程池。 StrngBoot中则提供了很方便的方式执行异步调用

2020-05-11 17:18:44 344

原创 spring boot—使用AOP

AOP简介AOP是Spring提供的两个核心功能之一:IOC(控制反转),AOP(Aspect Oriented Programming 面向切面编程);IOC有助于应用对象之间的解耦,AOP可以实现横切关注点和它所影响的对象之间的解耦;AOP,它通过对既有的程序定义一个横向切入点,然后在其前后切入不同的执行内容,来拓展应用程序的功能,常见的用法如:打开事务和关闭事物,记录日志,统计接口时间等。AOP不会破坏原有的程序逻辑,拓展出的功能和原有程序是完全解耦的,因此,它可以很好的对业务逻辑的各个部分进

2020-05-11 11:50:46 236

原创 spring boot—定时任务

开启定时任务在程序入口类中添加@EnableScheduling注解package com.alibaba; import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframewor

2020-05-11 11:28:32 98

原创 spring boot—常用注解

@SpringBootApplication:这是Sprint Boot的标识,它包含@Configuration、@EnableAutoConfiguration、@ComponentScan的作用,通常用在程序的主类上,是程序的入口。@RestController:一般用在控制层,比如controller,包含@Controller和@ResponseBody,有此注解后,就不...

2020-05-07 22:18:11 119

原创 spring cloud学习(六)-Feign【超时时间设置】

open Feign能干什么?open Feign大的遵旨是使编写Java HTTP客户端变得更加容易前面在使用RestTemplate + Ribbon时,利用Rest Template对HTTP请求的封装处理,形成了一套模板化的调用方法,但是在实际开发中,由于对服务的调用可不止一处,往往一个接口会被多处调用,所以通常都会征对每个微服务自行封装一些客户端类来包装这些依赖服务的调用。所以o...

2020-05-07 22:08:37 1254

原创 spring cloud学习(五)-手写Ribbo负载均衡之轮询算法

轮询算法计算公式rest 接口第几次请求数 % 服务器集群总数量 = 实际调用服务器位置下标 每次服务器重启后rest接口数从1开始轮询算法源码分析IRule接口//IRule接口public interface IRule{ /* * choose one alive server from lb.allServers or * lb.upS...

2020-05-06 22:55:51 328

原创 spring cloud学习(四)-Ribbon负载均衡

Ribbon简介Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过Spring Cloud的封装,可以让我们轻松地将面向服务的REST模版请求自动转换成客户端负载均衡的服务调用。Spring Cloud Ribbon虽然只是一个工具类框架,它不像服务注册中心、配置中心、API网关那样需要独立部署,但是它几乎存在于每...

2020-05-06 18:13:49 171

原创 spring cloud学习(三)-RestTemplate的用法

什么是RestTemplateRestTemplate 是从 Spring3.0 开始支持的一个 HTTP 请求工具,它提供了常见的REST请求方案的模版,例如 GET 请求、POST 请求、PUT 请求、DELETE 请求以及一些通用的请求执行方法 exchange 以及 execute。RestTemplate 继承自 InterceptingHttpAccessor 并且实现了 Rest...

2020-05-06 17:04:27 565

原创 spring cloud学习(二)-eureka服务中心集群搭建

注册中心高可用理论上来讲,服务消费者本地缓存了服务提供者的地址。即使 Eureka Server 宕机,也不会影响服务之间的调用,但是一旦涉及到服务的上下线,本地的缓存信息将会出现偏差,从而影响到了整个微服务架构的稳定性,因此搭建 Eureka Server 集群来提高整个架构的高可用性,是非常有必要的。这样就可以使注册中心高可用。搭建Eureka集群开启 Eureka 集群配置后,服...

2020-05-06 16:33:11 186

原创 spring cloud学习(一)-eureka服务中心搭建

什么是EureakEureka 是 Netflix 公司开源的产品,它是一种基于 REST(Representational State Transfer)的服务,主要用于 AWS 云。Eureka 提供了完整的 Service Registry 和 Service Discovery 实现,也是 Spring Cloud 体系中最重要最核心的组件之一。简单来说 ,Eureka 就是 Ne...

2020-05-06 16:15:45 165

原创 solr搜索引擎

一、solr目录简介 bin: Windows及Linux下的可执行文件 contrib: solr扩展库(solr的一些贡献软件/插件,用于增强solr的功能) dist : solr编译(build)过程的jar包文件,以及相关的jar包引用 docs:API文档 example : solr的工程例子 licenses : 和sol...

2020-03-01 21:41:31 300

原创 MySQL 日期查询

在mysql使用过程中,日期一般都是以datetime、timestamp等格式进行存储的,但有时会因为特殊的需求或历史原因,日期的存储格式是varchar,那么我们该如何处理这个varchar格式的日期数据呢使用函数STR_TO_DATA(str,format)时间字段为Greens_Data 类型为 varchar查询指定一段时间中的数据并排序1、第一种函数STR_TO_D...

2020-02-29 16:15:30 1389

原创 位运算

位逻辑运算 说明 备注 A&B 按位与 一个数为假,整个结果为假 A|B 按位或 一个数为真,整个结果为真 A^B 异或 两个数相等为假,不相等为真 ~A 取反 一个数为假取反为真,一个数为真取反为假 在按位运算中0相当于false,1相当与trueA B A&B A|B ...

2020-02-01 22:53:36 142

原创 ajax数据瀑布流加载

核心内容$(window).scroll(function () { //获取滚动条高度 var scrollTop = parseInt($(window).scrollTop()); //获取窗口高度 var viewH = $(window).height(); //获取内容高度 var contentH = $(docume...

2019-12-22 14:51:12 265

原创 vue生命周器与实例

图片中文字过小,请用放大镜查看vue实例vue生命周期函数函数名称 阶段 说明 beforeCreate 创建阶段:创建之前 在beforeCreate执行的时候 data和methods中的数据尚未被初始化 created 创建阶段:创建 在created执行的时候 data和methods已经被初始化好了。如果要调用methods中...

2019-12-05 11:53:00 134

Xshell5andXftp.zip

Xshell5和Xftp软件,对linux操作系统发送指令和上传、下载文件软件,不需要到终端去发送指令

2020-05-13

vuedevtools安装.zip

vuedevtools工具插件用来识别VUE写的网站,同时可也用来调试vue写的前端项目或者程序,也可查看vue项目中共的数据等

2020-05-12

空空如也

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

TA关注的人

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