<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[licmi的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/licmi</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; licmi]]></copyright><item><title><![CDATA[java多线程基础高级篇（详解下）面试必备]]></title><link>https://blog.youkuaiyun.com/licmi/article/details/112502207</link><guid>https://blog.youkuaiyun.com/licmi/article/details/112502207</guid><author>licmi</author><pubDate>Mon, 11 Jan 2021 23:08:19 +0800</pubDate><description><![CDATA[java多线程基础高级篇（详解下）面试必备1、容器1.1、容器类关系图1.2、HashMap实现分析1.2.1、JDK1.8之前并发问题1.2.2、JDK1.8并发问题1.3、HashMap并发问题解决方案2、同步容器2.1、同步容器介绍2.2、HashTable3、并发容器3.1、并发容器简介3.2、ConcurrentHashMap数据结构3.2.1、Java7基于分段的数据结构3.2.2、Java8基于CAS的数据结构3.3、ConcurrentHashMap同步原理3.3.1、Java7同步实现分析]]></description><category></category></item><item><title><![CDATA[java多线程基础高级篇（详解上）面试必备]]></title><link>https://blog.youkuaiyun.com/licmi/article/details/112212302</link><guid>https://blog.youkuaiyun.com/licmi/article/details/112212302</guid><author>licmi</author><pubDate>Mon, 11 Jan 2021 23:07:57 +0800</pubDate><description><![CDATA[java多线程高级篇（详解）1、Java内存模型1.1.Java程序执行流程回顾1.2、Java内存模型2、多线程特性3、多线程控制类3.1、ThreadLocal3.2、原子类3.2.1、非原子性操作问题演示3.2.2、原子类解决非原子性操作问题3.2.3、原子类CAS原理分析3.2.4、CAS的ABA问题及解决3.3、Lock类3.3.1.Lock接口关系图3.3.2、可重入锁CPU多级缓存
1、Java内存模型
Java内存模型是每个java程序员必须掌握理解的，这是Java的核心基础，对我们编写代码]]></description><category></category></item><item><title><![CDATA[java多线程基础（二）线程死锁及线程通讯！！面试必备]]></title><link>https://blog.youkuaiyun.com/licmi/article/details/112161893</link><guid>https://blog.youkuaiyun.com/licmi/article/details/112161893</guid><author>licmi</author><pubDate>Mon, 04 Jan 2021 14:56:14 +0800</pubDate><description><![CDATA[学习多线程基础（二）线程死锁及线程通讯1、线程死锁1.1、什么是死锁1.2、死锁产生的必要条件互斥条件不可剥夺条件请求与保持条件循环等待条件1.3、死锁示例代码1.4、死锁处理死锁预防1.5、死锁避免有序资源分配法银行家算法顺序加锁限时加锁死锁检测死锁恢复2、线程通讯2.1、为什么要线程通信2.2、线程通讯方式休眠唤醒方式2.3、CountDownLatch方式2.4、CyclicBarrier方式2.5、Semaphore方式小结sleep和wait区别wait和notify区别
1、线程死锁
1.1、什]]></description><category></category></item><item><title><![CDATA[java多线程基础（一）面试必备]]></title><link>https://blog.youkuaiyun.com/licmi/article/details/112122267</link><guid>https://blog.youkuaiyun.com/licmi/article/details/112122267</guid><author>licmi</author><pubDate>Sun, 03 Jan 2021 22:57:20 +0800</pubDate><description><![CDATA[学习高并发多线程基础必备（超详细）1、什么是并发与并行2、什么是进程、线程3、线程创建3.1、继承Thread类3.2、实现Runnable接口3.4、实现Callable接口3.5、线程池-Executor3.6、小结4、线程生命周期5、线程安全问题5.1、什么是线程安全5.2、问题演示5.3、问题分析5.4、问题解决-线程同步同步代码块（synchronized）同步方法（synchronized）同步锁（ReentrantLock）5.5、小结6、线程死锁6.1、什么是死锁6.2、死锁产生的必要条件互]]></description><category></category></item><item><title><![CDATA[RabbitMQ整合 SpringCloud实战]]></title><link>https://blog.youkuaiyun.com/licmi/article/details/112029975</link><guid>https://blog.youkuaiyun.com/licmi/article/details/112029975</guid><author>licmi</author><pubDate>Thu, 31 Dec 2020 18:43:21 +0800</pubDate><description><![CDATA[RabbitMQ整合 SpringCloud实战
注意一点，在发送消息的时候对template进行配置mandatory=true保证监听有效
生产端还可以配置其他属性，比如发送重试，超时时间、次数、间隔等
消费端核心配置

首先配置手工确认模式，用于ACK的手工处理，这样我们可以保证消息的可靠性送达，或者在消费端消费失败的时候可以做到重回队列、根据业务记录日志等处理
可以设置消费端的监听个数和最大个数，用于控制消费端的并发情况

@RabbitListener注解的使用
消费端监听@RabbitListe]]></description><category></category></item><item><title><![CDATA[RabbitMQ消息模式（下）]]></title><link>https://blog.youkuaiyun.com/licmi/article/details/112018063</link><guid>https://blog.youkuaiyun.com/licmi/article/details/112018063</guid><author>licmi</author><pubDate>Thu, 31 Dec 2020 16:44:27 +0800</pubDate><description><![CDATA[这里写目录标题消费端限流什么是消费端的限流？消费端限流RabbitMQ提供的解决方案消息的ACK与重回队列消费端手工ACK与NACK消费端的重回队列TTL消息死信队列阶段性小结
消费端限流
什么是消费端的限流？
假设一个场景，首先，我们RabbitMQ服务器有上万条未处理的消息，我们随便打开一个消费者客户端，会出现下面情况：
巨量的消息瞬间全部推送过来，但是我们单个客户端无法同时处理这么多数据！
消费端限流RabbitMQ提供的解决方案
RabbitMQ提供了一种qos（服务质量保证）功能，即在非自动确认消]]></description><category></category></item><item><title><![CDATA[RabbitMQ消息模式（上）及幂等性概念]]></title><link>https://blog.youkuaiyun.com/licmi/article/details/111937553</link><guid>https://blog.youkuaiyun.com/licmi/article/details/111937553</guid><author>licmi</author><pubDate>Tue, 29 Dec 2020 22:58:27 +0800</pubDate><description><![CDATA[RabbitMQ消息模式（上）及自定义消费者消息100%的投递消息如何保障100%的投递成功？幂等性概念Confirm确认消息Return返回消息自定义消费者
消息100%的投递
消息如何保障100%的投递成功？
什么是生产端的可靠性投递？

保障消息的成功发出
保障MQ节点的成功接收
发送端收到MQ节点（Broker）确认应答
完善的消息进行补偿机制

BAT/TMD互联网大厂的解决方案：

消息落库，对消息状态进行打标
消息的延迟投递，做二次确认，回调检查



幂等性概念
幂等性是什么？
我们可以借鉴]]></description><category></category></item><item><title><![CDATA[RabbitMQ入门详解]]></title><link>https://blog.youkuaiyun.com/licmi/article/details/111677010</link><guid>https://blog.youkuaiyun.com/licmi/article/details/111677010</guid><author>licmi</author><pubDate>Mon, 28 Dec 2020 20:41:44 +0800</pubDate><description><![CDATA[RabbitMQ入门详解RabbitMQ简介各大主流中间件对比初识RabbitMQ哪些大厂在用RabbitMQ,为什幺？RabbitMQ高性能的原因？应用场景流量削锋二级目录三级目录
RabbitMQ简介
Rabbit=兔子、MQ=Message queue=消息队列
代表想做最快处理吞吐量的中间件
各大主流中间件对比
MQ选型指标图
MQ 衡量指标：服务性能、数据存储、集群架构
ActiveMQ
ActiveMQ 是 Apache 出品，最流行的，能力强劲的开源消息总线，并且它一
个完全支持 J M S ]]></description><category></category></item><item><title><![CDATA[python入门简单函数]]></title><link>https://blog.youkuaiyun.com/licmi/article/details/111656988</link><guid>https://blog.youkuaiyun.com/licmi/article/details/111656988</guid><author>licmi</author><pubDate>Thu, 24 Dec 2020 22:50:25 +0800</pubDate><description><![CDATA[python入门简单函数定义函数函数返回值函数嵌套调用测试变量范围递归：函数内部调用函数本身lambda表达式
定义函数
1.不带参数
语法： def 函数名():
def say():
			print("世界真美好")

调用函数:   注1：必须放到定义函数的后面
def test():
    print("世界真美好")


test()


2.带一个参数的函数  注2：函数和函数之间空格两行
语法： def 函数名(参数):
		def say(what):
			print(f"{what}]]></description><category></category></item><item><title><![CDATA[Docker数据卷实现数据共享]]></title><link>https://blog.youkuaiyun.com/licmi/article/details/111590513</link><guid>https://blog.youkuaiyun.com/licmi/article/details/111590513</guid><author>licmi</author><pubDate>Wed, 23 Dec 2020 16:46:58 +0800</pubDate><description><![CDATA[Docker数据卷实现数据共享Docker宿主机和容器之间文件拷贝docker copy数据卷数据卷容器
Docker宿主机和容器之间文件拷贝docker copy
前言：
Docker 数据管理
在生产环境中使用 Docker ，往往需要对数据进行持久化，或者需要在多个容器之间进行
数据共享，这必然涉及容器的数据管理操作
容器中的管理数据主要有两种方式：
数据卷 Data Volumes 容器内数据直接映射到本地主机环境；
数据卷容器（Data Volume Containers 使用特定容器维护数据卷
]]></description><category></category></item><item><title><![CDATA[Docker网络配置部署SpringCloud项目]]></title><link>https://blog.youkuaiyun.com/licmi/article/details/111407154</link><guid>https://blog.youkuaiyun.com/licmi/article/details/111407154</guid><author>licmi</author><pubDate>Sun, 20 Dec 2020 19:45:37 +0800</pubDate><description><![CDATA[Docker网络配置部署SpringCloud项目Docker网络配置桥接模式仅主机模式下载tomactDocker网络模式介绍问题Docker部署SpringCloud项目
Docker网络配置
桥接模式

仅主机模式

下载tomact
sudo docker pull tomcat


Docker网络模式介绍
Docker在创建容器时有四种网络模式：bridge/host/container/none，bridge为默认不需要用–net去指定，其他三种模式需要在创建容器时使用–net去指定
1.br]]></description><category></category></item><item><title><![CDATA[Docker镜像上传至阿里云及镜像瘦身]]></title><link>https://blog.youkuaiyun.com/licmi/article/details/111384011</link><guid>https://blog.youkuaiyun.com/licmi/article/details/111384011</guid><author>licmi</author><pubDate>Fri, 18 Dec 2020 22:13:58 +0800</pubDate><description><![CDATA[Docker镜像上传至阿里云及镜像瘦身alpine制作jdk镜像Alpine制作jre镜像Docker镜像上传至阿里云前期准备
alpine制作jdk镜像
alpine Linux简介
1.Alpine Linux是一个轻型Linux发行版，它不同于通常的Linux发行版，Alpine采用了musl libc 和
BusyBox以减少系统的体积和运行时的资源消耗。
2.Alpine Linux提供了自己的包管理工具：apk(注意：ubuntu中是apt-get)，我们可以通过https://pkgs.alp]]></description><category></category></item><item><title><![CDATA[springcloud新注册中心nacos实现服务注册与发现（入门）]]></title><link>https://blog.youkuaiyun.com/licmi/article/details/111365773</link><guid>https://blog.youkuaiyun.com/licmi/article/details/111365773</guid><author>licmi</author><pubDate>Fri, 18 Dec 2020 16:36:48 +0800</pubDate><description><![CDATA[springcloud新注册中心nacosSpring Cloud Alibaba介绍图解启动nacos服务入门案例创建父模块创建服务提供者provider创建服务消费者consumer
Spring Cloud Alibaba介绍
2018 年 10 月 31 日的凌晨，Spring Cloud Alibaba 正式入驻了 Spring Cloud 官方孵化器，并在 Maven 中央库发布了第一个版本。
Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应]]></description><category></category></item><item><title><![CDATA[FinalShell下载与安装（小白式安装）]]></title><link>https://blog.youkuaiyun.com/licmi/article/details/111355563</link><guid>https://blog.youkuaiyun.com/licmi/article/details/111355563</guid><author>licmi</author><pubDate>Fri, 18 Dec 2020 11:15:10 +0800</pubDate><description><![CDATA[FinalShell下载与安装下载地址安装
下载地址
Windows版下载地址:
http://www.hostbuf.com/downloads/finalshell_install.exe
安装
下载后在文件夹中打开，双击安装都是傻瓜式安装




安装成功进行连接使用即可


]]></description><category></category></item><item><title><![CDATA[python基本运算符，while循环（0基础，小白入门版）]]></title><link>https://blog.youkuaiyun.com/licmi/article/details/111311717</link><guid>https://blog.youkuaiyun.com/licmi/article/details/111311717</guid><author>licmi</author><pubDate>Thu, 17 Dec 2020 21:27:36 +0800</pubDate><description><![CDATA[python基本运算符，while循环算术运算符赋值运算符比较运算符：结果： True False逻辑运算符位运算符：将左右两边的数字转成二进制三元运算符条件运算符：if  elif  else循环语句 while  for随机数
算术运算符
1.两个数值相加，是加法
2.两个字符串相加，就是拼接功能
from decimal import Decimal #导入模块
# print(4+5)
# print("a"+"b")

a=2.3
b=1.9  #由于是将小数转换为2进制的形式  导致精度丢失
p]]></description><category></category></item><item><title><![CDATA[学习Dockerfile这一篇就够了]]></title><link>https://blog.youkuaiyun.com/licmi/article/details/111231478</link><guid>https://blog.youkuaiyun.com/licmi/article/details/111231478</guid><author>licmi</author><pubDate>Tue, 15 Dec 2020 21:22:10 +0800</pubDate><description><![CDATA[学习Dockerfile这一篇就够了1.什么是Dockerfile2. dockerfile基本结构3.使用Dockerfile基于centos创建JDK8的镜像
1.什么是Dockerfile
dockerfile是一个文本格式的配置文件， 用户可以使用 Dockerfile 来快速创建自定义的镜像，
另外，使用Dockerfile去构建镜像好比使用pom去构建maven项目一样，有异曲同工之妙
2. dockerfile基本结构
基础镜像信息
FROM指定哪种镜像为新镜像的基础镜像，比如ubuntu，c]]></description><category></category></item><item><title><![CDATA[小白入门，初识Docker]]></title><link>https://blog.youkuaiyun.com/licmi/article/details/111188330</link><guid>https://blog.youkuaiyun.com/licmi/article/details/111188330</guid><author>licmi</author><pubDate>Tue, 15 Dec 2020 01:03:05 +0800</pubDate><description><![CDATA[小白入门，初识DockerDocker是什么Docker与虚拟化Docker虚拟化的好处核心概念案例镜像的操作配置加速器2.修改docker相关配置3.重新加载配置4.重启docker2.搜索镜像3.下载镜像容器的操作
Docker是什么
Docker是一个由GO语言写的程序运行的“容器”(Linux containers， LXCs)，它是完整的一套容器管理系统
Docker提供了一组命令,让用户更加方便直接地使用容器技术,而无需要过多关心底层内核技术
注1：什么是容器
一个容器就相当于一个虚拟机
注2：]]></description><category></category></item><item><title><![CDATA[SpringCloud配置中心Config Server、Client基本操作及Config整合Eureka]]></title><link>https://blog.youkuaiyun.com/licmi/article/details/111186253</link><guid>https://blog.youkuaiyun.com/licmi/article/details/111186253</guid><author>licmi</author><pubDate>Mon, 14 Dec 2020 23:02:19 +0800</pubDate><description><![CDATA[SpringCloud配置中心Config Server、Client基本操作及Config整合EurekaSpringCloud Config简介Config Server基本使用Config Client基本使用Config整合EurekaConfig配置搜索路径
SpringCloud Config简介
Spring Cloud Config 是 Spring Cloud 团队创建的一个全新项目，用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持，它分为服务端与客户端两个部分。其中服务端]]></description><category></category></item><item><title><![CDATA[Zuul路由网关（Zuul路由映射配置+请求过滤配置）]]></title><link>https://blog.youkuaiyun.com/licmi/article/details/111128605</link><guid>https://blog.youkuaiyun.com/licmi/article/details/111128605</guid><author>licmi</author><pubDate>Sun, 13 Dec 2020 18:24:57 +0800</pubDate><description><![CDATA[Zuul路由网关（Zuul路由映射配置+请求过滤配置）Zuul路由网关简介及基本使用为什么要使用zuul网关？简介实践Zuul 路由配置zuul网关服务超时时间设置Zuul路由映射配置Zuul请求过滤配置
Zuul路由网关简介及基本使用
为什么要使用zuul网关？
就是为了安全，zuul网关是springcloud提供的安全机制
简介
Zuul API路由网关服务简介

请看上图，这里的API 路由网关服务 由Zuul实现，主要就是对外提供服务接口的时候，起到了请求的路由和过滤作用，也因此能够隐藏内部服务的]]></description><category></category></item><item><title><![CDATA[真小白入门，python的安装及pycharm的使用]]></title><link>https://blog.youkuaiyun.com/licmi/article/details/111058098</link><guid>https://blog.youkuaiyun.com/licmi/article/details/111058098</guid><author>licmi</author><pubDate>Sat, 12 Dec 2020 16:24:28 +0800</pubDate><description><![CDATA[Python入门python的发展史python的可以用来做什么python解析器及PyCharm开发工具安装下载Python解析器1、下载链接2、安装解析器3、测试是否安装完成安装PyCharm1、下载链接2、傻瓜式安装PyCharm的简单使用注释的分类变量的定义格式化输出
python的发展史
Python的创始人为Guido van Rossum。1989年圣诞节期间，在阿姆斯特丹，Guido为了打发圣诞节的无趣，决心开发一个新的脚本解释程序，做为 ABC 语言的一种继承。之所以选中 Python（大]]></description><category></category></item></channel></rss>