<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[JR_Way的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/JR_Way</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; JR_Way]]></copyright><item><title><![CDATA[高并发场景下System.currentTimeMillis()的性能问题的优化 以及SnowFlakeIdWorker高性能ID生成器]]></title><link>https://blog.youkuaiyun.com/JR_Way/article/details/83620527</link><guid>https://blog.youkuaiyun.com/JR_Way/article/details/83620527</guid><author>JR_Way</author><pubDate>Thu, 01 Nov 2018 14:57:09 +0800</pubDate><description><![CDATA[
package xxx;

import java.sql.Timestamp;
import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicLong;

/**
 * 高并发场景下System.currentTimeMillis()的性能问题的优化
 * &amp;lt;p&amp;gt;&amp;lt;p&amp;gt;
 * System...]]></description><category></category></item><item><title><![CDATA[如何使用RedisTemplate访问Redis数据结构]]></title><link>https://blog.youkuaiyun.com/JR_Way/article/details/83247022</link><guid>https://blog.youkuaiyun.com/JR_Way/article/details/83247022</guid><author>JR_Way</author><pubDate>Sun, 21 Oct 2018 23:27:18 +0800</pubDate><description><![CDATA[Redis 数据结构简介

Redis 可以存储键与5种不同数据结构类型之间的映射，这5种数据结构类型分别为String（字符串）、List（列表）、Set（集合）、Hash（散列）和 Zset（有序集合）。

下面来对这5种数据结构类型作简单的介绍：

结构类型
			结构存储的值
			结构的读写能力
		String
			可以是字符串、整数或者浮点数
			对整个字符串或者字符串的其中一部...]]></description><category></category></item><item><title><![CDATA[Jedis编程设计:连接池]]></title><link>https://blog.youkuaiyun.com/JR_Way/article/details/83246785</link><guid>https://blog.youkuaiyun.com/JR_Way/article/details/83246785</guid><author>JR_Way</author><pubDate>Sun, 21 Oct 2018 23:02:29 +0800</pubDate><description><![CDATA[Jedis作为redis的最佳客户端，它提供了连接池的特性，“连接池”在通常情况下可以有效的提高应用的通信能力，并且这是一种良好的设计模式。Jedis的连接池设计基于apache commons-pool原生库，仅作了简单的封装；在本文中，我将介绍如何使用jedisPool进行程序设计。

 

一.连接池基本参数详解

maxActive: 链接池中最大连接数,默认为8.
	maxIdle: 链...]]></description><category></category></item><item><title><![CDATA[Spring data redis-StringRedisTemplate 用法]]></title><link>https://blog.youkuaiyun.com/JR_Way/article/details/83246732</link><guid>https://blog.youkuaiyun.com/JR_Way/article/details/83246732</guid><author>JR_Way</author><pubDate>Sun, 21 Oct 2018 22:55:39 +0800</pubDate><description><![CDATA[Spring-data-redis为spring-data模块中对redis的支持部分，简称为“SDR”，提供了基于jedis客户端API的高度封装以及与spring容器的整合，事实上jedis客户端已经足够简单和轻量级，而spring-data-redis反而具有“过度设计”的嫌疑。

一. jedis客户端在编程实施方面存在如下不足：

    1) connection管理缺乏自动化，con...]]></description><category></category></item><item><title><![CDATA[spring注解式参数校验]]></title><link>https://blog.youkuaiyun.com/JR_Way/article/details/83246337</link><guid>https://blog.youkuaiyun.com/JR_Way/article/details/83246337</guid><author>JR_Way</author><pubDate>Sun, 21 Oct 2018 22:20:08 +0800</pubDate><description><![CDATA[一般入参我们都会转为vo对象。那么直接在对象的属性上注解即可。 
其实spring用的是hibernate的validator.

步骤
1.配置spring.xml
&amp;lt;mvc:annotation-driven /&amp;gt;
1
2.配置自己的validate类。
    &amp;lt;bean id=&quot;validateArgsAOP&quot; class=&quot;com.my.validate.aop.Val...]]></description><category></category></item><item><title><![CDATA[OLAP、OLTP的介绍和比较]]></title><link>https://blog.youkuaiyun.com/JR_Way/article/details/82708187</link><guid>https://blog.youkuaiyun.com/JR_Way/article/details/82708187</guid><author>JR_Way</author><pubDate>Fri, 14 Sep 2018 20:12:58 +0800</pubDate><description><![CDATA[OLTP与OLAP的介绍

    数据处理大致可以分成两大类：联机事务处理OLTP（on-line transaction processing）、联机分析处理OLAP（On-Line Analytical Processing）。OLTP是传统的关系型数据库的主要应用，主要是基本的、日常的事务处理，例如银行交易。OLAP是数据仓库系统的主要应用，支持复杂的分析操作，侧重决策支持，并且提供直观易...]]></description><category></category></item><item><title><![CDATA[GTS--阿里巴巴分布式事务全新解决方案（一）]]></title><link>https://blog.youkuaiyun.com/JR_Way/article/details/82431474</link><guid>https://blog.youkuaiyun.com/JR_Way/article/details/82431474</guid><author>JR_Way</author><pubDate>Wed, 05 Sep 2018 21:58:11 +0800</pubDate><description><![CDATA[      现代IT应用中，服务化SOA作为主流的技术架构被广泛应用到各种信息系统。原来一个系统被分拆成若干个服务的集合，产生了跨服务调用的分布式事务问题。随着Dubbo、SpringCloud等微服务框架的流行，服务被进一步细分，跨服务调用以及服务的嵌套调用越来越广泛。分布式事务已经成为现代分布式系统中必须面对并解决的难题。为此，今天给大家介绍下阿里巴巴为解决服务调用中的事务问题推出的解决方案G...]]></description><category></category></item><item><title><![CDATA[微服务架构下分布式事务解决方案——阿里GTS]]></title><link>https://blog.youkuaiyun.com/JR_Way/article/details/82431450</link><guid>https://blog.youkuaiyun.com/JR_Way/article/details/82431450</guid><author>JR_Way</author><pubDate>Wed, 05 Sep 2018 21:51:59 +0800</pubDate><description><![CDATA[1 微服务的发展

微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务，这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇，很多互联网行业巨头、开源社区等都开始了微服务的讨论和实践。Hailo有160个不同服务构成，NetFlix有大约600个服务。国内方面，阿里巴巴、腾讯、360、京东、58同城等很多互联网公司都进行了微服务化实践。当前微服务的开发框架也非常多，...]]></description><category></category></item><item><title><![CDATA[系统吞吐量（TPS）、用户并发量、性能测试概念和公式]]></title><link>https://blog.youkuaiyun.com/JR_Way/article/details/82431153</link><guid>https://blog.youkuaiyun.com/JR_Way/article/details/82431153</guid><author>JR_Way</author><pubDate>Wed, 05 Sep 2018 21:30:53 +0800</pubDate><description><![CDATA[PS：下面是性能测试的主要概念和计算公式，记录下：

一．系统吞度量要素：

  一个系统的吞度量（承压能力）与request对CPU的消耗、外部接口、IO等等紧密关联。

单个reqeust 对CPU消耗越高，外部系统接口、IO影响速度越慢，系统吞吐能力越低，反之越高。

系统吞吐量几个重要参数：QPS（TPS）、并发数、响应时间

        QPS（TPS）：每秒钟request/事务 ...]]></description><category></category></item><item><title><![CDATA[Spring Boot Starters]]></title><link>https://blog.youkuaiyun.com/JR_Way/article/details/81463711</link><guid>https://blog.youkuaiyun.com/JR_Way/article/details/81463711</guid><author>JR_Way</author><pubDate>Tue, 07 Aug 2018 00:05:18 +0800</pubDate><description><![CDATA[Spring Boot Starter是在SpringBoot组件中被提出来的一种概念，stackoverflow上面已经有人概括了这个starter是什么东西，想看完整的回答戳这里


Starter POMs are a set of convenient dependency descriptors that you can include in your application. You ...]]></description><category></category></item><item><title><![CDATA[Spring Boot项目的真实程序入口]]></title><link>https://blog.youkuaiyun.com/JR_Way/article/details/81322786</link><guid>https://blog.youkuaiyun.com/JR_Way/article/details/81322786</guid><author>JR_Way</author><pubDate>Tue, 31 Jul 2018 23:42:56 +0800</pubDate><description><![CDATA[Spring Boot项目的真实程序入口

 

转载自：https://blog.youkuaiyun.com/Fly2Leo/article/details/78612604]]></description><category></category></item><item><title><![CDATA[Redis 5种主要数据类型和命令]]></title><link>https://blog.youkuaiyun.com/JR_Way/article/details/81255688</link><guid>https://blog.youkuaiyun.com/JR_Way/article/details/81255688</guid><author>JR_Way</author><pubDate>Fri, 27 Jul 2018 23:29:47 +0800</pubDate><description><![CDATA[redis是键值对的数据库，有5中主要数据类型：

字符串类型（string），散列类型（hash），列表类型（list），集合类型（set），有序集合类型（zset）

 

几个基本的命令：

KEYS * 获得当前数据库的所有键

EXISTS key [key ...]  判断键是否存在，返回个数，如果key有一样的也是叠加数

DEL key [key ...]       删除键，返回...]]></description><category></category></item><item><title><![CDATA[Redis常用的五种数据类型]]></title><link>https://blog.youkuaiyun.com/JR_Way/article/details/81255684</link><guid>https://blog.youkuaiyun.com/JR_Way/article/details/81255684</guid><author>JR_Way</author><pubDate>Fri, 27 Jul 2018 23:29:19 +0800</pubDate><description><![CDATA[Redis常用的五种数据类型

 

String (Key-Value)

String是最常用的一种数据类型，普通的key/value存储都可以归为此类。

一个Key对应一个Value，string类型是二进制安全的。

Redis的string可以包含任何数据，比如jpg图片(生成二进制)或者序列化的对象。

基本操作如下：

 



 


	//基本数据类型
	
	
	var cli...]]></description><category></category></item><item><title><![CDATA[Java多线程之Executor、ExecutorService、Executors、Callable、Future与FutureTask]]></title><link>https://blog.youkuaiyun.com/JR_Way/article/details/81048619</link><guid>https://blog.youkuaiyun.com/JR_Way/article/details/81048619</guid><author>JR_Way</author><pubDate>Sat, 14 Jul 2018 23:19:58 +0800</pubDate><description><![CDATA[1. 引子初学Java多线程，常使用Thread与Runnable创建、启动线程。如下例:Thread t1 = new Thread(new Runnable() {
    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName());
    }
});
t1.st...]]></description><category></category></item><item><title><![CDATA[23种设计模式介绍以及在Java中的实现]]></title><link>https://blog.youkuaiyun.com/JR_Way/article/details/81024877</link><guid>https://blog.youkuaiyun.com/JR_Way/article/details/81024877</guid><author>JR_Way</author><pubDate>Fri, 13 Jul 2018 01:15:00 +0800</pubDate><description><![CDATA[原创不易，转载请注明出处：http://blog.youkuaiyun.com/anxpp/article/details/51224293，谢谢！    文章比较长，读者可以通过顶端的目录选择要了解的模式，然后通过文章右边的按钮快速返回顶部重新选择一个新的模式浏览    博主精心准备了大量的示例代码。文章尽量提供与编程相关的例子，而不是像多数其他介绍的文章一样，提供一些感觉挺滑稽的例子（那样的例子可能看完觉...]]></description><category></category></item><item><title><![CDATA[基于redis的分布式锁实现]]></title><link>https://blog.youkuaiyun.com/JR_Way/article/details/81024844</link><guid>https://blog.youkuaiyun.com/JR_Way/article/details/81024844</guid><author>JR_Way</author><pubDate>Fri, 13 Jul 2018 00:52:35 +0800</pubDate><description><![CDATA[关于分布式锁很久之前有讲过并发编程中的锁并发编程的锁机制：synchronized和lock。在单进程的系统中，当存在多个线程可以同时改变某个变量时，就需要对变量或代码块做同步，使其在修改这种变量时能够线性执行消除并发修改变量。而同步的本质是通过锁来实现的。为了实现多个线程在一个时刻同一个代码块只能有一个线程可执行，那么需要在某个地方做个标记，这个标记必须每个线程都能看到，当标记不存在时可以设置该...]]></description><category></category></item><item><title><![CDATA[如何使用RedisTemplate访问Redis数据结构]]></title><link>https://blog.youkuaiyun.com/JR_Way/article/details/81009093</link><guid>https://blog.youkuaiyun.com/JR_Way/article/details/81009093</guid><author>JR_Way</author><pubDate>Thu, 12 Jul 2018 00:53:29 +0800</pubDate><description><![CDATA[Redis 数据结构简介Redis 可以存储键与5种不同数据结构类型之间的映射，这5种数据结构类型分别为String（字符串）、List（列表）、Set（集合）、Hash（散列）和 Zset（有序集合）。下面来对这5种数据结构类型作简单的介绍：结构类型结构存储的值结构的读写能力String可以是字符串、整数或者浮点数对整个字符串或者字符串的其中一部分执行操作；对象和浮点数执行自增(incremen...]]></description><category></category></item><item><title><![CDATA[MySQL 使用自增ID主键和UUID 作为主键的优劣比较详细过程（从百万到千万表记录测试）]]></title><link>https://blog.youkuaiyun.com/JR_Way/article/details/81009055</link><guid>https://blog.youkuaiyun.com/JR_Way/article/details/81009055</guid><author>JR_Way</author><pubDate>Thu, 12 Jul 2018 00:40:46 +0800</pubDate><description><![CDATA[测试缘由 一个开发同事做了一个框架，里面主键是uuid，我跟他建议说mysql不要用uuid用自增主键，自增主键效率高，他说不一定高，我说innodb的索引特性导致了自增id做主键是效率最好的，为了拿实际的案例来说服他，所以准备做一个详细的测试。 作为互联网公司，一定有用户表，而且用户表UC_USER基本会有百万记录，所以在这个表基础上准测试数据来进行测试。          测试过程是目前我想到...]]></description><category></category></item><item><title><![CDATA[Java上的try catch并不影响性能]]></title><link>https://blog.youkuaiyun.com/JR_Way/article/details/80906011</link><guid>https://blog.youkuaiyun.com/JR_Way/article/details/80906011</guid><author>JR_Way</author><pubDate>Tue, 03 Jul 2018 23:48:06 +0800</pubDate><description><![CDATA[最近因为担心自己开发的库不稳定，会影响到接入产品的正常运行，在代码的不少地方都加了一层try catch，主要是为了避免自己的一些异常抛出导致，应用crash，捕获的异常也并没有做什么特别的处理，只是在log中输出该异常的信息。try catch多了后，就开始担心会不会影响性能，以前学C或C++的时候好像曾经被警告过要尽量少使用try catch，好像是在压栈的时候会更消耗神马的，其实说真的并没有...]]></description><category></category></item><item><title><![CDATA[关于 "java中常量定义在interface中好还是定义在class中好" 的一些思考]]></title><link>https://blog.youkuaiyun.com/JR_Way/article/details/80891732</link><guid>https://blog.youkuaiyun.com/JR_Way/article/details/80891732</guid><author>JR_Way</author><pubDate>Tue, 03 Jul 2018 00:06:00 +0800</pubDate><description><![CDATA[java中interface中定义变量都是&quot;public static final&quot; 类型的, 也就是常量, 因此很多人在interface定义常用的常量(这也是本人偏爱的方式); 由此却引起了不少风波, 网上关于此问题的讨论也非常多, 下面说说我的个人意见: 下面是功能等同的两种定义常量的方式: package com.example;

public final class Constants...]]></description><category></category></item></channel></rss>