<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Big Data]]></title><description><![CDATA[当下的拼搏，照亮自我突破的勇气。]]></description><link>https://blog.youkuaiyun.com/weixin_42575310</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; weixin_42575310]]></copyright><item><title><![CDATA[生产者与消费者问题？]]></title><link>https://blog.youkuaiyun.com/weixin_42575310/article/details/123595587</link><guid>https://blog.youkuaiyun.com/weixin_42575310/article/details/123595587</guid><author>weixin_42575310</author><pubDate>Sat, 19 Mar 2022 15:47:54 +0800</pubDate><description><![CDATA[生产者消费者模式是并发、多线程编程中经典的设计模式。

简单来看，就是一个类负责生产，一个类负责消费。举例来说，一个变量，生产者不断增加这个变量，消费者不断减少这个变量。在互联网应用中，抢票机制就是应用了该模式，比如大麦网演唱会门票抢票，12306火车票抢票等。


1、生产者与消费者问题 synchronized 版本


假设有两个线程A和B，操作同一个变量，A线程+1，B线程-1， 交替循环进行


package cn.dczh.juc;

/**
 * @ClassName: A...]]></description><category></category></item><item><title><![CDATA[Lock锁]]></title><link>https://blog.youkuaiyun.com/weixin_42575310/article/details/118697563</link><guid>https://blog.youkuaiyun.com/weixin_42575310/article/details/118697563</guid><author>weixin_42575310</author><pubDate>Sat, 19 Mar 2022 15:04:26 +0800</pubDate><description><![CDATA[Lock实现提供比使用synchronized方法和语句可以获得的更广泛的锁定操作。 它们允许更灵活的结构化，可能具有完全不同的属性，并且可以支持多个相关联的对象Condition


1、传统的synchronized





package cn.dczh.juc;

/**
 * @ClassName: MaipiaoDemo1
 * @description: 买票案例 synchronized版本
 * @author: 
 * @date: 2022/3/16 20:39
 * @ve...]]></description><category></category></item><item><title><![CDATA[微服务六种设计模式]]></title><link>https://blog.youkuaiyun.com/weixin_42575310/article/details/120947337</link><guid>https://blog.youkuaiyun.com/weixin_42575310/article/details/120947337</guid><author>weixin_42575310</author><pubDate>Mon, 25 Oct 2021 10:28:38 +0800</pubDate><description><![CDATA[1、聚合设计模式

  聚合设计模式常用于报表服务，在微服务系统中报表服务是肯定存在的。





2、代理设计模式

  在微服务架构中代理服务是必然存在的，常用的代理服务是网关服务。

  微服务的各个服务是没有状态的，需要通过统一的入口（代理服务）经过权限的校验、请求的过滤（非法请求、SQL注入等），然后请求具体的服务。





3、分支设计模式

  这种模式是聚合器模式的扩展，允许同时调用两个微服务链



4、异步消息传递设计模式

  虽然REST设计模式非常流...]]></description><category></category></item><item><title><![CDATA[Mybatis-Plus&&Druid多数据源配置]]></title><link>https://blog.youkuaiyun.com/weixin_42575310/article/details/118085543</link><guid>https://blog.youkuaiyun.com/weixin_42575310/article/details/118085543</guid><author>weixin_42575310</author><pubDate>Mon, 21 Jun 2021 14:23:18 +0800</pubDate><description><![CDATA[多数据源配置思路


目录

多数据源配置思路

]]></description><category></category></item><item><title><![CDATA[docker（CentOS7）安装]]></title><link>https://blog.youkuaiyun.com/weixin_42575310/article/details/116378935</link><guid>https://blog.youkuaiyun.com/weixin_42575310/article/details/116378935</guid><author>weixin_42575310</author><pubDate>Mon, 03 May 2021 17:57:00 +0800</pubDate><description><![CDATA[前提条件


Docker运行对内核要求比较高，因此一般建议直接在Ubuntu这样的平台运行。但作为一个容器标准，Docker也是支持其他如CentOS, Mac OS X, Windows等平台。目前Docker支持以下版本CentOS:
	在运行CentOS 6.5及以后版本时，需要内核版本&gt;=2.6.32-431，因为这些内核包含了运行Docker的一些特定修改

[root@izbp15w3wc1228gxqn1rzqz ~]# uname -r 
3.10.0-514.26.2.el7...]]></description><category></category></item><item><title><![CDATA[spring生命周期]]></title><link>https://blog.youkuaiyun.com/weixin_42575310/article/details/115801617</link><guid>https://blog.youkuaiyun.com/weixin_42575310/article/details/115801617</guid><author>weixin_42575310</author><pubDate>Sat, 17 Apr 2021 21:07:17 +0800</pubDate><description><![CDATA[什么是spring？


Spring是一个开源框架，它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。

Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而，Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言，任何Java应用都可以从Spring中受益。

目的：解决企业应用开发的复杂性
	功能：使用基本的JavaBean代替EJB，并提供了更多的企业应用功能
	范围：任何Java应用
	它是一个容器框架，用来装javabe.]]></description><category></category></item><item><title><![CDATA[初始GUC（一）]]></title><link>https://blog.youkuaiyun.com/weixin_42575310/article/details/115284227</link><guid>https://blog.youkuaiyun.com/weixin_42575310/article/details/115284227</guid><author>weixin_42575310</author><pubDate>Sun, 28 Mar 2021 18:23:57 +0800</pubDate><description><![CDATA[1、什么时JUC

JUC就是java.util .concurrent工具包的简称。这是一个处理线程的工具包。



2、什么是进程与线程

进程：进程是程序的一次执行，进程是一个程序及其数据在处理机上顺序执行时所发生的活动，进程是具有独立功能的程序在一个数据集合上运行的过程，它是系统进行资源分配和调度的一个独立单位。

简单来说：一个进程包含多个线程，至少包含一个。


线程：线程作为资源调度的基本单位，是程序的执行单元，执行路径(单线程：一条执行路径，多线程：多条执行路径)。是程序使用CPU的最基本单]]></description><category></category></item><item><title><![CDATA[nacos(windows)配置]]></title><link>https://blog.youkuaiyun.com/weixin_42575310/article/details/109263523</link><guid>https://blog.youkuaiyun.com/weixin_42575310/article/details/109263523</guid><author>weixin_42575310</author><pubDate>Sat, 24 Oct 2020 18:16:55 +0800</pubDate><description><![CDATA[1024快乐

]]></description><category></category></item><item><title><![CDATA[vue中async和await用法(地狱回调)]]></title><link>https://blog.youkuaiyun.com/weixin_42575310/article/details/108870189</link><guid>https://blog.youkuaiyun.com/weixin_42575310/article/details/108870189</guid><author>weixin_42575310</author><pubDate>Tue, 29 Sep 2020 16:25:00 +0800</pubDate><description><![CDATA[很多时候我们有很多业务，需要依次调用多个后台接口，并且后一个接口需要依赖前一个接口的响应结果，如果上一个接口挂了，后一个接口也就不需要调用了。

先说一下async的用法，它作为一个关键字放到函数前面，用于表示函数是一个异步函数，因为async就是异步的意思， 异步函数也就意味着该函数的执行不会阻塞后面代码的执行。 写一个async 函数


async function timeout() {
　　return 'hello world async';
}

语法很简单，就是在函数前面加上async关键.]]></description><category></category></item><item><title><![CDATA[Redis哨兵模式（Sentinel）]]></title><link>https://blog.youkuaiyun.com/weixin_42575310/article/details/108209579</link><guid>https://blog.youkuaiyun.com/weixin_42575310/article/details/108209579</guid><author>weixin_42575310</author><pubDate>Mon, 07 Sep 2020 21:22:30 +0800</pubDate><description><![CDATA[简介

主从切换技术的方法是：当主服务器宕机后，需要手动把一台从服务器切换为主服务器，这就需要人工干预，费事费力，还会造成一段时间内服务不可用。这不是一种推荐的方式，更多时候，我们优先考虑哨兵模式。

哨兵模式概述

哨兵模式是一种特殊的模式，首先Redis提供了哨兵的命令，哨兵是一个独立的进程，作为进程，它会独立运行。其原理是哨兵通过发送命令，等待Redis服务器响应，从而监控运行的多个Redis实例。



哨兵模式写两个作用：


	通过发送命令，让Redis服务器返回监控其运行状态，包括主服务器和从]]></description><category></category></item><item><title><![CDATA[springboot多线程定时任务]]></title><link>https://blog.youkuaiyun.com/weixin_42575310/article/details/108366283</link><guid>https://blog.youkuaiyun.com/weixin_42575310/article/details/108366283</guid><author>weixin_42575310</author><pubDate>Wed, 02 Sep 2020 17:23:51 +0800</pubDate><description><![CDATA[新建ScheduleConfig类


@Configuration
@EnableScheduling
public class ScheduleConfig implements SchedulingConfigurer, AsyncConfigurer {
    @Override
    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
        TaskScheduler taskScheduler = t]]></description><category></category></item><item><title><![CDATA[spring boot结合redis实现阿里云短信验证码]]></title><link>https://blog.youkuaiyun.com/weixin_42575310/article/details/108316426</link><guid>https://blog.youkuaiyun.com/weixin_42575310/article/details/108316426</guid><author>weixin_42575310</author><pubDate>Mon, 31 Aug 2020 10:54:16 +0800</pubDate><description><![CDATA[登录阿里云控制台

阿里云地址：https://www.aliyun.com/

在搜索栏目搜索短信服务，然后点击；



在控制台首页点击我的--&gt;AccessKey管理，然后点击





点击开始使用子用户



然后创建用户组并且给用户组添加短信权限(在搜索栏搜索sms),然后创建用户，用户添加至用户组，
...]]></description><category></category></item><item><title><![CDATA[MySQL存储过程]]></title><link>https://blog.youkuaiyun.com/weixin_42575310/article/details/108276865</link><guid>https://blog.youkuaiyun.com/weixin_42575310/article/details/108276865</guid><author>weixin_42575310</author><pubDate>Fri, 28 Aug 2020 11:53:00 +0800</pubDate><description><![CDATA[存储过程简介

存储过程（Stored Procedure）是在大型数据库系统中，一组为了完成特定功能的SQL 语句集，存储在数据库中，经过第一次编译后调用不需要再次编译，用户通过指定存储过程的名字并给出参数（如果该存储过程带有参数）来执行它。存储过程是数据库中的一个重要对象。

存储过程的特点


	能完成较复杂的判断和运算
	
	
	可编程行强，灵活
	
	
	SQL编程的代码可重复使用
	
	
	执行的速度相对快一些
	
	
	减少网络之间的数据传输，节省开销 
	



...]]></description><category></category></item><item><title><![CDATA[Redis集群搭建及主从复制]]></title><link>https://blog.youkuaiyun.com/weixin_42575310/article/details/108103247</link><guid>https://blog.youkuaiyun.com/weixin_42575310/article/details/108103247</guid><author>weixin_42575310</author><pubDate>Sun, 23 Aug 2020 22:06:26 +0800</pubDate><description><![CDATA[主从复制概述

主从复制，是指将一台Redis服务器的数据，复制到其他的Redis服务器。前者称为主节点(master)，后者称为从节点(slave)；数据的复制是单向的，只能由主节点到从节点。

默认情况下，每台Redis服务器都是主节点；且一个主节点可以有多个从节点(或没有从节点)，但一个从节点只能有一个主节点。

主从复制的作用

主从复制的作用主要包括：


	数据冗余：主从复制实现了数据的热备份，是持久化之外的一种数据冗余方式。
	
	
	故障恢复：当主节点出现问题时，可以由从节点提供服务，实现快]]></description><category></category></item><item><title><![CDATA[springboot整合Redis发布订阅]]></title><link>https://blog.youkuaiyun.com/weixin_42575310/article/details/108101750</link><guid>https://blog.youkuaiyun.com/weixin_42575310/article/details/108101750</guid><author>weixin_42575310</author><pubDate>Wed, 19 Aug 2020 15:34:27 +0800</pubDate><description><![CDATA[简介

发布订阅（Pub/Sub）：目前广泛使用的通信模型，它采用事件作为基本的通信机制，提供大规模系统所要求的松散耦合的交互模式：订阅者(如客户端)以事件订阅的方式表达出它有兴趣接收的一个事件或一类事件；发布者(如服务器)可将订阅者感兴趣的事件随时通知相关订阅者------是不是与设计模式里面的观察者模式一个妈妈生的？

最经典的应用场景就是微博和公众号，任何粉丝只要关注（订阅）了某一个人的微博或者公众号，该微博或者公众号只有有状态更新，都会将消息推送（发布）到粉丝..

命令实现发布订阅

redis订]]></description><category></category></item><item><title><![CDATA[Redis中RDB与AOF的区别]]></title><link>https://blog.youkuaiyun.com/weixin_42575310/article/details/108069630</link><guid>https://blog.youkuaiyun.com/weixin_42575310/article/details/108069630</guid><author>weixin_42575310</author><pubDate>Tue, 18 Aug 2020 09:34:42 +0800</pubDate><description><![CDATA[简介

由于Redis的数据都存放在内存中，如果没有配置持久化，redis重启后数据就全丢失了，于是需要开启redis的持久化功能，将数据保存到磁盘上，当redis重启后，可以从磁盘中恢复数据。redis提供两种方式进行持久化，一种是RDB持久化（原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化），另外一种是AOF持久化（原理是将Reids的操作日志以追加的方式写入文件）。那么这两种持久化方式有什么区别呢，改如何选择呢？网上看了大多数都是介绍这两种方式怎么配置，怎么使用，就是没有介绍]]></description><category></category></item><item><title><![CDATA[springboot整合redis]]></title><link>https://blog.youkuaiyun.com/weixin_42575310/article/details/107993620</link><guid>https://blog.youkuaiyun.com/weixin_42575310/article/details/107993620</guid><author>weixin_42575310</author><pubDate>Thu, 13 Aug 2020 23:02:44 +0800</pubDate><description><![CDATA[Jedis和Lettuce的区别在哪？

1、Jedis 是直连模式，在多个线程间共享一个 Jedis 实例时是线程不安全的，每个线程都去拿自己的 Jedis 实例，当连接数量增多时，物理连接成本就较高了。

2、Lettuce的连接是基于Netty的，连接实例可以在多个线程间共享，如果你不知道Netty也没事，大致意思就是一个多线程的应用可以使用同一个连接实例，而不用担心并发线程的数量。通过异步的方式可以让我们更好地利用系统资源。

既然有这么大的好处，干脆就用了这个，跟上时代的变化。下面新建一个Spri]]></description><category></category></item><item><title><![CDATA[初始redis-基本指令]]></title><link>https://blog.youkuaiyun.com/weixin_42575310/article/details/107892836</link><guid>https://blog.youkuaiyun.com/weixin_42575310/article/details/107892836</guid><author>weixin_42575310</author><pubDate>Sun, 09 Aug 2020 22:13:04 +0800</pubDate><description><![CDATA[redis

dis是一个开源（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（哈希]]></description><category></category></item><item><title><![CDATA[spring boot-自定义注解实现日志]]></title><link>https://blog.youkuaiyun.com/weixin_42575310/article/details/107753116</link><guid>https://blog.youkuaiyun.com/weixin_42575310/article/details/107753116</guid><author>weixin_42575310</author><pubDate>Sun, 02 Aug 2020 22:45:31 +0800</pubDate><description><![CDATA[功能简介

本文主要记录如何使用aop切面的方式来实现日志记录功能。

主要记录的信息有:操作人，方法名，参数，运行时间，操作类型(增删改查)，详细描述，返回值。

功能结构图



代码实现

这个是最主要的类,可以使用自定义注解或针对包名实现AOP增强。

1)这里实现了对自定义注解的环绕增强切点，对使用了自定义注解的方法进行AOP切面处理；

2)对方法运行时间进行监控；

3)对方法名，参数名，参数值，对日志描述的优化处理；

在方法上增加@Aspect注解声明切面,使用@Pointcut注解...]]></description><category></category></item><item><title><![CDATA[统一返回json数据封装]]></title><link>https://blog.youkuaiyun.com/weixin_42575310/article/details/107012966</link><guid>https://blog.youkuaiyun.com/weixin_42575310/article/details/107012966</guid><author>weixin_42575310</author><pubDate>Mon, 29 Jun 2020 09:06:48 +0800</pubDate><description><![CDATA[简介

首先，采用的是springboot，在controller中使用了@RestController或者@ResponseBody注解，返回的数据本身就是json格式。但是这样的json串在前后端分离使用中并不满足实际的效果，因此需要进行相应的封装，以满足前端能够正确处理获取的数据。

导入依赖(使用阿里的fastjson)


&lt;dependency&gt;
      &lt;groupId&gt;com.alibaba&lt;/groupId&gt;
      &lt;artifactId]]></description><category></category></item></channel></rss>