自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

admin1973的专栏

不积跬步,无以至千里;不积小流,无以成江海! https://github.com/canglang1973

  • 博客(219)
  • 资源 (27)
  • 收藏
  • 关注

原创 求最大公约数

(1)暴力枚举法暴力枚举法很简单,从较小整数的一班开始,试图找到一个合适的整数i,检查这个整数i是否被a和b同时整除; /** * 暴力枚举法求最大公约数 * * @param a * @param b * @return */ public static int getGreatestCommonDivisor_v1(...

2020-03-15 17:27:36 568

原创 Redis实现分布式锁-源码记录

import org.apache.commons.lang3.StringUtils;import org.apache.commons.lang3.math.NumberUtils;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.springf...

2019-11-04 13:35:59 401

原创 MySQL同一事务中先更新在查询,结果与数据库中不一致问题

MySQL同一事务中先更新在查询,结果与数据库中不一致问题问题背景:java 代码在同一个事务中先执行update 再执行select 发现select 的数据是update之后的结果,此时事务还没有提交,直接查询数据库,数据库的数据还没有发生变更.问题结论:在数据库事务是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行,这是一种机制,用以维护数据库的完整性...

2019-10-18 10:19:46 10796 1

原创 Java常用运算符(&&,&,||,|,>>>等)计算和二进制转换

此处主要是用于记录一下Java常用运算符计算方式,和十进制数与二进制数相互转换的方式,由于这些在日常开发中使用的比较少,时而会忘记,所有记录一下方便以后有迹可循.此处直接上源码,相关说明写在了代码doc注释中:/** * @author leitao. * @category * @time: 2019/9/16 0016-9:44 * @version: 1...

2019-09-16 10:43:35 490

原创 Spring boot2 整合 spring-data-elasticsearch

Spring boot2 整合 spring-data-elasticsearch在spring boot 2整合spring-data-elasticsearch时遇到一些莫名奇怪的问题,但是最终还是成功跨越,遇到的问题都是一些小问题,比如依赖版本不统一等等.此处留下整合示例代码仅供大家参考:https://github.com/canglang1973/spring-data-ela...

2019-07-23 16:53:22 175

原创 Canal增量同步MySQL数到Elasticsearch

Canal增量同步MySQL数到Elasticsearch调研背景由于业务发展迅速,店铺商品分库越来越多(目前已有8个MySQL分库)且分库中表数据行数越来越大,大的表已经达到了5KW+,业务需要对商品模糊查询或根据其他字段查询,这些查询的字段很多在数据库中都没有索引,查询命中数据很慢(有些数据根本就查询不出来)且会给数据库库带来很大的压力.所以目前希望将MySQL中的商品数据实时同步到E...

2019-07-22 09:29:52 787

原创 ETL工具kettle之Java脚本+Elasticsearch bulk insert

ETL工具kettle之Java脚本+Elasticsearch bulk insert

2019-07-16 10:14:01 4751 4

原创 Shardingjdbc2.0.0之分库深度解析

Shardingjdbc2.0.0之分库深度解析代码执行环境Jdk1.8;shardingjdbc 2.0.0;MySQL5.7(应用中配置了2个数据源db1,db2);应用使用表字段shop分库;本文是根据shardingjdbc2.0.0进行解析的,当时shardingjdbc还没有进入Apache,现在进入了Apache孵化,最新的4.0.0的估计很快就会发布,不管从源码还是项目结构上...

2019-06-06 16:09:02 449

原创 ETL工具kettle之循环job

kettle的功能此处就不做过多的介绍了,此处主要是记录一下自己第一次使用kettle工具迁移数据的经历.需求:将两个mysql数据库(DB1,DB2)中的数据拷贝到一个中间库(DB3)中,然后在中间库总进行多张表关联查询出最终的结果并输出到另一张表中.所有数据是以店铺号(shop)和商品编码(productSaleId)作为唯一索引.每次需要处理N个店铺的商品.实现:编写三...

2019-04-11 15:14:33 2576

原创 Sentinel初始化之InitFunc实现类加载

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2019-01-04 14:04:31 3154

原创 用栈实现队列

1.栈的特点:先进后出2.队列的特点:先进先出3.此时我们用两个栈来实现队列,那么我们让其中一个栈作为队列的入口,负责插入新元素,另一个栈作为队列的出口,负责移出老元素.4.队列的主要功能无非就两个:出队/入队;在模拟入操作是,我们把新元素压如栈A中,让元素1入队:让元素2入队:让元素3入队:这时候我们需要让元素1出队,操作如下:让栈A中...

2018-10-22 11:27:53 269

原创 Git将本地项目初始化提交到远程仓库

1.切换到项目文件夹根目录初始化gitgit init2.将所有文件添加到git版本管理缓存中git add .    (注意此处有一个".")3.提交所有文件git commit -m "first commit"4.添加远程仓库地址git remote add origin http://gitlab.winxuan.io/data_development/log_data...

2018-10-09 15:23:02 683

原创 GitHub自己仓库fork的项目与开源项目的代码保持一致

步骤(此处用的是Alibaba/fastjson):1.将开源项目fork到自己账号下的仓库中;2.将自己仓库中fork的项目clone到本地;3.clone需要将远程仓库clone到本地,此处省略安装本地github的过程,随便在哪个目录(项目存放的目录),右键打开一个Git base,执行一下git clone https://github.com/***/***.git4...

2018-06-22 10:19:11 1223 1

原创 java HashSet实现原理

1.    HashSet概述:   HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。2.    HashSet的实现:   对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet 的实现比较简单,相关HashSet...

2018-05-30 08:57:43 5454 1

转载 Java中的线程池种类

1. newSingleThreadExecutor创建方式:ExecutorService pool = Executors.newSingleThreadExecutor();一个单线程的线程池。这个线程池只有一个线程在工作,也就是相当于单线程串行执行所有任务。如果这个唯一的线程因为异常结束,那么会有一个新的线程来替代它。此线程池保证所有任务的执行顺序按照任务的提交顺序执行。使用方式:impo...

2018-05-25 14:40:25 4053 2

原创 IDEA解决不同git分支冲突

背景:项目open-api 有五个分支如下图所示,beta是测试分支(本地不能直接提交到beta),develop是开发分支,master是生产分支,user-api(为开发某个功能从master拉的特性分支),trade-optimize(为开发某个功能从master拉的特性分支), user-api在trade-optimize之后拉取的,拉取user-api时trade-optimize还正...

2018-05-18 10:06:47 4931

原创 IDEA中运行Spring boot web项目无法访问页面

遇到个奇怪的问题:IDEA中运行Spring boot web项目无法访问页面;同样的代码,eclipse能运行也能访问到页面,IDEA能运行能直接访问后端接口但不能访问页面,错误提示如下:Whitelabel Error PageThis application has no explicit mapping for /error, so you are seeing this as a fa...

2018-04-28 13:44:38 31958 10

转载 Java的三种代理模式

代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法.举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星,而是联系明星的经纪人,...

2018-04-27 09:33:04 688 1

原创 Windows杀死端口占用进程

Windows杀死端口占用进程在Windows下启动程序时有时会遇到端口被占用的情况,由于一个端口同时只能运行一个进程,所以要想启动新的程序就要先把占用该端口的进程给kill掉,具体的命令分为以下三步,以杀死占用了80端口的进程为例:1、根据端口号“80”查找进程号netstat -ano|findstr "80"TCP    0.0.0.0:80             0.0.0.0:0   ...

2018-04-10 10:25:54 647

原创 Linux vmstat命令详解

其他介绍见:http://blog.csdn.net/admin1973/article/details/78467731r 表示运行队列(就是说多少个进程真的分配到CPU),我测试的服务器目前CPU比较空闲,没什么程序在跑,当这个值超过了CPU数目,就会出现CPU瓶颈了。这个也和top的负载有关系,一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。top的负载类似...

2018-03-08 16:50:18 242

转载 MySql按周,月,日分组统计数据

select DATE_FORMAT(create_time,'%Y%u') weeks,count(caseid) count from tc_case group by weeks; select DATE_FORMAT(create_time,'%Y%m%d') days,count(caseid) count from tc_case group by days; select D

2018-01-29 11:07:39 1453

原创 zuul简介(一)

zuul简介Zuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。Zuul的内部实现结构图如下: Zuul提供了一个框架,可以对过滤器进行动态的加载,编译,运行。过滤器之间没有直接的相互通信。他们是通过一个RequestContext的静态类来进行数据传递的。

2017-12-07 13:59:14 1002

转载 服务化了,没想到耦合更加严重?

转自:https://mp.weixin.qq.com/s/m5VNvwobA3r40T6EDJISDQ   架构师之路通过“库”来实现业务,可能会引发业务系统之间耦合,需要通用业务服务化,将通用业务下沉,详见《小小的公共库,大大的耦合,你痛过吗》。通过“join”来实现业务,可能会导致数据库之间耦合,需要基础数据服务化,实现数据库私有化,解除数据库之间的耦合,详见

2017-12-07 13:24:36 365

转载 数据库中间件为何不支持join

转自: http://mp.weixin.qq.com/s/q4DmWjhVmMMSzIP3K_n4Hw    架构师之路有网友对《假如让你来设计数据库中间件》一文中,数据库中间件仅仅支持四类SQL存有疑问:partition key普通查询partition key上的IN查询非partition key上的查询有限功能的排序+分页

2017-12-07 13:20:03 456

转载 数据库中间件Atlas调研笔记

转自:https://mp.weixin.qq.com/s/31WOensXaLdaAp9WRMW7PA   架构师之路前篇:《假如让你来设计数据库中间件》《数据库中间件TDDL调研笔记》《数据库中间件cobar调研笔记》《数据库中间件mysql-proxy调研笔记》13年底负责数据库中间件设计时的调研笔记,拿出来和大家分享,轻拍。

2017-12-07 13:14:43 364

转载 小小的公共库,大大的耦合

转自:https://mp.weixin.qq.com/s/mjWCuYYbFs16esvkwZ-LKw 架构师之路什么是耦合?耦合,是架构中,本来不相干的代码、模块、服务、系统因为某些原因联系在一起,各自独立性差,影响则相互影响,变动则相互变动的一种架构状态。 感官上,怎么发现系统中的耦合?作为技术人,每每在心中骂上下游,骂兄弟部门,“这个东西跟我有什

2017-12-07 13:12:13 439 1

转载 小小的IP,大大的耦合

转自:https://mp.weixin.qq.com/s/-kOYRHKPAKwjGS4jhSh-pA     架构师之路什么是耦合?耦合,是架构中,本来不相干的代码、模块、服务、系统因为某些原因联系在一起,各自独立性差,影响则相互影响,变动则相互变动的一种架构状态。感官上,怎么发现系统中的耦合?作为技术人,每每在心中骂上下游,骂兄弟部门,“这

2017-12-07 11:49:21 361

转载 假如让你来设计数据库中间件

转自:https://mp.weixin.qq.com/s/6kuVgdO7RBs9gs229wG3wA     架构师之路13年底负责数据库中间件设计时的设计文档,拿出来和大家分享:可以了解下数据库中间件技术可以了解下架构师系统设计的思路一、总体目标数据库中间层项目背景不再展开,根据前期的调研以及和公司同事的讨论,中间层的核

2017-12-07 11:45:40 316

转载 数据库中间件TDDL调研笔记

转自:https://mp.weixin.qq.com/s/dVGSvUR9UCA-dIYVtr_G_w    架构师之路前篇:《数据库中间件cobar调研笔记》13年底负责数据库中间件设计时的调研笔记,拿出来和大家分享,轻拍。一,TDDL是什么TDDL是Taobao Distribute Data Layer

2017-12-07 11:37:59 1044

转载 数据库中间件cobar调研笔记

转自:https://mp.weixin.qq.com/s/nfTKSTpCvNcvNFAdl2J7mQ    58沈剑 架构师之路13年底负责数据库中间件设计时的调研笔记,拿出来和大家分享,轻拍。文章很长,可提前收藏,转发。一,cobar是什么阿里开源的mysql的中间件服务使用mysql协议对上游,cobar就是传统mys

2017-12-07 11:34:21 387

转载 Guava官方文档-RateLimiter类

原文链接 作者:Dimitris Andreou  译者:魏嘉鹏 校对:方腾飞RateLimiter 从概念上来讲,速率限制器会在可配置的速率下分配许可证。如果必要的话,每个acquire() 会阻塞当前线程直到许可证可用后获取该许可证。一旦获取到许可证,不需要再释放许可证。校对注:RateLimiter使用的是一种叫令牌桶的流控算法,RateLimiter会按照一定的频率往桶里扔

2017-12-04 10:05:17 228

转载 java并发面试题(二)实战

本文列出了在工作中会用到的并发编程的实战问题,大家可以一起交流下,在回复中给出答案。并发容器和框架如何让一段程序并发的执行,并最终汇总结果?如何合理的配置java线程池?如CPU密集型的任务,基本线程池应该配置多大?IO密集型的任务,基本线程池应该配置多大?用有界队列好还是无界队列好?任务非常多的时候,使用什么阻塞队列能获取最好的吞吐量?如何使用阻塞队列实现一个生产者和消费者模型?请写

2017-12-01 15:18:34 279

转载 java并发面试题(一)-基础

本文整理了常见的Java并发面试题,希望对大家面试有所帮助,欢迎大家互相交流。多线程java中有几种方法可以实现一个线程?如何停止一个正在运行的线程?notify()和notifyAll()有什么区别?sleep()和 wait()有什么区别?什么是Daemon线程?它有什么意义?java如何实现多线程之间的通讯和协作?锁什么是可重入锁(ReentrantLock)

2017-12-01 15:16:14 198

原创 Java并发编程

Java并发编程关注并发网:http://ifeve.com

2017-12-01 15:01:25 207

原创 Executors创建线程池的弊端

Executors创建线程池的弊端线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式,这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险.说明:Executors的各个方法的弊端:1)newFixedThreadPool和newSingleThreadExecutor:主要问题是堆积的请求处理队列可能会耗费非常大的

2017-12-01 13:44:42 4942

转载 数据库耦合-解耦

随着业务越来越复杂,数据量越来越大,并发量越来越大,数据库的性能越来越低。好不容易找运维申请了两台机器,让DBA部署了几个实例,想把一些业务库拆分出来,却发现拆不出来,扩不了容,尴尬! 因为数据库强关联在一起,无法通过增加数据库实例扩容,就是一个耦合的典型案例。 场景还原有一个公共用户数据库DB_USER,里面table_user存放了通用的用户数据:

2017-11-29 09:19:46 10242

转载 Linux下的ip命令,ifconfig已经过时了

inux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者。使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务。ifconfig是net-tools中已被废弃使用的一个命令,许多年前就已经没有维护了。iproute2套件里提供了许多增强功能的命令,ip命令即是其中之一。要安装ip,请点击这里下载iproute2套装工具 。不过,大多数Linux发行版

2017-11-24 16:09:15 464

转载 负载均衡原理的解析

开头先理解一下所谓的“均衡”不能狭义地理解为分配给所有实际服务器一样多的工作量,因为多台服务器的承载能力各不相同,这可能体现在硬件配置、网络带宽的差异,也可能因为某台服务器身兼多职,我们所说的“均衡”,也就是希望所有服务器都不要过载,并且能够最大程序地发挥作用。一、http重定向当http代理(比如浏览器)向web服务器请求某个URL后,web服务器可以通过ht

2017-11-24 15:58:05 233

转载 ActiveMQ持久化方式

消息持久性对于可靠消息传递来说应该是一种比较好的方法,有了消息持久化,即使发送者和接受者不是同时在线或者消息中心在发送者发送消息后宕机了,在消息中心重新启动后仍然可以将消息发送出去,如果把这种持久化和ReliableMessaging结合起来应该是很好的保证了消息的可靠传送。消息持久性的原理很简单,就是在发送者将消息发送出去后,消息中心首先将消息存储到本地数据文件、内存数据库或者远程数据库

2017-11-24 09:56:10 352 1

转载 ActiveMQ中Consumer特性详解与优化

前言    从本文中你可以了解到如下内容:    1) consumer端消息消费的模型,session的运作机制    2) 如果提升broker和consumer端消息消费的速率    3) selector,group,exclusive对消息消费的影响    4) 如何让Priority更好的运行,提高消息的顺序性    5) Slow Co

2017-11-23 15:56:40 1471

一个完整的WSDL文档及各标签详解

一个完整的WSDL文档及各标签详解

2017-05-26

Oracle自学笔记

Oracle自学笔记

2017-05-26

Spring_WebService源码

Spring_WebService源码

2017-05-25

java调用webservice wsdl源码

java调用webservice wsdl源码

2017-05-25

设计模式介绍

设计模式介绍

2017-05-24

阿里巴巴Java开发手册

阿里巴巴Java开发手册

2017-05-24

Linux常用命令

Linux常用命令

2017-05-09

Java操作Hadoop Mapreduce基本实践源码

Java操作Hadoop Mapreduce基本实践源码.

2017-03-14

hadoo2.7.3的hadoop.dll和winutils.exe

hadoo2.7.3的hadoop.dll和winutils.exe

2017-03-14

Java访问Hadoop集群源码

Java访问Hadoop集群源码

2017-03-08

java面试笔试题大汇总

java面试笔试题大汇总

2017-03-05

Java基础面试

Java基础面试

2017-03-05

Java实现Redis的消息订阅和发布源码

Java实现Redis的消息订阅和发布源码

2017-03-03

JMS之ActiveMQ与Spring整合源码

cJMS之ActiveMQ与Spring整合源码

2017-03-02

Java开发手册

2017-03-01

Oracle内置SQL函数-分类整理大全

Oracle内置SQL函数-分类整理大全

2017-02-14

Java常用排序算法源码

Java常用排序算法源码 稳定:冒泡排序、插入排序、归并排序和基数排序;不稳定:选择排序、快速排序、希尔排序、堆排序

2016-09-07

Chrome速度的助推器

Chrome速度的助推器,提升网页打开速度50%

2016-08-24

将项目部署到Tomcat根目

Eclipse将项目部署到Tomcat根目

2016-08-23

Axure IOS组件库

iOS8和iPhone6部件库

2016-07-30

Axure Library

直接复制到你的安装目录\Axure RP Pro 7.0\DefaultSettings\Libraries 即可。

2016-07-30

jQuery EasyUI v1.3.5官方API中文版

jQuery EasyUI v1.3.5官方API中文版,有中文版API更有利于开发中查询

2016-04-22

Android面向Holder应用实例源码

Android面向Holder应用实例源码,使代码更解耦,让你的Activity变得更小,学习这种思想更有利于协同开发

2016-04-17

size像素测量工具

特别是在移动应用开发中,为了尽量做得屏幕适配,可以用这个size工具测量测量

2016-04-14

TabHostFrameWork框架实现页面切换

TabHostFrameWork框架,实现页面切换,轻松愉快的切换页面

2016-04-14

android-support-v4-v7-v13-v14-v17兼容包

android-support-v4-v7-v13-v14-v17兼容包相信兼容低版本Android API

2016-04-14

gson-2.3.jar

gson-2.3.jar可以很好的在javaweb和Android上实现json转换

2016-04-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除