<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[JavaAQA的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/JavaAQA</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; JavaAQA]]></copyright><item><title><![CDATA[Spring Cloud简介，微服务架构，以及与Dubbo的详细比较]]></title><link>https://blog.youkuaiyun.com/JavaAQA/article/details/103589267</link><guid>https://blog.youkuaiyun.com/JavaAQA/article/details/103589267</guid><author>JavaAQA</author><pubDate>Tue, 17 Dec 2019 22:48:38 +0800</pubDate><description><![CDATA[什么是Spring Cloud
Spring Cloud 是一套完整的微服务解决方案，基于 Spring Boot 框架，准确的说，它不是一个框架，而是一个大的容器，它将市面上较好的微服务框架集成进来，从而简化了开发者的代码量。
为什么需要Spring Cloud
Spring Cloud 是整个 Spring 家族中新的成员，要致力于分布式系统、云服务的框架。
Spring Cloud 为开发人...]]></description><category></category></item><item><title><![CDATA[Dubbo的详细介绍、设计思路、以及4大适用场景]]></title><link>https://blog.youkuaiyun.com/JavaAQA/article/details/103589065</link><guid>https://blog.youkuaiyun.com/JavaAQA/article/details/103589065</guid><author>JavaAQA</author><pubDate>Tue, 17 Dec 2019 22:34:37 +0800</pubDate><description><![CDATA[Dubbo是什么？
Dubbo是一个分布式服务框架，致力于提供高性能和透明化的RPC远程服务调用方案，以及SOA服务治理方案。
简单的说，dubbo就是个服务框架，如果没有分布式的需求，其实是不需要用的，只有在分布式的时候，才有dubbo这样的分布式服务框架的需求，并且本质上是个服务调用的东东，说白了就是个远程服务调用的分布式框架（告别Web Service模式中的WSdl，以服务者与消费者的方式...]]></description><category></category></item><item><title><![CDATA[详解RocketMQ的架构设计、关键特性、与应用场景]]></title><link>https://blog.youkuaiyun.com/JavaAQA/article/details/103588885</link><guid>https://blog.youkuaiyun.com/JavaAQA/article/details/103588885</guid><author>JavaAQA</author><pubDate>Tue, 17 Dec 2019 22:22:05 +0800</pubDate><description><![CDATA[内容大纲：

RocketMQ的简介与演进
RocketMQ的架构设计
RocketMQ的关键特性
RocketMQ的应用场景




RocketMQ的简介
RocketMQ一个纯java、分布式、队列模型的开源消息中间件，前身是MetaQ，是阿里研发的一个队列模型的消息中间件，后开源给apache基金会成为了apache的顶级开源项目，具有高性能、高可靠、高实时、分布式特点。

RocketM...]]></description><category></category></item><item><title><![CDATA[如何从零到一设计一个MQ消息队列]]></title><link>https://blog.youkuaiyun.com/JavaAQA/article/details/103588675</link><guid>https://blog.youkuaiyun.com/JavaAQA/article/details/103588675</guid><author>JavaAQA</author><pubDate>Tue, 17 Dec 2019 22:07:33 +0800</pubDate><description><![CDATA[消息队列整体设计思路
主要是设计一个整体的消息被消费的数据流。
这里会涉及到：消息生产Producer、Broker(消息服务端)、消息消费者Consumer。

1.Producer(消息生产者)：发送消息到Broker。
2.Broker(服务端)：Broker这个概念主要来自于Apache的ActiveMQ，特指消息队列的服务端。
主要功能就是：把消息从发送端传送到接收端，这里会涉及到消息的...]]></description><category></category></item><item><title><![CDATA[详解RPC远程调用和消息队列MQ的区别]]></title><link>https://blog.youkuaiyun.com/JavaAQA/article/details/103588114</link><guid>https://blog.youkuaiyun.com/JavaAQA/article/details/103588114</guid><author>JavaAQA</author><pubDate>Tue, 17 Dec 2019 21:30:37 +0800</pubDate><description><![CDATA[什么是RPC
RPC（Remote Procedure Call）远程过程调用，主要解决远程通信间的问题，不需要了解底层网络的通信机制。
RPC服务框架有哪些
知名度较高的有Thrift(FB的)、dubbo(阿里的)

RPC的一般需要经历4个步骤：
1、建立通信
首先要解决通讯的问题：即A机器想要调用B机器，首先得建立起通信连接，主要是通过在客户端和服务器之间建立TCP连接。
2、服务寻址
要...]]></description><category></category></item><item><title><![CDATA[什么是流量削峰？如何解决秒杀业务的削峰场景]]></title><link>https://blog.youkuaiyun.com/JavaAQA/article/details/103587880</link><guid>https://blog.youkuaiyun.com/JavaAQA/article/details/103587880</guid><author>JavaAQA</author><pubDate>Tue, 17 Dec 2019 21:14:03 +0800</pubDate><description><![CDATA[流量削峰的由来
主要是还是来自于互联网的业务场景，例如，马上即将开始的春节火车票抢购，大量的用户需要同一时间去抢购；以及大家熟知的阿里双11秒杀，短时间上亿的用户涌入，瞬间流量巨大（高并发），比如：200万人准备在凌晨12:00准备抢购一件商品，但是商品的数量缺是有限的100-500件左右。
这样真实能购买到该件商品的用户也只有几百人左右， 但是从业务上来说，秒杀活动是希望更多的人来参与，也就是抢...]]></description><category></category></item><item><title><![CDATA[MQ消息队列的12点核心原理总结]]></title><link>https://blog.youkuaiyun.com/JavaAQA/article/details/103587575</link><guid>https://blog.youkuaiyun.com/JavaAQA/article/details/103587575</guid><author>JavaAQA</author><pubDate>Tue, 17 Dec 2019 20:55:47 +0800</pubDate><description><![CDATA[1. 消息生产者、消息者、队列

消息生产者Producer：发送消息到消息队列。
消息消费者Consumer：从消息队列接收消息。
Broker：概念来自与Apache ActiveMQ，指MQ的服务端，帮你把消息从发送端传送到接收端。
消息队列Queue：一个先进先出的消息存储区域。消息按照顺序发送接收，一旦消息被消费处理，该消息将从队列中删除。



2.设计Broker主要考虑
1）消息的...]]></description><category></category></item><item><title><![CDATA[分布式之消息队列的特点、选型、及应用场景详解]]></title><link>https://blog.youkuaiyun.com/JavaAQA/article/details/103528466</link><guid>https://blog.youkuaiyun.com/JavaAQA/article/details/103528466</guid><author>JavaAQA</author><pubDate>Fri, 13 Dec 2019 15:41:39 +0800</pubDate><description><![CDATA[什么是消息队列
消息队列（Message Queue，简称MQ），指保存消息的一个容器，本质是个队列。
消息（Message）是指在应用之间传送的数据，消息可以非常简单，比如只包含文本字符串，也可以更复杂，可能包含嵌入对象。
消息队列（Message Queue）是一种应用间的通信方式，消息发送后可以立即返回，有消息系统来确保信息的可靠专递，消息发布者只管把消息发布到MQ中而不管谁来取，消息使用者...]]></description><category></category></item><item><title><![CDATA[主流的消息队列MQ比较，详解MQ的4类应用场景]]></title><link>https://blog.youkuaiyun.com/JavaAQA/article/details/103528031</link><guid>https://blog.youkuaiyun.com/JavaAQA/article/details/103528031</guid><author>JavaAQA</author><pubDate>Fri, 13 Dec 2019 15:23:41 +0800</pubDate><description><![CDATA[目前主流的MQ产品

1.ZeroMQ
号称最快的消息队列系统，尤其针对大吞吐量的需求场景。
扩展性好，开发比较灵活，采用C语言实现，实际上只是一个socket库的重新封装，如果做为消息队列使用，需要开发大量的代码。ZeroMQ仅提供非持久性的队列，也就是说如果down机，数据将会丢失。其中，Twitter的Storm中使用ZeroMQ作为数据流的传输。
2.RabbitMQ
结合erlang语言...]]></description><category></category></item><item><title><![CDATA[消息中间件介绍、典型使用场景、以及使用原则]]></title><link>https://blog.youkuaiyun.com/JavaAQA/article/details/103527638</link><guid>https://blog.youkuaiyun.com/JavaAQA/article/details/103527638</guid><author>JavaAQA</author><pubDate>Fri, 13 Dec 2019 15:08:49 +0800</pubDate><description><![CDATA[一、kafka
1、不完全符合jms规范，注重吞吐量，类似udp 和 tcp
2、一般做大数据吞吐的管道 我们现在的用途就是负责在各个idc之间通信
3、量大对数据不是百分之百保证的，会有数据丢失，不是百分百送达（amq和rmq等有重发机制，而kafka没有）；在吞吐量有提升 ，在这方面就得有牺牲， 所以kafka适合大数据量流转， 比如日志数据 比如用作统计的数据。
二、activeMQ
Ac...]]></description><category></category></item><item><title><![CDATA[NIO、BIO、AIO的区别，及NIO的应用和框架选型]]></title><link>https://blog.youkuaiyun.com/JavaAQA/article/details/103527427</link><guid>https://blog.youkuaiyun.com/JavaAQA/article/details/103527427</guid><author>JavaAQA</author><pubDate>Fri, 13 Dec 2019 15:00:43 +0800</pubDate><description><![CDATA[AIO、BIO、NIO的区别
IO模型主要分类：

同步(synchronous) IO和异步(asynchronous) IO
阻塞(blocking) IO和非阻塞(non-blocking)IO
同步阻塞(blocking-IO)简称BIO
同步非阻塞(non-blocking-IO)简称NIO
异步非阻塞(synchronous-non-blocking-IO)简称AIO



1.BI...]]></description><category></category></item><item><title><![CDATA[ConcurrentHashMap的实现原理(JDK1.7和JDK1.8)]]></title><link>https://blog.youkuaiyun.com/JavaAQA/article/details/103518182</link><guid>https://blog.youkuaiyun.com/JavaAQA/article/details/103518182</guid><author>JavaAQA</author><pubDate>Thu, 12 Dec 2019 22:37:41 +0800</pubDate><description><![CDATA[哈希表
1.介绍
哈希表就是一种以 键-值(key-indexed) 存储数据的结构，我们只要输入待查找的值即key，即可查找到其对应的值。
哈希的思路很简单，如果所有的键都是整数，那么就可以使用一个简单的无序数组来实现：将键作为索引，值即为其对应的值，这样就可以快速访问任意键的值。这是对于简单的键的情况，我们将其扩展到可以处理更加复杂的类型的键。
2.链式哈希表
链式哈希表从根本上说是由一组链...]]></description><category></category></item><item><title><![CDATA[CountDownLatch、Semaphore等4大并发工具类详解]]></title><link>https://blog.youkuaiyun.com/JavaAQA/article/details/103517958</link><guid>https://blog.youkuaiyun.com/JavaAQA/article/details/103517958</guid><author>JavaAQA</author><pubDate>Thu, 12 Dec 2019 22:17:50 +0800</pubDate><description><![CDATA[Java并发工具包

1.并发工具类
提供了比synchronized更加高级的各种同步结构：包括CountDownLatch、CyclicBarrier、Semaphore等，可以实现更加丰富的多线程操作。
2.并发容器
提供各种线程安全的容器：最常见的ConcurrentHashMap、有序的ConcurrentSkipListMap,实现线程安全的动态数组CopyOnWriteArrayLi...]]></description><category></category></item><item><title><![CDATA[并发容器的原理，七大并发容器详解、及使用场景]]></title><link>https://blog.youkuaiyun.com/JavaAQA/article/details/103500718</link><guid>https://blog.youkuaiyun.com/JavaAQA/article/details/103500718</guid><author>JavaAQA</author><pubDate>Wed, 11 Dec 2019 22:20:59 +0800</pubDate><description><![CDATA[并发容器的由来
在Java并发编程中，经常听到Java集合类，同步容器、并发容器，那么他们有哪些具体分类，以及各自之间的区别和优劣呢？
只有把这些梳理清楚了，你才能真正掌握在高并发的环境下，正确使用好并发容器，我们先从Java集合类，同步容器谈起。

1.什么是同步容器
Java的集合容器框架中，主要有四大类别：List、Set、Queue、Map，大家熟知的这些集合类ArrayList、Link...]]></description><category></category></item><item><title><![CDATA[Java最全锁剖析：独享锁/共享锁 公平锁/非公平锁 乐观锁/悲观锁]]></title><link>https://blog.youkuaiyun.com/JavaAQA/article/details/103499784</link><guid>https://blog.youkuaiyun.com/JavaAQA/article/details/103499784</guid><author>JavaAQA</author><pubDate>Wed, 11 Dec 2019 21:17:44 +0800</pubDate><description><![CDATA[乐观锁 VS 悲观锁
乐观锁与悲观锁是一种广义上的概念，体现了看待线程同步的不同角度，在Java和数据库中都有此概念对应的实际应用。
1.乐观锁
顾名思义，就是很乐观，每次去拿数据的时候都认为别人不会修改，所以不会上锁，但是在更新的时候会判断一下在此期间别人有没有去更新这个数据，可以使用版本号等机制。
乐观锁适用于多读的应用类型，乐观锁在Java中是通过使用无锁编程来实现，最常采用的是CAS算法...]]></description><category></category></item><item><title><![CDATA[Java线程池的使用方式，核心运行原理、以及注意事项]]></title><link>https://blog.youkuaiyun.com/JavaAQA/article/details/103499069</link><guid>https://blog.youkuaiyun.com/JavaAQA/article/details/103499069</guid><author>JavaAQA</author><pubDate>Wed, 11 Dec 2019 20:27:43 +0800</pubDate><description><![CDATA[为什么需要线程池
java中为了提高并发度，可以使用多线程共同执行,但是如果有大量线程短时间之内被创建和销毁，会占用大量的系统时间，影响系统效率。
为了解决上面的问题，java中引入了线程池，可以使创建好的线程在指定的时间内由系统统一管理，而不是在执行时创建，执行后就销毁，从而避免了频繁创建、销毁线程带来的系统开销。

线程池如何使用，以及实现原理，处理步骤，有什么使用注意事项等，今天主要从这几个...]]></description><category></category></item><item><title><![CDATA[工作常用4种Java线程锁的特点，性能比较、使用场景]]></title><link>https://blog.youkuaiyun.com/JavaAQA/article/details/103498847</link><guid>https://blog.youkuaiyun.com/JavaAQA/article/details/103498847</guid><author>JavaAQA</author><pubDate>Wed, 11 Dec 2019 20:13:01 +0800</pubDate><description><![CDATA[多线程的缘由
在出现了进程之后，操作系统的性能得到了大大的提升。虽然进程的出现解决了操作系统的并发问题，但是人们仍然不满足，人们逐渐对实时性有了要求。
使用多线程的理由之一是和进程相比，它是一种非常花销小，切换快，更”节俭”的多任务操作方式。
在Linux系统下，启动一个新的进程必须分配给它独立的地址空间，建立众多的数据表来维护它的代码段、堆栈段和数据段，这是一种”昂贵”的多任务工作方式。而在进程...]]></description><category></category></item><item><title><![CDATA[Redis的存储类型、集群架构、以及应用场景]]></title><link>https://blog.youkuaiyun.com/JavaAQA/article/details/103484292</link><guid>https://blog.youkuaiyun.com/JavaAQA/article/details/103484292</guid><author>JavaAQA</author><pubDate>Tue, 10 Dec 2019 22:32:07 +0800</pubDate><description><![CDATA[什么是redis
redis是一种支持Key-Value等多种数据结构的存储系统。可用于缓存、事件发布或订阅、高速队列等场景。该数据库使用ANSI C语言编写，支持网络，提供字符串、哈希、列表、队列、集合结构直接存取，基于内存，可持久化，支持多种开发语言。

redis在高并发场景下的作用不言而喻，今天主要分享Redis大家比较关心的以下几个方面。

redis的数据类型
支持多种数据类型：
1...]]></description><category></category></item><item><title><![CDATA[Redis面试题详解:哨兵 复制 事务 集群 持久化等]]></title><link>https://blog.youkuaiyun.com/JavaAQA/article/details/103483979</link><guid>https://blog.youkuaiyun.com/JavaAQA/article/details/103483979</guid><author>JavaAQA</author><pubDate>Tue, 10 Dec 2019 22:09:05 +0800</pubDate><description><![CDATA[Redis主要有哪些功能？
1.哨兵（Sentinel）和复制（Replication）
Redis服务器毫无征兆的罢工是个麻烦事，如何保证备份的机器是原始服务器的完整备份呢？这时候就需要哨兵和复制。
Sentinel可以管理多个Redis服务器，它提供了监控，提醒以及自动的故障转移的功能，Replication则是负责让一个Redis服务器可以配备多个备份的服务器。
Redis也是利用这两个功...]]></description><category></category></item><item><title><![CDATA[Redis为什么是单线程、及高并发快的3大原因详解]]></title><link>https://blog.youkuaiyun.com/JavaAQA/article/details/103466693</link><guid>https://blog.youkuaiyun.com/JavaAQA/article/details/103466693</guid><author>JavaAQA</author><pubDate>Mon, 09 Dec 2019 22:28:56 +0800</pubDate><description><![CDATA[Redis的高并发和快速原因
1.redis是基于内存的，内存的读写速度非常快；
2.redis是单线程的，省去了很多上下文切换线程的时间；
3.redis使用多路复用技术，可以处理并发的连接。非阻塞IO 内部实现采用epoll，采用了epoll 自己实现的简单的事件框架。epoll中的读、写、关闭、连接都转化成了事件，然后利用epoll的多路复用特性，绝不在io上浪费一点时间。

为什么Redi...]]></description><category></category></item></channel></rss>