<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[junlinbo的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/junlinbo</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; junlinbo]]></copyright><item><title><![CDATA[MySQL 锁全集(共享锁/排它锁、记录锁/间隙锁/临键锁)]]></title><link>https://blog.youkuaiyun.com/junlinbo/article/details/118100085</link><guid>https://blog.youkuaiyun.com/junlinbo/article/details/118100085</guid><author>junlinbo</author><pubDate>Tue, 22 Jun 2021 09:34:14 +0800</pubDate><description><![CDATA[简介：锁是计算机协调多个进程或线程并发访问某一资源变得有序的机制。

一、锁分类

　　1. 行级锁/表级锁/页面锁

　　　　A. 行级锁：是指给索引上的索引项加锁，偏向InnoDB存储引擎；

　　　　B. 表级锁：是指给全表加锁，这个是由于没有使用索引导致的，偏向MyISAM存储引擎；

　　　　C. 页面锁：开销和加锁时间界于表锁和行锁之间；

　　2.共享锁/排它锁

　　　　A. 共享锁(S锁)：也称读锁，指可以同时读数据，即允许持锁事务读取一行，事务A持有S锁，事务B请求S锁时，会立即被赋予.]]></description><category></category></item><item><title><![CDATA[Java并发之AQS详解]]></title><link>https://blog.youkuaiyun.com/junlinbo/article/details/118057261</link><guid>https://blog.youkuaiyun.com/junlinbo/article/details/118057261</guid><author>junlinbo</author><pubDate>Sat, 19 Jun 2021 18:03:36 +0800</pubDate><description><![CDATA[一、概述

　　谈到并发，不得不谈ReentrantLock；而谈到ReentrantLock，不得不谈AbstractQueuedSynchronizer（AQS）！

　　类如其名，抽象的队列式的同步器，AQS定义了一套多线程访问共享资源的同步器框架，许多同步类实现都依赖于它，如常用的ReentrantLock/Semaphore/CountDownLatch...。

　　以下是本文的目录大纲：


	概述
		框架
		源码详解
		简单应用
	
　　若有不正之处，请谅解和批评指正，不胜感激。

　]]></description><category></category></item><item><title><![CDATA[0163 IO原理理解与IO模型]]></title><link>https://blog.youkuaiyun.com/junlinbo/article/details/103055286</link><guid>https://blog.youkuaiyun.com/junlinbo/article/details/103055286</guid><author>junlinbo</author><pubDate>Wed, 13 Nov 2019 19:07:42 +0800</pubDate><description><![CDATA[基本概念
Linux内核将所有外部设备都看做一个文件来操作。那么我们对与外部设备的操作都可以看做是对文件进行操作。我们对一个文件的读写，都通过调用内核提供的系统调用；内核给我们返回一个file descriptor（fd,文件描述符），对一个socket的读写也会有相应的描述符，称为socketfd(socket描述符）。描述符就是一个数字(可以理解为一个索引)，指向内核中一个结构体（文件路径，数...]]></description><category></category></item><item><title><![CDATA[0162 雪花分片ID生成算法snowflake]]></title><link>https://blog.youkuaiyun.com/junlinbo/article/details/86223784</link><guid>https://blog.youkuaiyun.com/junlinbo/article/details/86223784</guid><author>junlinbo</author><pubDate>Thu, 10 Jan 2019 12:11:50 +0800</pubDate><description><![CDATA[概述

分布式系统中，有一些需要使用全局唯一ID的场景，这种时候为了防止ID冲突可以使用36位的UUID，但是UUID有一些缺点，首先他相对比较长，另外UUID一般是无序的。

有些时候我们希望能使用一种简单一些的ID，并且希望ID能够按照时间有序生成。

而twitter的snowflake解决了这种需求，最初Twitter把存储系统从MySQL迁移到Cassandra，因为Cassandra没...]]></description><category></category></item><item><title><![CDATA[0161 一致性哈希算法原理]]></title><link>https://blog.youkuaiyun.com/junlinbo/article/details/85055778</link><guid>https://blog.youkuaiyun.com/junlinbo/article/details/85055778</guid><author>junlinbo</author><pubDate>Mon, 17 Dec 2018 20:33:37 +0800</pubDate><description><![CDATA[一致性Hash算法背景

　　一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的，设计目标是为了解决因特网中的热点(Hot spot)问题，初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题，使得DHT可以在P2P环境中真正得到应用。

　　但现在一致性hash算法在分布式系统中也得到了广泛应用，研究过memcached缓存数据库的人...]]></description><category></category></item><item><title><![CDATA[0160 十分钟看懂时序数据库（I）-存储]]></title><link>https://blog.youkuaiyun.com/junlinbo/article/details/85055593</link><guid>https://blog.youkuaiyun.com/junlinbo/article/details/85055593</guid><author>junlinbo</author><pubDate>Mon, 17 Dec 2018 20:22:53 +0800</pubDate><description><![CDATA[摘要：2017年时序数据库忽然火了起来。开年2月Facebook开源了beringei时序数据库；到了4月基于PostgreSQL打造的时序数据库TimeScaleDB也开源了，而早在2016年7月，百度云在其天工物联网平台上发布了国内首个多租户的分布式时序数据库产品TSDB，成为支持其发展制造，交通，能源，智慧城市等产业领域的核心产品，同时...



2017年时序数据库忽然火了起来。开年2...]]></description><category></category></item><item><title><![CDATA[0158 Nginx-搭建https服务器]]></title><link>https://blog.youkuaiyun.com/junlinbo/article/details/72470069</link><guid>https://blog.youkuaiyun.com/junlinbo/article/details/72470069</guid><author>junlinbo</author><pubDate>Thu, 18 May 2017 18:16:21 +0800</pubDate><description><![CDATA[概述
1、生成证书
2、配置nginx


步骤：
1、创建一个目录存放生成的私钥及根证书文件
      mkdir /data/ssl
      cd /data/ssl
2、创建一个私钥，并输入密码（必须输入且记住，且后续各个步骤可能都需要用到）
      openssl genrsa -des3 -out test.key 1024
3、创建签名请求的证书（csr]]></description><category></category></item><item><title><![CDATA[0157 JAVA利用HttpClient进行POST请求（HTTPS）]]></title><link>https://blog.youkuaiyun.com/junlinbo/article/details/72416330</link><guid>https://blog.youkuaiyun.com/junlinbo/article/details/72416330</guid><author>junlinbo</author><pubDate>Wed, 17 May 2017 17:11:27 +0800</pubDate><description><![CDATA[目前，要为另一个项目提供接口，接口是用HTTP URL实现的，最初的想法是另一个项目用jQuery post进行请求。
但是，很可能另一个项目是部署在别的机器上，那么就存在跨域问题，而JQuery的post请求是不允许跨域的。
这时，就只能够用HttpClient包进行请求了，同时由于请求的URL是HTTPS的，为了避免需要证书，所以用一个类继承DefaultHttpClient类，忽略校验过]]></description><category></category></item><item><title><![CDATA[0156 java中的WeakReference]]></title><link>https://blog.youkuaiyun.com/junlinbo/article/details/71456414</link><guid>https://blog.youkuaiyun.com/junlinbo/article/details/71456414</guid><author>junlinbo</author><pubDate>Tue, 09 May 2017 14:23:45 +0800</pubDate><description><![CDATA[Java语言中为对象的引用分为了四个级别，分别为 强引用
 、软引用、弱引用、虚引用。

本文只针对java中的弱引用进行一些分析，如有出入还请多指正。

在分析弱引用之前，先阐述一个概念：什么是对象可到达和对象不可到达状态。

其实很简单，我举个例子：

现在有如下两个类class A class B，在JVM上生成他们两个类的实例分别为 instance a  instanc]]></description><category></category></item><item><title><![CDATA[0155 Tomcat多实例Session共享的原理]]></title><link>https://blog.youkuaiyun.com/junlinbo/article/details/59057550</link><guid>https://blog.youkuaiyun.com/junlinbo/article/details/59057550</guid><author>junlinbo</author><pubDate>Wed, 01 Mar 2017 10:31:19 +0800</pubDate><description><![CDATA[在这个互联网高度发达的时代，许多应用的用户动辄成百上千万，甚至上亿。为了支持海量用户的访问，应用服务器集群这种水平扩展的方式是最常用的。这种情形下，就会涉及到许多单机环境下完全不需要考虑的问题，这其中session的创建、共享和存储是最常见之一。

在单机环境中，Session的创建和存储都是由同一个应用服务器实例来完成，而存储也仅是内存中，最多会在正常的停止服务器的时候，把当前活动的Sess]]></description><category></category></item><item><title><![CDATA[00154 web安全认证机制知多少]]></title><link>https://blog.youkuaiyun.com/junlinbo/article/details/58641600</link><guid>https://blog.youkuaiyun.com/junlinbo/article/details/58641600</guid><author>junlinbo</author><pubDate>Tue, 28 Feb 2017 20:21:52 +0800</pubDate><description><![CDATA[如今web服务随处可见，成千上万的web程序被部署到公网上供用户访问，有些系统只针对指定用户开放，属于安全级别较高的web应用，他们需要有一种认证机制以保护系统资源的安全，本文将探讨五种常用的认证机制及优缺点。

Basic模式

HTTP协议规范中有两种认证方式，一种是Basic认证，另外一种是Digest认证，这两种方式都属于无状态认证方式，所谓无状态即服务端都不会在会话中记录相关信息]]></description><category></category></item><item><title><![CDATA[0153 Tomcat9配置HTTP2]]></title><link>https://blog.youkuaiyun.com/junlinbo/article/details/57414417</link><guid>https://blog.youkuaiyun.com/junlinbo/article/details/57414417</guid><author>junlinbo</author><pubDate>Sun, 26 Feb 2017 15:04:46 +0800</pubDate><description><![CDATA[HTTP 2.0即超文本传输协议 2.0，是下一代HTTP协议。是由互联网工程任务组（IETF）的Hypertext Transfer Protocol Bis (httpbis)工作小组进行开发。是自1999年http1.1发布后的首个更新。



系统环境：
CentOS release 6.5 (Final) x64
JDK1.8.0_92
apache-tomcat-9.]]></description><category></category></item><item><title><![CDATA[0152 360 如何用 QConf 搞定 2W+ 服务器的配置管理]]></title><link>https://blog.youkuaiyun.com/junlinbo/article/details/56834497</link><guid>https://blog.youkuaiyun.com/junlinbo/article/details/56834497</guid><author>junlinbo</author><pubDate>Fri, 24 Feb 2017 10:50:23 +0800</pubDate><description><![CDATA[此文根据【QCON高可用架构群】分享内容，由群内【编辑组】志愿整理，转发请注明出处。

王康，奇虎360基础架构组资深工程师 目前负责分布式配置管理服务QConf的研发和维护，并推动其在奇虎360的应用。专注于服务端底层通用工具、框架和系统的研发，为公司的Web服务端及服务端提供易用、可靠的基础服务支持。

QConf是奇虎360广泛使用的配置管理服务，现已开源，欢迎大家关注使用。

]]></description><category></category></item><item><title><![CDATA[0151 Mysql数据库事务的隔离级别和锁的实现原理分析]]></title><link>https://blog.youkuaiyun.com/junlinbo/article/details/55211978</link><guid>https://blog.youkuaiyun.com/junlinbo/article/details/55211978</guid><author>junlinbo</author><pubDate>Wed, 15 Feb 2017 16:56:13 +0800</pubDate><description><![CDATA[MySQL数据库的事务隔离级别相信很多同学都知道.

大家有没有想过它是如何实现的呢?带着这些问题我翻阅了相关数据库的书籍和资料,把我的理解写下来.

一：事务隔离级别

mysql数据库的隔离界别如下:

1, READ UNCOMMITTED(未提交读)

事务中的修改,即使没有提交,对其它事务也是可见的.  脏读(Dirty Read).




2, READ]]></description><category></category></item><item><title><![CDATA[0150 dubbo-admin管理平台搭建]]></title><link>https://blog.youkuaiyun.com/junlinbo/article/details/54632441</link><guid>https://blog.youkuaiyun.com/junlinbo/article/details/54632441</guid><author>junlinbo</author><pubDate>Fri, 20 Jan 2017 16:53:38 +0800</pubDate><description><![CDATA[一、前言

dubbo的使用，其实只需要有注册中心，消费者，提供者这三个就可以使用了，但是并不能看到有哪些消费者和提供者，为了更好的调试，发现问题，解决问题，因此引入dubbo-admin。通过dubbo-admin可以对消费者和提供者进行管理。

二、下载与配置打包

dubbo-admin的下载，可自行到官网下载：https://github.com/alibaba/dubbo ]]></description><category></category></item><item><title><![CDATA[0149 Nginx/ZooKeeper 负载均衡的差异]]></title><link>https://blog.youkuaiyun.com/junlinbo/article/details/54631276</link><guid>https://blog.youkuaiyun.com/junlinbo/article/details/54631276</guid><author>junlinbo</author><pubDate>Fri, 20 Jan 2017 14:47:33 +0800</pubDate><description><![CDATA[Nginx是著名的反向代理服务器，也被广泛的作为负载均衡服务器

ZooKeeper是分布式协调服务框架，有时也被用来做负载均衡

那么他们的区别是什么？如何选择呢？

下面从实际场景看下他们的关系

Nginx的负载均衡配置非常简单，把多个web server配置到nginx中，用户访问Nginx时，就会自动被分配到某个web server


upstream backe]]></description><category></category></item><item><title><![CDATA[0148 Spring Framework 中启动 Redis 事务操作]]></title><link>https://blog.youkuaiyun.com/junlinbo/article/details/53942600</link><guid>https://blog.youkuaiyun.com/junlinbo/article/details/53942600</guid><author>junlinbo</author><pubDate>Fri, 30 Dec 2016 14:26:05 +0800</pubDate><description><![CDATA[背景：

项目中遇到有一系列对Redis的操作，并需要保持事务处理。

环境：

Spring version 4.1.8.RELEASE

Redis Server 2.6.12 （64位）

spring-data-redis version 1.6.1.RELEASE

jedis version 2.7.3

 

使用Spring的@Transaction]]></description><category></category></item><item><title><![CDATA[0147 跨域资源共享 CORS 详解]]></title><link>https://blog.youkuaiyun.com/junlinbo/article/details/52997978</link><guid>https://blog.youkuaiyun.com/junlinbo/article/details/52997978</guid><author>junlinbo</author><pubDate>Tue, 01 Nov 2016 17:35:08 +0800</pubDate><description><![CDATA[CORS是一个W3C标准，全称是"跨域资源共享"（Cross-origin resource sharing）。

它允许浏览器向跨源服务器，发出XMLHttpRequest请求，从而克服了AJAX只能同源使用的限制。

本文详细介绍CORS的内部机制。



一、简介


CORS需要浏览器和服务器同时支持。目前，所有浏览器都支持该功能，IE浏览器不能低于IE10。

]]></description><category></category></item><item><title><![CDATA[146 Git Bash 记住用户名密码]]></title><link>https://blog.youkuaiyun.com/junlinbo/article/details/52291534</link><guid>https://blog.youkuaiyun.com/junlinbo/article/details/52291534</guid><author>junlinbo</author><pubDate>Tue, 23 Aug 2016 15:45:29 +0800</pubDate><description><![CDATA[git for windows （又名 msysgit）如何记住用户名和密码 ：
先创建存储用户名密码的文件 ，在home文件夹，一般是C:\Documents
 and Settings\Administrator下建立文件.git-credentials（windows下不允许直接创建以.开头的文件，所以有一个小技巧：先创建一个文件名叫
 ）git-credentials然后进入]]></description><category></category></item><item><title><![CDATA[145 kafka入门:简介、使用场景、设计原理、主要配置及集群搭建]]></title><link>https://blog.youkuaiyun.com/junlinbo/article/details/52268212</link><guid>https://blog.youkuaiyun.com/junlinbo/article/details/52268212</guid><author>junlinbo</author><pubDate>Sun, 21 Aug 2016 17:09:26 +0800</pubDate><description><![CDATA[问题导读：

1.zookeeper在kafka的作用是什么？

2.kafka中几乎不允许对消息进行“随机读写”的原因是什么？

3.kafka集群consumer和producer状态信息是如何保存的？

4.partitions设计的目的的根本原因是什么？









一、入门

  1、简介

  Kafka is a distr]]></description><category></category></item></channel></rss>