- 博客(385)
- 资源 (48)
- 收藏
- 关注
原创 BeanPostProcessor
BeanPostProcessor是Spring IOC容器给我们提供的一个扩展接口。接口声明如下: public interface BeanPostProcessor {//bean初始化方法调用前被调用Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansEx...
2019-12-21 13:58:03
271
转载 分库分表
一、前言中大型项目中,一旦遇到数据量比较大,小伙伴应该都知道就应该对数据进行拆分了。有垂直和水平两种。垂直拆分比较简单,也就是本来一个数据库,数据量大之后,从业务角度进行拆分多个库。如下图,独立的拆分出订单库和用户库。水平拆分的概念,是同一个业务数据量大之后,进行水平拆分。上图中订单数据达到了4000万,我们也知道mysql单表存储量推荐是百万级,如果不进行处理,mysql单表...
2019-04-23 10:05:09
360
转载 spring 拦截 权限
package com.qingbo.ginkgo.annotation;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Inherited;import java.lang.annotation.Retention;i...
2019-04-13 08:44:23
316
转载 mac startuml
function validate(PK, name, product, licenseKey) { var pk, decrypted; // edit by 0xcb return { name: "0xcb", product: "StarUML", ...
2019-03-20 14:50:59
282
转载 springcloud 属性
鉴于博客的格式不是太友好 , 另提供了重新排版的jpg和pdf , 你可以点此下载, 文章末尾有jpg和pdf版预览图eureka属性名 默认值 说明eureka.client.allow-redirectsfalse指示服务器是否可以将客户端请求重定向到备份服务器/集群。如果设置为false,服务器将直接处理请求,如果设置为true,则可能会向客户端发送HTTP重定...
2019-03-06 11:23:46
452
转载 springcloud
本次分享的是关于springcloud服务注册与发现的内容,将通过分别搭建服务中心,服务注册,服务发现来说明;现在北京这边很多创业公司都开始往springcloud靠了,可能是由于文档和组件比较丰富的原因吧,毕竟是一款目前来说比较完善的微服务架构;本次分享希望能给大家带来好的帮助;Eureka服务中心 Provider注册服务 Consumer发现服务 Eureka服务中心高可用Eur...
2019-01-15 09:55:25
160
转载 Java jks
一、Java代码生成cer证书文件:public class GetCertFile { //证书颁发者 static String CertificateIssuer = "C=中国,ST=广东,L=广州,O=人民组织,OU=人民单位,CN=人民颁发"; //证书使用者 static String CertificateUser = "C=中国,ST=广东,...
2018-12-17 16:40:38
2445
转载 hystrix ribbon zuul 超时配置
0.需要引入: <!-- 重试机制 ,否则重试不生效 --> <dependency> <groupId>org.springframework.retry</groupId> <artifactId>spring-retry</artifactId> </depe...
2018-12-05 10:11:49
794
转载 大批量到处excel,防止内存溢出
最近在做项目功能时 ,发现有20万以上的数据。要求导出时直接导出成压缩包。原来的逻辑是使用poi导出到excel,他是操作对象集合然后将结果写到excel中。使用poi等导出时,没有考虑数据量的问题,大数据量无法满足,有个几千行jvm就哭了。更别提几万行几百万行数据了。经过一天的研究发现一种不会消耗过多内存的方法:导出成csv格式大数据量的导出成csv格式分为以下几步:1.首先...
2018-09-10 17:53:39
1547
1
转载 mock测试spring boot的CRUD服务
controller如下: @RestController public class GithubController { @Autowired private GitHubRepository repository; @Autowired private GithubEnt...
2018-08-26 13:43:12
384
转载 crc16算法
package org.rui.hi; /** * 测试: 解决场景:把1亿的用户 存储在一个队列里,过大。用sharding 摸拟redis 集群 sharding Redis * 集群使用数据分片(sharding)而非一致性哈希(consistency hashing)来实现: 一个 Redis 集群包含 16384 * 个哈希槽(hash slot), 数据库中的每个键都属于这...
2018-08-17 10:50:36
1778
转载 redis 秒杀业务
今天再次抽空整理下实际场景中的具体代码逻辑实现吧:抢购/秒杀是如今很常见的一个应用场景,那么高并发竞争下如何解决超抢(或超卖库存不足为负数的问题)呢?常规写法:查询出对应商品的库存,看是否大于0,然后执行生成订单等操作,但是在判断库存是否大于0处,如果在高并发下就会有问题,导致库存量出现负数这里我就只谈redis的解决方案吧...我们先来看以下代码(这里我以laravel为例吧)是...
2018-08-16 09:40:00
292
转载 Netty心跳机制
What 顾名思义, 所谓 心跳, 即在 TCP 长连接中, 客户端和服务器之间定期发送的一种特殊的数据包, 通知对方自己还在线, 以确保 TCP 连接的有效性.Why因为网络的不可靠性, 有可能在 TCP 保持长连接的过程中, 由于某些突发情况, 例如网线被拔出, 突然掉电等, 会造成服务器和客户端的连接中断. 在这些突发情况下, 如果恰好服务器和客户端之间没有交互的话, 那么它们是不能在短时间...
2018-06-07 13:50:05
311
转载 netflix hystrix 使用详解
1. 依赖引入pom.xml<properties> <hystrix-version>1.4.22</hystrix-version></properties><dependencies> <dependency> <groupId>com.netflix.hystrix<
2018-05-10 16:27:41
2057
转载 Hystrix 参数详解
Hystrix 参数详解hystrix.command.default和hystrix.threadpool.default中的default为默认CommandKeyCommand PropertiesExecution相关的属性的配置:hystrix.command.default.execution.isolation.strategy 隔离策略,默认是Thread, 可选Thread|Se...
2018-05-10 15:55:56
270
转载 springcloud hystrixCommand 配置详解
主要用来控制 HystrixCommand 命令的行为,主要有下面5种类型的属性配置:execution配置该配置前缀为 hystrix.command.defaultexecution.isolation.strategy :该属性用来设置执行的隔离策略,有如下二个选项:THREAD:通过线程池隔离的策略,在独立线程上执行,并且他的并发限制受线程池中线程数量的限制(默认)SEMAPHONE:通过...
2018-05-10 13:31:52
2869
转载 jvm 虚拟机加载原理
首先Throws(抛出)几个自己学习过程中一直疑惑的问题:1、什么是类加载?什么时候进行类加载?2、什么是类初始化?什么时候进行类初始化?3、什么时候会为变量分配内存?4、什么时候会为变量赋默认初值?什么时候会为变量赋程序设定的初值?5、类加载器是什么?6、如何编写一个自定义的类加载器?首先,在代码编译后,就会生成JVM(Java虚拟机)能够识别的二进制字节流文件(*.class)。而JVM把Cl...
2018-04-18 17:52:25
205
转载 hystrix 参数详解
简介上节我们讨论了hystrix+feign+ribbon,但是可能很多人都知道hystrix还有线程隔离,信号量隔离,等等各种参数配置,在这几就记录下hystrix的参数,一、hystrix参数使用方法通过注解@HystrixCommand的commandProperties去配置,如下就是hystrix命令超时时间命令执行超时时间,为1000ms和执行是不启用超时@RestController...
2018-04-08 18:05:34
856
转载 基于token的多平台身份认证架构设计
1 概述在存在账号体系的信息系统中,对身份的鉴定是非常重要的事情。随着移动互联网时代到来,客户端的类型越来越多, 逐渐出现了 一个服务器,N个客户端的格局 。不同的客户端产生了不同的用户使用场景,这些场景:有不同的环境安全威胁不同的会话生存周期不同的用户权限控制体系不同级别的接口调用方式综上所述,它们的身份认证方式也存在一定的区别。本文将使用一定的篇幅对这些场景进行一些分析和梳理工作。2 ...
2018-03-30 10:32:33
439
转载 类加载
之前写过一篇关于Java中普通代码块和static代码块的区别,大致讲解了普通代码块和Static代码的区别,但是并没有讲它们的加载执行顺序,本章就细细的将一下类的加载机制(初始化顺序)。类生命周期类的字节码从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始...
2018-03-20 18:14:49
189
转载 voilate
一、Java内存模型想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的。Java内存模型规定了所有的变量都存储在主内存中。每条线程中还有自己的工作内存,线程的工作内存中保存了被该线程所使用到的变量(这些变量是从主内存中拷贝而来)。线程对变量的所有操作(读取,赋值)都必须在工作内存中进行。不同线程之间也无法直接访问对方工作内存中的变量,线程间变量值的传递均需要通过主...
2018-03-20 17:20:41
714
1
转载 https
我们先不了聊HTTP,HTTPS,我们先从一个聊天软件说起,我们要实现A能发一个hello消息给B:如果我们要实现这个聊天软件,本文只考虑安全性问题,要实现A发给B的hello消息包,即使被中间人拦截到了,也无法得知消息的内容如何做到真正的安全?这个问题,很多人马上就想到了各种加密算法,什么对称加密、非对称加密、DES、RSA、XX、噼里啪啦~而我想说,加密算法只是解决方案,我们首先要做的是理解我...
2018-03-20 16:19:00
308
转载 java设计模式
一.单一职责原则 单一职责原则是最简单的面向对象设计原则,它用于控制类的粒度大小。单一职责原则定义如下:单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。 单一职责原则告诉我们:一个类不能太“累”!
2017-11-21 08:54:43
530
原创 com.alibaba.druid
解决ERROR - unregister mbean error javax.management.InstanceNotFoundException: com.alibaba.druid:type=原创 2017年05月22日 16:00:58标签:tomcat /数据库连接池 /Ddruid /unregister mbean2782
2017-11-13 16:41:04
1086
原创 sigar 获取跨平台服务器信息
Sigar是Hyperic-hq产品的基础包,是Hyperic HQ主要的数据收集组件。它用来从许多平台收集系统和处理信息.这些平台包括:Linux, Windows, Solaris, AIX, HP-UX, FreeBSD and Mac OSX.Sigar有C,C#,Java和Perl API,java版的API为sigar.jar sigar.jar的底层是用C语言编写的,它通过本
2017-06-02 11:00:02
1452
转载 ice windows
第一步,基于Windows下的安装,所以下载windows版的Ice,官网最新版本是Ice3.4.2:http://www.zeroc.com/download/Ice/3.4/Ice-3.4.2.msi第二步,安装Ice:常规安装即可,可以选择安装目录,本次安装是在G:\Ice第三步,设置Ice的环境变量:主要有环境变量需要设置:path、classpath、ICE_HOME例如:path:G:
2017-05-17 19:31:42
508
原创 MySql 插入(insert)性能测试
测试环境: 笔记本电脑CPU:I5 系统:MAC OS 10.7内存:8G硬盘:5400转,笔记本硬盘 MySql 版本:Oracle官网下载的mysql-5.5.24-osx10.6-x86_64, 默认安装MySql JDBC驱动版本:mysql-connector-java-5.1.20 MySql建表语句:
2015-11-04 18:46:12
737
原创 mysql profiles 性能查询
通过show variables like xxx 详解mysql运行时参数 1, 查看MySQL服务器配置信息 Java代码 mysql> show variables; 2, 查看MySQL服务器运行的各种状态值 Java代码 mysql> show global status; 3, 慢查询 Ja
2015-07-31 15:01:15
530
原创 ReentrantLock可重入锁的使用场景
摘要从使用场景的角度出发来介绍对ReentrantLock的使用,相对来说容易理解一些。场景1:如果发现该操作已经在执行中则不再执行(有状态执行)a、用在定时任务时,如果任务执行时间可能超过下次计划执行时间,确保该有状态任务只有一个正在执行,忽略重复触发。b、用在界面交互时点击执行较长时间请求操作时,防止多次点击导致后台重复执行(忽略重复触发)。以上两种情况多用
2015-07-27 15:56:04
2263
1
原创 linux 下的sar工具命令小结
我习惯使用的命令是 :sar -r -f /var/log/sa/sa24 sar 既能报告当前数据,也能报告历史数据不带选项执行会以10分钟为间隔报告自午夜起当天的CPU利用率。脚本sal收集了这些历史数据,它是sar软件包的一部分,必须设置为定期从cron里运行sar把自已收集的数据以二进制格式保存在/var/log/sa里使用 sa
2015-07-08 18:09:05
502
原创 linux下查看cpu物理个数和逻辑个数
[plain] view plaincopyhadoop@chw-desktop3:~$ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 15 model : 2 model name : Intel(R) Pentium
2015-07-08 18:00:03
510
原创 影响Linux服务器性能的因素
1. 操作系统级CPU内存磁盘I/O带宽网络I/O带宽2. 程序应用级二、系统性能评估标准影响性能因素影响性能因素评判标准好坏糟糕CPUuser% + sys%user% + sys%= 85%user% + sys% >=90%内存Swap
2015-07-08 17:54:43
1125
原创 linux系统如何查看系统性能
一般我们查看系统性能主要是在以下几个方面1.用户使用CPU情况 展现为 %user2.系统使用CPU情况 展现为 %sys3.wio或iowait 展现为 %iowait 进程由于等待磁盘IO而使CPU处于空闲状态的比率4.CPU的空闲率5.CPU上下文的交换的比率,也有说明为CPU上下文的切换。即内存和寄存器中数据的切换6.nice 这个还不是很明白是啥意思7
2015-07-08 17:51:44
4205
转载 mysql乐观锁总结和实践
特别是对长事务而言,这样的开销往往无法承受。所以与悲观锁相对的,我们有了乐观锁,具体参见下面介绍: 乐观锁介绍:乐观锁( Optimistic Locking ) 相对悲观锁而言,乐观锁假设认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则让返回用户错误的信息,让用户决定如何去做。那么我们如何实现乐观锁呢,一般
2015-06-16 15:20:40
569
原创 mySql数据库 forUpdate 实战总结
悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据)。 使用场景举例:以MySQL InnoDB为例商品goods表
2015-06-16 15:12:44
9263
原创 风险对冲
假如你在10元价位买了一支股票,这个股票未来有可能涨到15元,也有可能跌到7元。你对于收益的期望倒不是太高,更主要的是希望如果股票下跌也不要亏掉30%那么多。你要怎么做才可以降低股票下跌时的风险?一种可能的方案是:你在买入股票的同时买入这支股票的认沽期权——期权是一种在未来可以实施的权利(而非义务),例如这里的认沽期权可能是“在一个月后以9元价格出售该股票”的权利;如果到一个月以后股价低于
2015-05-27 13:37:24
648
原创 Linux操作系统下IPTables配置方法详解
如果你的IPTABLES基础知识还不了解,建议先去看看。们来配置一个filter表的防火墙1、查看本机关于IPTABLES的设置情况[root@tp ~]# iptables -L -nChain INPUT (policy ACCEPT)target prot opt source destinationChain FORWARD (policy ACCEPT)target pro
2015-05-15 22:11:38
496
转载 Cookies,SSL,httpclient的多线程处理,HTTP方法
HttpClient能自动管理cookie,包括允许服务器设置cookie并在需要的时候自动将cookie返回服务器,它也支持手工设置cookie后发送到服务器端。不幸的是,对如何处理cookie,有几个规范互相冲突:Netscape Cookie 草案, RFC2109, RFC2965,而且还有很大数量的软件商的cookie实现不遵循任何规范. 为了处理这种状况,HttpClient提供了策略
2015-05-15 18:06:02
575
原创 java 之 编码实现Filter学习示例
public interface Filter { void doFilter(Request request,Response response,FilterChain chain); } public class HTMLFilter implements Filter { @Override public void doFilter(Reque
2015-04-20 11:46:25
473
转载 数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案
版权声明:本文由本人撰写并发表于2012年9月份的《程序员》杂志,原文题目《一种支持自由规划的Sharding扩容方案——主打无须数据迁移和修改路由代码》,此处作为本系列的第五篇文章进行转载, 本文版权归《程序员》杂志所有,未经许可不得转载!作为一种数据存储层面上的水平伸缩解决方案,数据库Sharding技术由来已久,很多海量数据系统在其发展演进的历程中都曾经历过分库分表的Sh
2015-04-16 14:42:47
1179
Axure7 汉化版
2015-01-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人