<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[aaa7735053的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/aaa7735053</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; aaa7735053]]></copyright><item><title><![CDATA[2.RabbitMQ 的可靠性消息的发送]]></title><link>https://blog.youkuaiyun.com/aaa7735053/article/details/102358997</link><guid>https://blog.youkuaiyun.com/aaa7735053/article/details/102358997</guid><author>aaa7735053</author><pubDate>Sun, 22 Sep 2019 10:28:00 +0800</pubDate><description><![CDATA[本篇包含
1、 RabbitMQ 的可靠性消息的发送
2、 RabbitMQ 集群的原理与高可用架构的搭建
3、 RabbitMQ 的实践经验

上篇包含
1、MQ 的本质，MQ 的作用
2、RabbitMQ 的特性，工作模型，交换机详解
3、Java API 编程，UI 管理界面
4、进阶知识：TTL、死信队列、延迟队列，服务端流控和消费端限流
5、Spri...]]></description><category></category></item><item><title><![CDATA[1.RabbitMQ工作模型与基本原理]]></title><link>https://blog.youkuaiyun.com/aaa7735053/article/details/102358995</link><guid>https://blog.youkuaiyun.com/aaa7735053/article/details/102358995</guid><author>aaa7735053</author><pubDate>Thu, 19 Sep 2019 23:15:00 +0800</pubDate><description><![CDATA[1、了解 MQ 的本质和 RabbitMQ 的特性；
2、掌握 RabbitMQ 的 Java API 编程和 Spring 集成 RabbitMQ
1. MQ 了解
1.1. 消息队列简介
1.1.1.MQ 的诞生历程
我们要去用 MQ，先来了解一下 MQ 是怎么诞生的，这样对于它解决了什么问题理解会更加深刻。世界上第一个 MQ 叫什么名字，是什么时候诞生的？
...]]></description><category></category></item><item><title><![CDATA[1.jvm思维导图]]></title><link>https://blog.youkuaiyun.com/aaa7735053/article/details/102358981</link><guid>https://blog.youkuaiyun.com/aaa7735053/article/details/102358981</guid><author>aaa7735053</author><pubDate>Sun, 15 Sep 2019 13:01:00 +0800</pubDate><description><![CDATA[点击图片可查看高清图


转载于:https://www.cnblogs.com/qlsem/p/11521851.html]]></description><category></category></item><item><title><![CDATA[2.Netty 与 NIO 之前世今生]]></title><link>https://blog.youkuaiyun.com/aaa7735053/article/details/102358993</link><guid>https://blog.youkuaiyun.com/aaa7735053/article/details/102358993</guid><author>aaa7735053</author><pubDate>Sun, 15 Sep 2019 12:45:00 +0800</pubDate><description><![CDATA[2.Netty 与 NIO 之前世今生
本文围绕一下几点阐述：
1、 NIO 的核心组件 Buffer、Selector、Channel。
2、何谓多路复用？
3、Netty 支持的功能与特性。

2.1 Java NIO 三件套
在 NIO 中有几个核心对象需要掌握：缓冲区（Buffer）、选择器（Selector）、通道（Channel）。
2.1.1 缓冲区...]]></description><category></category></item><item><title><![CDATA[1.IO的演进]]></title><link>https://blog.youkuaiyun.com/aaa7735053/article/details/102358979</link><guid>https://blog.youkuaiyun.com/aaa7735053/article/details/102358979</guid><author>aaa7735053</author><pubDate>Sun, 15 Sep 2019 11:07:00 +0800</pubDate><description><![CDATA[1.Java IO 演进之路
本文围绕着一下几个问题
1、Java 中 BIO、NIO、AIO 之间的区别及应用场景。
2、阻塞(Block)与非阻塞(Non-Block)区别。
3、同步(Synchronization)和异步(Asynchronous)的区别。

1.1 几个概念
1.1.1 阻塞(Block)和非阻塞(Non-Block)
阻塞和非阻塞是进程...]]></description><category></category></item><item><title><![CDATA[2.序列化与反序列化]]></title><link>https://blog.youkuaiyun.com/aaa7735053/article/details/102358992</link><guid>https://blog.youkuaiyun.com/aaa7735053/article/details/102358992</guid><author>aaa7735053</author><pubDate>Sun, 15 Sep 2019 09:47:00 +0800</pubDate><description><![CDATA[Java 领域的对象如何传输
基于 socket 进行对象传输
先举个简单的例子，基于我们前面几次课程的只是，写一个 socket 通信的代码
User


public class User {
　　private String name;
　　public String getName() {
　　　　return name;
　　}
　　public void...]]></description><category></category></item><item><title><![CDATA[1.http 协议和 https 协议的原理]]></title><link>https://blog.youkuaiyun.com/aaa7735053/article/details/102358977</link><guid>https://blog.youkuaiyun.com/aaa7735053/article/details/102358977</guid><author>aaa7735053</author><pubDate>Sat, 14 Sep 2019 16:13:00 +0800</pubDate><description><![CDATA[首先，我们得知道应用层是 OSI 七层网络模型的第七层，不同类型的网络应用有不同的通信规则，因此应用层协议是多种多样的，比如 DNS、FTP、Telnet、SMTP、HTTP、 等协议都是用于解决其各自的一类问题。
http 通信协议的基本原理
http 协议在远程通信场景中的应用还是挺广泛的，包括现在主流的微服务架构的通信都是基于 http 协议。由于经常使用的关系，所以大家对 h...]]></description><category></category></item><item><title><![CDATA[2.远程通信协议]]></title><link>https://blog.youkuaiyun.com/aaa7735053/article/details/102358970</link><guid>https://blog.youkuaiyun.com/aaa7735053/article/details/102358970</guid><author>aaa7735053</author><pubDate>Sat, 14 Sep 2019 11:48:00 +0800</pubDate><description><![CDATA[一个 http 请求的整个流程
那么在分布式架构中，有一个很重要的环节，就是分布式网络中的计算机节点彼此之间需要通信。这个通信的过程一定会涉及到通信协议相关的知识点，当然大家也可能知道一些，但是我会尽可能的把通信这一块的内容串起来，加深大家的理解。我们每天都在用浏览器访问各种网站，作为用户来说，只需要需要输入一个网址并且正确跳转就行。但是作为程序员，看到的可能就是这个响应背后的整体流程...]]></description><category></category></item><item><title><![CDATA[1.分布式架构的来源演进]]></title><link>https://blog.youkuaiyun.com/aaa7735053/article/details/102358967</link><guid>https://blog.youkuaiyun.com/aaa7735053/article/details/102358967</guid><author>aaa7735053</author><pubDate>Sat, 14 Sep 2019 10:15:00 +0800</pubDate><description><![CDATA[架构的本质
一个软件系统随着功能越来越多，调用量急剧增长，整个系统逐渐碎片化，越来越无序，最终无法维护和扩展，所以系统在一段时间的野蛮生长后，也需要及时干预，避免越来越无序。架构的本质就是对系统进行有序化重构，使系统不断进化那架构是如何实现无序到有序的呢？ 基本的手段就是分和合，先把系统打散，然后重新组合。
分的过程是把系统拆分为各个子系统 / 模块 / 组件，拆的时候，首先要解决每...]]></description><category></category></item><item><title><![CDATA[线程池原理及分析]]></title><link>https://blog.youkuaiyun.com/aaa7735053/article/details/102358980</link><guid>https://blog.youkuaiyun.com/aaa7735053/article/details/102358980</guid><author>aaa7735053</author><pubDate>Wed, 11 Sep 2019 15:46:00 +0800</pubDate><description><![CDATA[什么是线程池
在 Java 中，如果每个请求到达就创建一个新线程，创建和销毁线程花费的时间和消耗的系统资源都相当大，甚至可能要比在处理实际的用户请求的时间和资源要多的多。
如果在一个 Jvm 里创建太多的线程，可能会使系统由于过度消耗内存或“切换过度”而导致系统资源不足为了解决这个问题,就有了线程池的概念，线程池的核心逻辑是提前创建好若干个线程放在一
个容器中。如果有任务需要处理，...]]></description><category></category></item><item><title><![CDATA[阻塞队列，原子操作的原理分析]]></title><link>https://blog.youkuaiyun.com/aaa7735053/article/details/102358990</link><guid>https://blog.youkuaiyun.com/aaa7735053/article/details/102358990</guid><author>aaa7735053</author><pubDate>Tue, 10 Sep 2019 14:09:00 +0800</pubDate><description><![CDATA[生产者消费者的实际使用
我相信大家都有使用过分布式消息队列，比如 ActiveMQ、kafka、RabbitMQ 等等，消息队列的是有可以使得程序之间实现解耦，提升程序响应的效率。如果我们把多线程环境比作是分布式的话，那么线程与线程之间是不是也可以使用这种消息队列的方式进行数据通信和解耦呢？
阻塞队列的使用案例
注册成功后增加积分
假如我们模拟一个场景，就是用户注册的时候，在注册...]]></description><category></category></item><item><title><![CDATA[并发工具的使用以及原理]]></title><link>https://blog.youkuaiyun.com/aaa7735053/article/details/102358988</link><guid>https://blog.youkuaiyun.com/aaa7735053/article/details/102358988</guid><author>aaa7735053</author><pubDate>Tue, 10 Sep 2019 00:44:00 +0800</pubDate><description><![CDATA[线程这块的一些工具类，基本都会以原理为主，通过分析别人代码的设计和实现，给自己提供积累一些方法和工具。
Condition
在前面学习 synchronized 的时候，有讲到 wait/notify 的基本使用，结合 synchronized 可以实现对线程的通信。那么这个时候我就在思考了，既然 J.U.C 里面提供了锁的实现
机制，那 J.U.C 里面有没有提供类似的线程通信的...]]></description><category></category></item><item><title><![CDATA[AQS底层原理分析]]></title><link>https://blog.youkuaiyun.com/aaa7735053/article/details/102358974</link><guid>https://blog.youkuaiyun.com/aaa7735053/article/details/102358974</guid><author>aaa7735053</author><pubDate>Mon, 09 Sep 2019 21:32:00 +0800</pubDate><description><![CDATA[J.U.C 简介
Java.util.concurrent 是在并发编程中比较常用的工具类，里面包含很多用来在并发场景中使用的组件。比如线程池、阻塞队列、计时器、同步器、并发集合等等。并发包的作者是大名鼎鼎的 Doug Lea。我们在接下来剖析一些经典的比较常用的组件的设计思想。
Lock
Lock 在 J.U.C 中是最核心的组件，前面我们讲 synchronized 的时候说过...]]></description><category></category></item><item><title><![CDATA[多线程基本原理-2]]></title><link>https://blog.youkuaiyun.com/aaa7735053/article/details/102358986</link><guid>https://blog.youkuaiyun.com/aaa7735053/article/details/102358986</guid><author>aaa7735053</author><pubDate>Sat, 07 Sep 2019 17:58:00 +0800</pubDate><description><![CDATA[初步认识 Volatile
一段代码引发的思考
下面这段代码，演示了一个使用 volatile 以及没使用volatile 这个关键字，对于变量更新的影响


public class VolatileDemo {
　　public /*volatile*/ static boolean stop=false;
　　public static void main(Str...]]></description><category></category></item><item><title><![CDATA[多线程基本原理-1]]></title><link>https://blog.youkuaiyun.com/aaa7735053/article/details/102358972</link><guid>https://blog.youkuaiyun.com/aaa7735053/article/details/102358972</guid><author>aaa7735053</author><pubDate>Sat, 07 Sep 2019 15:37:00 +0800</pubDate><description><![CDATA[多线程基本原理-1
由一个问题引发的思考
线程的合理使用能够提升程序的处理性能，主要有两个方面:
　　第一个是能够利用多核 cpu 以及超线程技术来实现线程的并行执行；
　　第二个是线程的异步化执行相比于同步执行来说，异步执行能够很好的优化程序的处理性能提升并发吞吐量
同时，也带来了很多麻烦，举个简单的例子。
多线程对于共享变量访问带来的安全性问题

一个变量 i. 假如...]]></description><category></category></item><item><title><![CDATA[并发基础-初步认识]]></title><link>https://blog.youkuaiyun.com/aaa7735053/article/details/102358982</link><guid>https://blog.youkuaiyun.com/aaa7735053/article/details/102358982</guid><author>aaa7735053</author><pubDate>Thu, 05 Sep 2019 18:20:00 +0800</pubDate><description><![CDATA[并发基础-初步认识
线程的应用
如何应用多线程
在 Java 中，有多种方式来实现多线程。继承 Thread 类、实现 Runnable 接口、使用 ExecutorService、Callable、Future 实现带返回结果的多线程。
继承 Thread 类创建线程
Thread 类本质上是实现了 Runnable 接口的一个实例，代表一个线程的实例。启动线程的唯一方法就是...]]></description><category></category></item><item><title><![CDATA[ConcurrentHashMap]]></title><link>https://blog.youkuaiyun.com/aaa7735053/article/details/102358984</link><guid>https://blog.youkuaiyun.com/aaa7735053/article/details/102358984</guid><author>aaa7735053</author><pubDate>Thu, 05 Sep 2019 11:50:00 +0800</pubDate><description><![CDATA[ConcurrentHashMap 的初步使用及场景
CHM 的使用
ConcurrentHashMap 是 J.U.C 包里面提供的一个线程安全并且高效的 HashMap，所以 ConcurrentHashMap 在并发编程的场景中使用的频率比较高，从 ConcurrentHashMap 的使用上以及源码来分析 ConcurrentHashMap 到底是如何实现 安全性的。
api 使...]]></description><category></category></item></channel></rss>