<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[WADE_AJJD的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/WADE_AJJD</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; WADE_AJJD]]></copyright><item><title><![CDATA[SSM整合]]></title><link>https://blog.youkuaiyun.com/WADE_AJJD/article/details/122041127</link><guid>https://blog.youkuaiyun.com/WADE_AJJD/article/details/122041127</guid><author>WADE_AJJD</author><pubDate>Mon, 20 Dec 2021 16:55:26 +0800</pubDate><description><![CDATA[Spring、SpringMVC、Mybatis框架搭建，以及三个框架的整合]]></description><category></category></item><item><title><![CDATA[Docker06：DockerFile]]></title><link>https://blog.youkuaiyun.com/WADE_AJJD/article/details/120081283</link><guid>https://blog.youkuaiyun.com/WADE_AJJD/article/details/120081283</guid><author>WADE_AJJD</author><pubDate>Fri, 03 Sep 2021 16:24:35 +0800</pubDate><description><![CDATA[一、Docker
1、docker简介

dockerfile是用来构建docker镜像的文件，命令参数脚本。

2、构建步骤
①、 编写一个dockerfile文件
②、 docker build 构建称为一个镜像
③、 docker run运行镜像
④、 docker push发布镜像（DockerHub 、阿里云仓库)


3、dockerfile构建过程


每个保留关键字(指令）都是必须是大写字母


执行从上到下顺序


#表示注释


每一个指令都会创建提交一个新的镜像，并提交


Docke]]></description><category></category></item><item><title><![CDATA[Docker05：容器数据卷与数据卷容器]]></title><link>https://blog.youkuaiyun.com/WADE_AJJD/article/details/120065881</link><guid>https://blog.youkuaiyun.com/WADE_AJJD/article/details/120065881</guid><author>WADE_AJJD</author><pubDate>Fri, 03 Sep 2021 09:31:24 +0800</pubDate><description><![CDATA[一、容器数据卷
1、什么是数据卷

当将应用软件和环境打包成一个镜像，当生成一个容器，如果数据都存在容器中时，删除容器就等于删除所有数据了，这是就需要将容器中的数据保存到本地。
容器间可以有一个数据共享的技术，docker容器产生的数据同步到本地。
容器的持久化和同步操作。
容器间也是可以数据共享的。

2、如何使用数据卷技术

直接使用命令挂载

docker run -it -v 主机目录:容器内目录  -p 主机端口:容器内端口

# /home/ceshi：主机home目录下的ceshi文件夹  映]]></description><category></category></item><item><title><![CDATA[Docker04：docker镜像原理]]></title><link>https://blog.youkuaiyun.com/WADE_AJJD/article/details/120061833</link><guid>https://blog.youkuaiyun.com/WADE_AJJD/article/details/120061833</guid><author>WADE_AJJD</author><pubDate>Thu, 02 Sep 2021 17:09:04 +0800</pubDate><description><![CDATA[一、镜像
1、什么是镜像

镜像是一种轻量级、可执行的独立软件包，用来打包软件运行环境和基于运行环境开发的软件，他包含运行某个软件所需的所有内容，包括代码、运行时库、环境变量和配置文件。
所有应用，直接打包docker镜像，就可以直接跑起来。

2、怎么获得镜像

从远程仓库下载
别人拷贝给你
自己制作一个镜像 DockerFile

3、docker镜像加载原理

UnionFs （联合文件系统）：

一种分层、轻量级并且高性能的文件系统，他支持对文件系统的修改作为一次提交来一层层的叠加，同时可以将不同目]]></description><category></category></item><item><title><![CDATA[Docker03：docker安装nginx、tomcat、es+kibana]]></title><link>https://blog.youkuaiyun.com/WADE_AJJD/article/details/120058052</link><guid>https://blog.youkuaiyun.com/WADE_AJJD/article/details/120058052</guid><author>WADE_AJJD</author><pubDate>Thu, 02 Sep 2021 15:06:09 +0800</pubDate><description><![CDATA[一、Docker安装Nginx

安装命令

#1. 搜索镜像 search 建议大家去docker搜索，可以看到帮助文档
[root@iz2zeak7sgj6i7hrb2g862z ~]# docker search nginx
#2. 拉取下载镜像 pull
[root@iz2zeak7sgj6i7hrb2g862z ~]# docker pull nginx
#3. 查看是否下载成功镜像
[root@iz2zeak7sgj6i7hrb2g862z ~]# docker images
#3. 运行测试
]]></description><category></category></item><item><title><![CDATA[Docker02：docker的命令]]></title><link>https://blog.youkuaiyun.com/WADE_AJJD/article/details/120036599</link><guid>https://blog.youkuaiyun.com/WADE_AJJD/article/details/120036599</guid><author>WADE_AJJD</author><pubDate>Wed, 01 Sep 2021 16:02:53 +0800</pubDate><description><![CDATA[一、Docker的常用命令
1、帮助命令
docker version        #显示docker的版本信息。
docker info           #显示docker的系统信息，包括镜像和容器的数量
docker 命令 --help     #帮助命令

2、镜像命令
①、基本命令
docker images     #查看所有本地主机上的镜像，可以使用docker image ls代替
docker search     #搜索镜像
docker pull       #下载镜像 docke]]></description><category></category></item><item><title><![CDATA[Docker01：docker入门]]></title><link>https://blog.youkuaiyun.com/WADE_AJJD/article/details/120033219</link><guid>https://blog.youkuaiyun.com/WADE_AJJD/article/details/120033219</guid><author>WADE_AJJD</author><pubDate>Wed, 01 Sep 2021 11:44:10 +0800</pubDate><description><![CDATA[一、Docker概述
1、docker为什么出现

传统的项目发布，开发和运维使用的环境不是完全一样的，经常出现在开发电脑环境上可以运行，但是在运维的电脑上却不能正常运行。
发布一个项目，不能带上相应的环境，重新配置环境麻烦且容易出错。

2、docker的出现

docker可以使开发的项目和环境一起打包，保证在每个电脑上运行的环境都一样。
使得开发部署上线一气呵成。
docker通过隔离机制，可以使得服务器的利用达到极致。

3、docker能干什么
①、传统虚拟机技术


缺点

占用十分多的资源
启]]></description><category></category></item><item><title><![CDATA[SpringCloud04：hystrixs熔断器与Zuul路由网关]]></title><link>https://blog.youkuaiyun.com/WADE_AJJD/article/details/120009469</link><guid>https://blog.youkuaiyun.com/WADE_AJJD/article/details/120009469</guid><author>WADE_AJJD</author><pubDate>Tue, 31 Aug 2021 09:59:27 +0800</pubDate><description><![CDATA[一、熔断器Hystrixs
1、分布式系统面临的问题

复杂分布式体系结构中的应用程序有数十个依赖关系，每个依赖关系在某些时候将不可避免的失败。

多个微服务之间调用的时候，假设微服务A调用微服务B和微服务C，微服务B 和微服务C又调用其他的微服务，这就是所谓的 “扇出”、如果扇出的链路上某个微服务的调用响应时间过长或者不可用，对微服务A的调用就会占用越来越多的系统资源，进而引起系统崩溃，所谓的 “雪崩效应。

2、什么是Hystrixs

Hystrix是一个用于处理分布式系统的延迟和容错的开源库，在分布]]></description><category></category></item><item><title><![CDATA[SpringCloud03：Ribbon与Feign]]></title><link>https://blog.youkuaiyun.com/WADE_AJJD/article/details/120000286</link><guid>https://blog.youkuaiyun.com/WADE_AJJD/article/details/120000286</guid><author>WADE_AJJD</author><pubDate>Mon, 30 Aug 2021 17:55:27 +0800</pubDate><description><![CDATA[一、Ribbon负载均衡（基于客户端）
1、什么是Ribbon

简单的说，Ribbon是Netflix发布的开源项目，主要功能是提供客户端的软件负载均衡算法，将NetFlix的中间层服务连接在一起。Ribbon的客户端组件提供一系列完整的配置项如：连接超时、重试等等。简单的说，就是在配置文件中列出LoadBalancer（简称LB：负载均衡）后面所有的机器，Ribbon会自动的帮助你基于某种规则（如简单轮询，随机连接等等）去连接这些机器。我们也很容易使用Ribbon实现自定义的负载均衡算法。

2、Rib]]></description><category></category></item><item><title><![CDATA[SpringCloud02：搭建以及基本使用]]></title><link>https://blog.youkuaiyun.com/WADE_AJJD/article/details/119991738</link><guid>https://blog.youkuaiyun.com/WADE_AJJD/article/details/119991738</guid><author>WADE_AJJD</author><pubDate>Mon, 30 Aug 2021 16:29:25 +0800</pubDate><description><![CDATA[一、微服务基本搭建
1、创建父工程

pom.xml文件

&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 h]]></description><category></category></item><item><title><![CDATA[SpringCloud01:微服务入门]]></title><link>https://blog.youkuaiyun.com/WADE_AJJD/article/details/119989976</link><guid>https://blog.youkuaiyun.com/WADE_AJJD/article/details/119989976</guid><author>WADE_AJJD</author><pubDate>Mon, 30 Aug 2021 10:24:51 +0800</pubDate><description><![CDATA[一、微服务概述
1、什么是微服务

就目前而言，对于微服务，业界并没有一个统一的，标准的定义但通常而言，微服务架构是一种架构模式，或者说是一种架构风格， 它提倡将单一的应用程序划分成一组小的服务，每个服务运行在其独立的自己的进程内，服务之间互相协调，互相配置，为用户提供最终价值。服务之间采用轻量级的通信机制互相沟通，每个服务都围绕着具体的业务进行构建，并且能够被独立的部署到生产环境中，另外，应尽量避免统一的，集中式的服务管理机制，对具体的一个服务而言，应根据业务上下文，选择合适的语言，工具对其进行构建，可以]]></description><category></category></item><item><title><![CDATA[JUC编程13：各种锁的理解]]></title><link>https://blog.youkuaiyun.com/WADE_AJJD/article/details/119382770</link><guid>https://blog.youkuaiyun.com/WADE_AJJD/article/details/119382770</guid><author>WADE_AJJD</author><pubDate>Wed, 04 Aug 2021 15:28:12 +0800</pubDate><description><![CDATA[一、公平锁与非公平锁

公平锁： 非常公平， 不能够插队，必须先来后到
非公平锁：非常不公平，可以插队 （默认都是非公平）
底层代码

public ReentrantLock() {
    sync = new NonfairSync(); 
}
public ReentrantLock(boolean fair) {
    sync = fair ? new FairSync() : new NonfairSync(); 
}

二、可重入锁（递归锁）

1、synchronized版

代码演示
]]></description><category></category></item><item><title><![CDATA[JUC编程12：深入理解CAS与原子引用]]></title><link>https://blog.youkuaiyun.com/WADE_AJJD/article/details/119375320</link><guid>https://blog.youkuaiyun.com/WADE_AJJD/article/details/119375320</guid><author>WADE_AJJD</author><pubDate>Wed, 04 Aug 2021 10:40:22 +0800</pubDate><description><![CDATA[一、CAS
1、什么是CAS

概念：假设多个线程操作共享资源时不会发生并发冲突,只是在最后更新共享资源的时候判断一下在此期间有没有别的线程修改了这个共享资源。如果发生冲突就重试，直到没有冲突，更新成功。CAS就是一种类似乐观锁实现方式。

2、代码演示

CAS compareAndSet : 比较并交换！

public class CASTest {
    public static void main(String[] args) {
        AtomicInteger atomicInt]]></description><category></category></item><item><title><![CDATA[JUC编程11:JMM、Volatile]]></title><link>https://blog.youkuaiyun.com/WADE_AJJD/article/details/119351537</link><guid>https://blog.youkuaiyun.com/WADE_AJJD/article/details/119351537</guid><author>WADE_AJJD</author><pubDate>Wed, 04 Aug 2021 08:58:20 +0800</pubDate><description><![CDATA[一、什么是JMM
1、概念

JMM:Java虚拟机是一个实现了跨平台的虚拟系统，因此它也有自己的内存模型，即Java内存模型（Java Memory Model, JMM）。

2、JMM同步


线程解锁前，必须把共享变量立刻刷回主存。


线程加锁前，必须读取主存中的最新值到工作内存中！


加锁和解锁是同一把锁。


3、八种操作



内存交互操作有8种，虚拟机实现必须保证每一个操作都是原子的，不可在分的（对于double和long类型的变量来说，load、store、read和writ操作在某些]]></description><category></category></item><item><title><![CDATA[JUC编程10：异步回调之Future]]></title><link>https://blog.youkuaiyun.com/WADE_AJJD/article/details/119349416</link><guid>https://blog.youkuaiyun.com/WADE_AJJD/article/details/119349416</guid><author>WADE_AJJD</author><pubDate>Tue, 03 Aug 2021 14:46:37 +0800</pubDate><description><![CDATA[一、什么是future
1、概念

对将来的某个事件的结果进行建模


2、执行步骤

异步调用
异步执行
成功回调
失败回调

3、代码演示
①、没有返回值的异步回调：runAsync
public class NoBackFuture {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        //没有返回值的异步回调：runAsync
        Com]]></description><category></category></item><item><title><![CDATA[JUC编程09：ForkJoin]]></title><link>https://blog.youkuaiyun.com/WADE_AJJD/article/details/119324088</link><guid>https://blog.youkuaiyun.com/WADE_AJJD/article/details/119324088</guid><author>WADE_AJJD</author><pubDate>Mon, 02 Aug 2021 18:14:20 +0800</pubDate><description><![CDATA[一、什么是ForkJoin？
1、概念

ForkJoin 从 JDK 1.7开始 ， 并行执行任务。
在大数据量下，能够提高效率。
它能够将大任务拆分成小的任务。
底层维护的是一个双端队列
特点为工作窃取




二、代码演示
public class ForkjoinDemo extends RecursiveTask&lt;Long&gt; {

    private Long start;
    private Long end;

    //设置临界值
    private Long te]]></description><category></category></item><item><title><![CDATA[JUC编程08：四大函数式接口与Stream流式计算]]></title><link>https://blog.youkuaiyun.com/WADE_AJJD/article/details/119252853</link><guid>https://blog.youkuaiyun.com/WADE_AJJD/article/details/119252853</guid><author>WADE_AJJD</author><pubDate>Mon, 02 Aug 2021 10:58:04 +0800</pubDate><description><![CDATA[一、Function函数式接口

1、传统的匿名内部类写法
public class FunctionTest {
    public static void main(String[] args) {
        //传统的匿名内部类写法
        Function function= new Function&lt;String, String&gt;() {
            @Override
            public String apply(String str) ]]></description><category></category></item><item><title><![CDATA[JUC编程07：线程池以及调优]]></title><link>https://blog.youkuaiyun.com/WADE_AJJD/article/details/119248306</link><guid>https://blog.youkuaiyun.com/WADE_AJJD/article/details/119248306</guid><author>WADE_AJJD</author><pubDate>Fri, 30 Jul 2021 17:03:22 +0800</pubDate><description><![CDATA[一、线程池
1、概念
池化技术：

本质：占用系统的资源！
事先准备好一些资源，有人要用，就来我这里拿，用完之后还给我。

2、优点

降低系统资源的消耗
提高响应的速度
方便管理

3、三大方法


Executors 工具类的3大方法
①、 创建单个线程的线程池：Executors.newSingleThreadExecutor();
②、创建一个固定大小的线程池： Executors.newFixedThreadPool(5);
③、 创建一个可伸缩的线程池：Executors.newCachedTh]]></description><category></category></item><item><title><![CDATA[JUC编程06：读写锁、阻塞队列和同步队列]]></title><link>https://blog.youkuaiyun.com/WADE_AJJD/article/details/119240925</link><guid>https://blog.youkuaiyun.com/WADE_AJJD/article/details/119240925</guid><author>WADE_AJJD</author><pubDate>Fri, 30 Jul 2021 14:27:49 +0800</pubDate><description><![CDATA[一、读写锁ReadWriteLock


代码演示
①、缓存类

public class MyCache {
    private volatile Map&lt;String,Object&gt; map=new HashMap&lt;String, Object&gt;();
    //创建一个读写锁
  private ReentrantReadWriteLock readWriteLock=  new  ReentrantReadWriteLock();

  //写入的时候希望只有一个线程操]]></description><category></category></item><item><title><![CDATA[JUC编程05：Callable和常用的辅助类]]></title><link>https://blog.youkuaiyun.com/WADE_AJJD/article/details/119183873</link><guid>https://blog.youkuaiyun.com/WADE_AJJD/article/details/119183873</guid><author>WADE_AJJD</author><pubDate>Wed, 28 Jul 2021 17:48:09 +0800</pubDate><description><![CDATA[一、Callable接口


Callable 和 Runable 对比：比如Callable 是你自己，你想通过你的女朋友 Runable 认识她的闺蜜 Thread


Callable 是 java.util 包下 concurrent 下的接口，有返回值，可以抛出被检查的异常
Runable 是 java.lang 包下的接口，没有返回值，不可以抛出被检查的异常
二者调用的方法不同，run()/ call()
代码演示

class MyThread implements Callable&lt;I]]></description><category></category></item></channel></rss>