- 博客(87)
- 收藏
- 关注
转载 高并发场景下System.currentTimeMillis()的性能问题的优化 以及SnowFlakeIdWorker高性能ID生成器
package xxx;import java.sql.Timestamp;import java.util.concurrent.*;import java.util.concurrent.atomic.AtomicLong;/** * 高并发场景下System.currentTimeMillis()的性能问题的优化 * <p><p> * System...
2018-11-01 14:57:09
1207
转载 如何使用RedisTemplate访问Redis数据结构
Redis 数据结构简介Redis 可以存储键与5种不同数据结构类型之间的映射,这5种数据结构类型分别为String(字符串)、List(列表)、Set(集合)、Hash(散列)和 Zset(有序集合)。下面来对这5种数据结构类型作简单的介绍:结构类型 结构存储的值 结构的读写能力 String 可以是字符串、整数或者浮点数 对整个字符串或者字符串的其中一部...
2018-10-21 23:27:18
294
转载 Jedis编程设计:连接池
Jedis作为redis的最佳客户端,它提供了连接池的特性,“连接池”在通常情况下可以有效的提高应用的通信能力,并且这是一种良好的设计模式。Jedis的连接池设计基于apache commons-pool原生库,仅作了简单的封装;在本文中,我将介绍如何使用jedisPool进行程序设计。 一.连接池基本参数详解maxActive: 链接池中最大连接数,默认为8. maxIdle: 链...
2018-10-21 23:02:29
299
转载 Spring data redis-StringRedisTemplate 用法
Spring-data-redis为spring-data模块中对redis的支持部分,简称为“SDR”,提供了基于jedis客户端API的高度封装以及与spring容器的整合,事实上jedis客户端已经足够简单和轻量级,而spring-data-redis反而具有“过度设计”的嫌疑。一. jedis客户端在编程实施方面存在如下不足: 1) connection管理缺乏自动化,con...
2018-10-21 22:55:39
609
转载 spring注解式参数校验
一般入参我们都会转为vo对象。那么直接在对象的属性上注解即可。 其实spring用的是hibernate的validator.步骤1.配置spring.xml<mvc:annotation-driven />12.配置自己的validate类。 <bean id="validateArgsAOP" class="com.my.validate.aop.Val...
2018-10-21 22:20:08
1572
转载 OLAP、OLTP的介绍和比较
OLTP与OLAP的介绍 数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易...
2018-09-14 20:12:58
719
转载 GTS--阿里巴巴分布式事务全新解决方案(一)
现代IT应用中,服务化SOA作为主流的技术架构被广泛应用到各种信息系统。原来一个系统被分拆成若干个服务的集合,产生了跨服务调用的分布式事务问题。随着Dubbo、SpringCloud等微服务框架的流行,服务被进一步细分,跨服务调用以及服务的嵌套调用越来越广泛。分布式事务已经成为现代分布式系统中必须面对并解决的难题。为此,今天给大家介绍下阿里巴巴为解决服务调用中的事务问题推出的解决方案G...
2018-09-05 21:58:11
834
转载 微服务架构下分布式事务解决方案——阿里GTS
1 微服务的发展微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇,很多互联网行业巨头、开源社区等都开始了微服务的讨论和实践。Hailo有160个不同服务构成,NetFlix有大约600个服务。国内方面,阿里巴巴、腾讯、360、京东、58同城等很多互联网公司都进行了微服务化实践。当前微服务的开发框架也非常多,...
2018-09-05 21:51:59
264
转载 系统吞吐量(TPS)、用户并发量、性能测试概念和公式
PS:下面是性能测试的主要概念和计算公式,记录下:一.系统吞度量要素: 一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间 QPS(TPS):每秒钟request/事务 ...
2018-09-05 21:30:53
343
转载 Spring Boot Starters
Spring Boot Starter是在SpringBoot组件中被提出来的一种概念,stackoverflow上面已经有人概括了这个starter是什么东西,想看完整的回答戳这里Starter POMs are a set of convenient dependency descriptors that you can include in your application. You ...
2018-08-07 00:05:18
450
转载 Spring Boot项目的真实程序入口
Spring Boot项目的真实程序入口 转载自:https://blog.csdn.net/Fly2Leo/article/details/78612604
2018-07-31 23:42:56
1690
转载 Redis 5种主要数据类型和命令
redis是键值对的数据库,有5中主要数据类型:字符串类型(string),散列类型(hash),列表类型(list),集合类型(set),有序集合类型(zset) 几个基本的命令:KEYS * 获得当前数据库的所有键EXISTS key [key ...] 判断键是否存在,返回个数,如果key有一样的也是叠加数DEL key [key ...] 删除键,返回...
2018-07-27 23:29:47
198
转载 Redis常用的五种数据类型
Redis常用的五种数据类型 String (Key-Value)String是最常用的一种数据类型,普通的key/value存储都可以归为此类。一个Key对应一个Value,string类型是二进制安全的。Redis的string可以包含任何数据,比如jpg图片(生成二进制)或者序列化的对象。基本操作如下: //基本数据类型 var cli...
2018-07-27 23:29:19
232
转载 Java多线程之Executor、ExecutorService、Executors、Callable、Future与FutureTask
1. 引子初学Java多线程,常使用Thread与Runnable创建、启动线程。如下例:Thread t1 = new Thread(new Runnable() { @Override public void run() { System.out.println(Thread.currentThread().getName()); }});t1.st...
2018-07-14 23:19:58
406
转载 23种设计模式介绍以及在Java中的实现
原创不易,转载请注明出处:http://blog.csdn.net/anxpp/article/details/51224293,谢谢! 文章比较长,读者可以通过顶端的目录选择要了解的模式,然后通过文章右边的按钮快速返回顶部重新选择一个新的模式浏览 博主精心准备了大量的示例代码。文章尽量提供与编程相关的例子,而不是像多数其他介绍的文章一样,提供一些感觉挺滑稽的例子(那样的例子可能看完觉...
2018-07-13 01:15:00
353
转载 基于redis的分布式锁实现
关于分布式锁很久之前有讲过并发编程中的锁并发编程的锁机制:synchronized和lock。在单进程的系统中,当存在多个线程可以同时改变某个变量时,就需要对变量或代码块做同步,使其在修改这种变量时能够线性执行消除并发修改变量。而同步的本质是通过锁来实现的。为了实现多个线程在一个时刻同一个代码块只能有一个线程可执行,那么需要在某个地方做个标记,这个标记必须每个线程都能看到,当标记不存在时可以设置该...
2018-07-13 00:52:35
1386
转载 如何使用RedisTemplate访问Redis数据结构
Redis 数据结构简介Redis 可以存储键与5种不同数据结构类型之间的映射,这5种数据结构类型分别为String(字符串)、List(列表)、Set(集合)、Hash(散列)和 Zset(有序集合)。下面来对这5种数据结构类型作简单的介绍:结构类型结构存储的值结构的读写能力String可以是字符串、整数或者浮点数对整个字符串或者字符串的其中一部分执行操作;对象和浮点数执行自增(incremen...
2018-07-12 00:53:29
517
转载 MySQL 使用自增ID主键和UUID 作为主键的优劣比较详细过程(从百万到千万表记录测试)
测试缘由 一个开发同事做了一个框架,里面主键是uuid,我跟他建议说mysql不要用uuid用自增主键,自增主键效率高,他说不一定高,我说innodb的索引特性导致了自增id做主键是效率最好的,为了拿实际的案例来说服他,所以准备做一个详细的测试。 作为互联网公司,一定有用户表,而且用户表UC_USER基本会有百万记录,所以在这个表基础上准测试数据来进行测试。 测试过程是目前我想到...
2018-07-12 00:40:46
514
转载 Java上的try catch并不影响性能
最近因为担心自己开发的库不稳定,会影响到接入产品的正常运行,在代码的不少地方都加了一层try catch,主要是为了避免自己的一些异常抛出导致,应用crash,捕获的异常也并没有做什么特别的处理,只是在log中输出该异常的信息。try catch多了后,就开始担心会不会影响性能,以前学C或C++的时候好像曾经被警告过要尽量少使用try catch,好像是在压栈的时候会更消耗神马的,其实说真的并没有...
2018-07-03 23:48:06
794
转载 关于 "java中常量定义在interface中好还是定义在class中好" 的一些思考
java中interface中定义变量都是"public static final" 类型的, 也就是常量, 因此很多人在interface定义常用的常量(这也是本人偏爱的方式); 由此却引起了不少风波, 网上关于此问题的讨论也非常多, 下面说说我的个人意见: 下面是功能等同的两种定义常量的方式: package com.example;public final class Constants...
2018-07-03 00:06:00
1890
转载 Java日志管理:Logger.getLogger()和LogFactory.getLog()的区别(详解Log4j)
第一、Logger.getLogger()和LogFactory.getLog()的区别 1.Logger.getLogger()是使用log4j的方式记录日志; 2.LogFactory.getLog()则来自apache的common-logging包。common-logging组件: Jakarta Commons Logging (JCL)提供的是一个日志(Lo...
2018-07-02 00:53:44
4748
转载 java日志,需要知道的几件事(commons-logging,log4j,slf4j,logback)
java日志,需要知道的几件事如果对于commons-loging 、log4j 、slf4j 、LogBack 等都已经非常清楚了,可以忽略本文。几次解决日志冲突问题时对这几个概念的简单总结,希望对这块基础没有理解透的同学能有所帮助,当然如果对这块有更深刻理解的同学,也贡献出自己的知识和见解。一、 概念Commons-logging : apache最早提供的日志的门面接口。避免和具体的...
2018-07-02 00:52:52
186
转载 浅谈java中BigDecimal的equals与compareTo的区别
这两天在处理支付金额校验的时候出现了点问题,有个金额比较我用了BigDecimal的equals方法来比较两个金额是否相等,结果导致金额比较出现错误(比如3.0与3.00的比较等)。【注:以下所讲都是以sun jdk 1.4.2版本为例,其他版本实现未必一致,请忽略】首先看一下BigDecimal的equals方法:?1234567public boolean equals(Object x){ ...
2018-07-02 00:41:32
1243
转载 【Java关键字-Interface】为什么Interface中的变量只能是 public static final
三个关键字在接口中的存在原因:public:接口可以被其他接口继承,也可以被类实现,类与接口、接口与接口可能会形成多层级关系,采用public可以满足变量的访问范围;static:如果变量不是static的,那么接口必须实例化才可以访问自己的变量,接口不能被实例化,故非static的变量是无效的;final:如果变量不是final的,而方法是abstract的,因此接口中的方法又不可以修改变量值,...
2018-07-02 00:40:02
767
转载 Eclipse Java注释模板设置详解以及版权声明
网上的Eclipse注释模板,在这里稍稍整理一些比较常用的。编辑注释模板的方法:Window->Preference->Java->Code Style->Code Template 然后展开Comments节点就是所有需设置注释的元素啦。现就每一个元素逐一介绍:1.文件(Files)注释标签:/** * All rights Reserved, Designed B...
2018-07-02 00:14:36
254
转载 Java 枚举(enum) 详解7种常见的用法
JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。大师兄我又加上自己的理解,来帮助各位理解一下。用法一:常量在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 Java代码 public enum Color { ...
2018-07-02 00:13:50
182
转载 Java 枚举7常见种用法
JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。用法一:常量在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 Java代码 public enum Color { RED, GREEN, BLANK, ...
2018-06-07 16:57:45
240
转载 java类中serialversionuid 作用 是什么?举个例子说明
serialVersionUID适用于Java的序列化机制。简单来说,Java的序列化机制是通过判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常,即是InvalidCastEx...
2018-05-31 17:03:21
226
转载 postman的使用方法详解!最全面的教程
文章来源:http://www.cnplugins.com/tool/specify-postman-methods.html 一 简介 Postman 是一款功能超级强大的用于发送 HTTP 请求的 Chrome插件 。做web页面开发和测试的人员应该是无人不晓无人不用!其主要特点 特点: 创建 + 测试:创建和发送任何的HTTP请求一 简介Postman是一款功能超级强大的用于发送 HTTP...
2018-05-28 12:54:55
56760
11
转载 Java中NIO和IO区别和适用场景
NIO是为了弥补IO操作的不足而诞生的,NIO的一些新特性有:非阻塞I/O,选择器,缓冲以及管道。管道(Channel),缓冲(Buffer) ,选择器( Selector)是其主要特征。概念解释:Channel——管道实际上就像传统IO中的流,到任何目的地(或来自任何地方)的所有数据都必须通过一个 Channel 对象。一个 Buffer 实质上是一个容器对象。Selector——选择器用于监听...
2018-05-24 15:02:11
1171
转载 HSF的原理分析
一.HSF的基本概念HSF全称为High-Speed Service Framework,旨在为淘系的应用提供一个分布式的服务框架,HSF从分布式应用层面以及统一的发布/调用方式层面为大家提供支持,从而可以很容易的开发分布式的应用以及提供或使用公用功能模块,而不用考虑分布式领域中的各种细节技术,例如远程通讯、性能损耗、调用的透明化、同步/异步调用方式的实现等等问题。 二.知识准备通过以上的说明,大...
2018-05-23 20:57:21
557
转载 EDAS伴侣ARMS终极进化:业务监控实时无边界
作为和企业互联网架构平台 Apsara Aliware“三驾马车”(EDAS/DRDS/MQ)并驾齐驱的又一重磅产品。本文主要从ARMS的诞生背景开始,介绍了ARMS的雏形,着重说明了全新公测的ARMS业务实时监控服务,最后和大家分享了ARMS的五个应用场景并做了ARMS的特点总结。 以下为精彩内容整理: ARMS助力企业应用实时监控ARMS特点可以用三个词来形容:业务:方便快捷的定制能力。与其它...
2018-05-22 20:36:02
883
转载 复习整理-MQ
MQ是消息服务中间件,基于高可用分布式集群技术,是消费模式基于发布订阅模式的消息系统。支持Java,C++以及.NET,PHP,Python,为分布式应用系统提供异步解耦、削峰填谷的能力,具备海量消息堆积、高吞吐、可靠重试等特性。具有消息查询,消息回溯(不是消息撤回,也不支持消息撤回),消息轨迹查询,堆积监控报警功能。MQ协议支持接入方式 : TCP、HTTP(RESTful 风格)、MQTT。M...
2018-05-22 16:01:13
2218
转载 复习整理-EDAS
EDAS : EDAS支持语言Java,C++,PHP。EDAS支持Idea,Eclipse;Eclipse插件安装等编译工具。EDAS初级版仅支持应用的部署管理,不支持HSF功能。EDAS基础版不支持RPC框架。EDAS提供高性能的RPC框架,能构建高可用的分布式系统,考虑各个应用之间的分布式服务发现、服务路由、服务调用以及服务安全等细节。EDAS能单独部署到公司内网。EDAS HSF服务框架保...
2018-05-22 15:10:15
2709
转载 复习整理-DRDS
DRDS :DRDS的基础原理是Sharding,即数据分片,是典型的水平扩展分布式数据库模型,和传统单机数据库share anything架构不同,DRDS采用的是share nothing架构。DRDS主要解决单机数据库容量瓶颈,单机数据库扩展困难,传统数据库使用成本高的问题,是高性价比,低运维成本的分布式数据库。主要场景是大规模在线数据操作,如 : 高并发实时交易,海量数据存储和访问,数据库...
2018-05-22 09:50:37
6208
转载 什么是分布式系统中的幂等性
最近很多人都在谈论幂等性,好吧,这回我也来聊聊这个话题,光看着俩字,一开始的确有点一头雾水,语文不好嘛,词太专业嘛,对吧 现如今我们的系统大多拆分为分布式SOA,或者微服务,一套系统中包含了多个子系统服务,而一个子系统服务往往会去调用另一个服务,而服务调用服务无非就是使用RPC通信或者restful,既然是通信,那么就有可能再服务器处理完毕后返回结果的时候挂掉,这个时候用户端发现很久没有反应,那么...
2018-05-22 09:24:29
214
转载 drds基础笔记
帮助文档URL: https://help.aliyun.com/document_detail/29659.html?spm=a2c4g.11186623.6.539.6c5jsLdrds知识总结:bug1,分库分表的时候,在表对象中查不到.bug2,分库分表无法进行数据导入,提示表结构找不到.note1,分区键起作用后,可能导致查询出结果主键冲突.主键要提前设定为全局唯一.note2,分区键键...
2018-05-21 17:04:02
4496
原创 一张图教你看懂EDAS
企业级分布式应用服务(EDAS,Enterprise Distributed Application Service)是一个以阿里中间件团队多款久经历练的组件产品作为核心基础,所组建的企业云计算解决方案。其充分利用阿里云现有的资源管理和服务体系,引入中间件整套成熟的分布式计算框架——包括分布式应用核心框架,分布式数据化运营,大型应用全生命周期管理等,以应用为中心,集成到企业级分布式应用服务平台上,...
2018-05-21 17:03:03
2338
转载 Queue与Topic区别
队列(Queue)和主题(Topic)是JMS支持的两种消息传递模型: 1、点对点(point-to-point,简称PTP)Queue消息传递模型: 通过该消息传递模型,一个应用程序(即消息生产者)可以向另外一个应用程序(即消息消费者)发送消息。在此传递模型中,消息目的地类型是队列(即Destination接口实现类实例由Session接口实现类实例通过调用其crea...
2018-05-21 16:28:07
1133
原创 什么是IaaS, PaaS和SaaS及其区别
IaaS: Infrastructure-as-a-Service(基础设施即服务)第一层叫做IaaS,有时候也叫做Hardware-as-a-Service,几年前如果你想在办公室或者公司的网站上运行一些企业应用,你需要去买服务器,或者别的高昂的硬件来控制本地应用,让你的业务运行起来。但是现在有IaaS,你可以将硬件外包到别的地方去。IaaS公司会提供场外服务器,存储和网络硬件,你可以租用。节省...
2018-05-17 10:00:22
4451
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人