<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[chiying2039的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/chiying2039</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; chiying2039]]></copyright><item><title><![CDATA[你还不了解线程池原理？赶紧来补一下]]></title><link>https://blog.youkuaiyun.com/chiying2039/article/details/100730803</link><guid>https://blog.youkuaiyun.com/chiying2039/article/details/100730803</guid><author>chiying2039</author><pubDate>Mon, 08 Jul 2019 18:01:00 +0800</pubDate><description><![CDATA[一、为什么要用线程池


降低资源消耗。通过重复利用已创建的线程降低线程创建、销毁线程造成的消耗。


提高响应速度。当任务到达时，任务可以不需要等到线程创建就能立即执行。


提高线程的可管理性。线程是稀缺资源，如果无限制的创建，不仅会消耗系统资源，还会降低系统的稳定性，使用线程池可以进行统...]]></description><category></category></item><item><title><![CDATA[高并发下如何缩短响应时间]]></title><link>https://blog.youkuaiyun.com/chiying2039/article/details/100730801</link><guid>https://blog.youkuaiyun.com/chiying2039/article/details/100730801</guid><author>chiying2039</author><pubDate>Sun, 07 Jul 2019 16:09:00 +0800</pubDate><description><![CDATA[定义
网站响应时间是指系统对请求作出响应的时间。通俗来讲就是我们把网址输入进浏览器然后敲回车键开始一直到浏览器把网站的内容呈现给用户的这段时间。网站响应时间是越短越好，因为网站页面打开速度越快，就意味着我们的用户可以更快的访问站点或者我们的服务器。一般我们网站的响应时间保持在100~1000m...]]></description><category></category></item><item><title><![CDATA[Java多线程synchronized关键字引出的多种锁]]></title><link>https://blog.youkuaiyun.com/chiying2039/article/details/100730799</link><guid>https://blog.youkuaiyun.com/chiying2039/article/details/100730799</guid><author>chiying2039</author><pubDate>Sat, 06 Jul 2019 15:26:00 +0800</pubDate><description><![CDATA[前言
Java 中的synchronized关键字可以在多线程环境下用来作为线程安全的同步锁。本文不讨论synchronized的具体使用，而是研究下synchronized底层的锁机制，以及这些锁分别的优缺点。
一、synchronized机制
synchronized关键字是JAVA...]]></description><category></category></item><item><title><![CDATA[JVM史上最全实践优化没有之一]]></title><link>https://blog.youkuaiyun.com/chiying2039/article/details/100730798</link><guid>https://blog.youkuaiyun.com/chiying2039/article/details/100730798</guid><author>chiying2039</author><pubDate>Fri, 05 Jul 2019 13:42:00 +0800</pubDate><description><![CDATA[1.jvm的运行参数
在jvm中有很多的参数可以进行设置，这样可以让jvm在各种环境中都能够高效的运行。绝大部分的参数保持默认即可。
1.1 三种参数类型
jvm的参数类型分为三类，分别是 ：
	标准参数 ：
		-help
		-version
	-X参数（非标准参数）
		-Xint
		...]]></description><category></category></item><item><title><![CDATA[优雅快速的统计千万级别uv]]></title><link>https://blog.youkuaiyun.com/chiying2039/article/details/100730796</link><guid>https://blog.youkuaiyun.com/chiying2039/article/details/100730796</guid><author>chiying2039</author><pubDate>Thu, 04 Jul 2019 10:02:00 +0800</pubDate><description><![CDATA[定义

PV是page view的缩写，即页面浏览量，通常是衡量一个网络新闻频道或网站甚至一条网络新闻的主要指标。网页浏览数是评价网站流量最常用的指标之一，简称为PV


UV是unique visitor的简写，是指通过互联网访问、浏览这个网页的自然人。

通过以上的概念，可以清晰的看出pv...]]></description><category></category></item><item><title><![CDATA[SpringBoot：详解RabbitMQ 延迟队列]]></title><link>https://blog.youkuaiyun.com/chiying2039/article/details/100730794</link><guid>https://blog.youkuaiyun.com/chiying2039/article/details/100730794</guid><author>chiying2039</author><pubDate>Wed, 03 Jul 2019 19:02:00 +0800</pubDate><description><![CDATA[SpringBoot是为了简化Spring应用的创建、运行、调试、部署等一系列问题而诞生的产物，自动装配的特性让我们可以更好的关注业务本身而不是外部的XML配置，我们只需遵循规范，引入相关的依赖就可以轻易的搭建出一个 WEB 工程

初探RabbitMQ消息队列中介绍了RabbitMQ...]]></description><category></category></item><item><title><![CDATA[SpringBoot：初探 RabbitMQ 消息队列]]></title><link>https://blog.youkuaiyun.com/chiying2039/article/details/100730790</link><guid>https://blog.youkuaiyun.com/chiying2039/article/details/100730790</guid><author>chiying2039</author><pubDate>Tue, 02 Jul 2019 11:33:00 +0800</pubDate><description><![CDATA[SpringBoot是为了简化Spring应用的创建、运行、调试、部署等一系列问题而诞生的产物，自动装配的特性让我们可以更好的关注业务本身而不是外部的XML配置，我们只需遵循规范，引入相关的依赖就可以轻易的搭建出一个 WEB 工程

MQ全称（Message Queue）又名消息队列，...]]></description><category></category></item><item><title><![CDATA[RabbitMQ指南之五：主题交换器（Topic Exchange）]]></title><link>https://blog.youkuaiyun.com/chiying2039/article/details/100730788</link><guid>https://blog.youkuaiyun.com/chiying2039/article/details/100730788</guid><author>chiying2039</author><pubDate>Mon, 01 Jul 2019 18:21:00 +0800</pubDate><description><![CDATA[在上一章中，我们完善了我们的日志系统，用direct交换器替换了fanout交换器，使得我们可以有选择性地接收消息。尽管如此，仍然还有限制：不能基于多个标准进行路由。在我们的日志系统中，我们可能不仅希望根据日志等级订阅日志，还希望根据日志来源订阅日志。这个概念来自于unix工具syslog，它...]]></description><category></category></item><item><title><![CDATA[RabbitMQ指南之四：路由（Routing）和直连交换机（Direct Exchange）]]></title><link>https://blog.youkuaiyun.com/chiying2039/article/details/100730784</link><guid>https://blog.youkuaiyun.com/chiying2039/article/details/100730784</guid><author>chiying2039</author><pubDate>Mon, 01 Jul 2019 10:24:00 +0800</pubDate><description><![CDATA[　在上一章中，我们构建了一个简单的日志系统，我们可以把消息广播给很多的消费者。在本章中我们将增加一个特性：我们可以订阅这些信息中的一些信息。例如，我们希望只将error级别的错误存储到硬盘中，同时可以将所有级别（error、info、warning等）的日志都打印在控制台上。
1、绑定（Bin...]]></description><category></category></item><item><title><![CDATA[RabbitMQ指南之三：发布/订阅模式（Publish/Subscribe）]]></title><link>https://blog.youkuaiyun.com/chiying2039/article/details/100730777</link><guid>https://blog.youkuaiyun.com/chiying2039/article/details/100730777</guid><author>chiying2039</author><pubDate>Sun, 30 Jun 2019 13:58:00 +0800</pubDate><description><![CDATA[在上一章中，我们创建了一个工作队列，工作队列模式的设想是每一条消息只会被转发给一个消费者。本章将会讲解完全不一样的场景：我们会把一个消息转发给多个消费者，这种模式称之为发布-订阅模式。
　　为了阐述这个模式，我们将会搭建一个简单的日志系统，它包含两种程序：一种发送日志消息，另一种接收并打印日...]]></description><category></category></item><item><title><![CDATA[RabbitMQ指南之二：工作队列（Work Queues）]]></title><link>https://blog.youkuaiyun.com/chiying2039/article/details/100730772</link><guid>https://blog.youkuaiyun.com/chiying2039/article/details/100730772</guid><author>chiying2039</author><pubDate>Sat, 29 Jun 2019 17:37:00 +0800</pubDate><description><![CDATA[在上一章的指南中，我们写了一个命名队列：生产者往该命名队列发送消息、消费从从该命名队列中消费消息。在本章中，我们将创建一个工作队列，用于在多个工作者之间分配耗时的任务。工作队列(即任务队列)的主要思想是避免立即执行那些需要等他们执行完成的资源密集型任务。相反，我们将任务安排在稍后完成。我们将任...]]></description><category></category></item><item><title><![CDATA[RabbitMQ指南之一："Hello World!"]]></title><link>https://blog.youkuaiyun.com/chiying2039/article/details/100730770</link><guid>https://blog.youkuaiyun.com/chiying2039/article/details/100730770</guid><author>chiying2039</author><pubDate>Sat, 29 Jun 2019 14:24:00 +0800</pubDate><description><![CDATA[　　为什么要使用MQ消息中间件？它解决了什么问题？关于为什么要使用消息中间件？消息中间件是如何做到同步变异步、流量削锋、应用解耦的？网上已经有很多说明，我这里就不再说明。我在接下来的RabbitMq系列博客里会将官方的讲解翻译过来，同时加以自己的理解整理成博客，希望能和大家共同交流，一起进步。...]]></description><category></category></item><item><title><![CDATA[Spring Boot之RabbitMQ]]></title><link>https://blog.youkuaiyun.com/chiying2039/article/details/100730766</link><guid>https://blog.youkuaiyun.com/chiying2039/article/details/100730766</guid><author>chiying2039</author><pubDate>Fri, 28 Jun 2019 18:22:00 +0800</pubDate><description><![CDATA[RabbitMQ 即一个消息队列，主要是用来实现应用程序的异步和解耦，同时也能起到消息缓冲，消息分发的作用。
消息中间件在互联网公司的使用中越来越多，刚才还看到新闻阿里将 RocketMQ 捐献给了 Apache，当然了今天的主角还是讲 RabbitMQ。消息中间件最主要的作用是解耦，中间件最...]]></description><category></category></item><item><title><![CDATA[RabbitMQ如何保证队列里的消息99.99%被消费？]]></title><link>https://blog.youkuaiyun.com/chiying2039/article/details/100730764</link><guid>https://blog.youkuaiyun.com/chiying2039/article/details/100730764</guid><author>chiying2039</author><pubDate>Fri, 28 Jun 2019 10:41:00 +0800</pubDate><description><![CDATA[1. 本篇概要
其实，还有1种场景需要考虑：当消费者接收到消息后，还没处理完业务逻辑，消费者挂掉了，那消息也算丢失了？，比如用户下单，订单中心发送了1个消息到RabbitMQ里的队列，积分中心收到这个消息，准备给这个下单的用户增加20积分，但积分还没增加成功呢，积分中心自己挂掉了，导致数据出现...]]></description><category></category></item><item><title><![CDATA[RabbitMQ如何通过持久化保证消息99.99%不丢失？]]></title><link>https://blog.youkuaiyun.com/chiying2039/article/details/100730760</link><guid>https://blog.youkuaiyun.com/chiying2039/article/details/100730760</guid><author>chiying2039</author><pubDate>Thu, 27 Jun 2019 17:17:00 +0800</pubDate><description><![CDATA[1. 本篇概要
要解决该问题，就要用到RabbitMQ中持久化的概念，所谓持久化，就是RabbitMQ会将内存中的数据(Exchange 交换器，Queue 队列，Message 消息)固化到磁盘，以防异常情况发生时，数据丢失。
其中，RabblitMQ的持久化分为三个部分：

交换器(Exc...]]></description><category></category></item><item><title><![CDATA[RabbitMQ如何保证消息99.99%被发送成功？]]></title><link>https://blog.youkuaiyun.com/chiying2039/article/details/100730758</link><guid>https://blog.youkuaiyun.com/chiying2039/article/details/100730758</guid><author>chiying2039</author><pubDate>Thu, 27 Jun 2019 11:20:00 +0800</pubDate><description><![CDATA[1. 本篇概要
RabbitMQ针对这个问题，提供了以下几个机制来解决：

生产者确认
持久化
手动Ack

本篇博客我们先讲解下生产者确认机制，剩余的机制后续单独写博客进行讲解。
2. 生产者确认
要想保证消息不丢失，首先我们得保证生产者能成功的将消息发送到RabbitMQ服务器。
但在之前...]]></description><category></category></item><item><title><![CDATA[RabbitMQ消息可靠性分析]]></title><link>https://blog.youkuaiyun.com/chiying2039/article/details/100730757</link><guid>https://blog.youkuaiyun.com/chiying2039/article/details/100730757</guid><author>chiying2039</author><pubDate>Wed, 26 Jun 2019 17:38:00 +0800</pubDate><description><![CDATA[Introduction
有很多人问过我这么一类问题：**RabbitMQ如何确保消息可靠？**很多时候，笔者的回答都是：说来话长的事情何来长话短说。的确，要确保消息可靠不只是单单几句就能够叙述明白的，包括Kafka也是如此。可靠并不是一个绝对的概念，曾经有人也留言说过类似全部磁盘损毁也会导致...]]></description><category></category></item><item><title><![CDATA[【面试】如果把线程当作一个人来对待，所有问题都瞬间明白了]]></title><link>https://blog.youkuaiyun.com/chiying2039/article/details/100730753</link><guid>https://blog.youkuaiyun.com/chiying2039/article/details/100730753</guid><author>chiying2039</author><pubDate>Wed, 26 Jun 2019 10:07:00 +0800</pubDate><description><![CDATA[多线程的问题都曾经困扰过每个开发人员，今天将从全新视角来解说，希望读者都能明白。
强烈建议去运行下文章中的示例代码，自己体会下。多线程的问题都曾经困扰过每个开发人员，今天将从全新视角来解说，希望读者都能明白。
强烈建议去运行下文章中的示例代码，自己体会下。
问题究竟出在哪里？
一个线程执行，固...]]></description><category></category></item><item><title><![CDATA[关于MQ，你必须知道的]]></title><link>https://blog.youkuaiyun.com/chiying2039/article/details/100730751</link><guid>https://blog.youkuaiyun.com/chiying2039/article/details/100730751</guid><author>chiying2039</author><pubDate>Tue, 25 Jun 2019 17:09:00 +0800</pubDate><description><![CDATA[OK那么消息队列MQ有什么套路呢？

使用消息队列场景和好处
使用消息队列会带来什么问题，有什么解决方案
如何使用MQ（以ActiveMQ为例的简单例子）

1.消息队列的应用场景和好处：


异步-流量削峰


　　我们先来看下传统的服务器接收处理请求的流程

　　如上图，在不使用消息队列服...]]></description><category></category></item><item><title><![CDATA[SpringBoot2.0 整合 RocketMQ ,实现请求异步处理]]></title><link>https://blog.youkuaiyun.com/chiying2039/article/details/100730748</link><guid>https://blog.youkuaiyun.com/chiying2039/article/details/100730748</guid><author>chiying2039</author><pubDate>Tue, 25 Jun 2019 11:11:00 +0800</pubDate><description><![CDATA[一、RocketMQ
1、架构图片

2、角色分类
(1)、Broker
RocketMQ 的核心，接收 Producer 发过来的消息、处理 Consumer 的消费消息请求、消息的持 久化存储、服务端过滤功能等 。
(2)、NameServer
消息队列中的状态服务器，集群的各个组件通过它...]]></description><category></category></item></channel></rss>