- 博客(70)
- 资源 (15)
- 收藏
- 关注
原创 docker-compose搭建mongodb分片集群及安全身份认证(实战)
最近由于项目中设计中有使用mongodb,具体mongodb的优点我就不多说。这篇文章主要是分享下我通过docker-compose搭建mongodb分片集群,并实现安全身份认证访问(mongodb安装后默认是不需要用户名和密码访问的)。下面是我配置的docker-compose.yml文件:version: '2'services: shard_server01: ...
2019-12-25 20:06:17
3868
5
原创 多线程处理任务案例(同步锁+StopWatch+CountDownLatch)
今天抽空写了一个通过spring线程池来实现多线程处理任务的性能问题。这个代码相对简单,文字描述相对较少。大家有疑问可以回复。1、任务线程代码package com.yufeicms.test;import java.util.concurrent.CountDownLatch;public class MyThread implements Runnable{ private...
2018-04-10 18:01:44
1782
原创 通过CountDownLatch模拟高并发下测试各种单例模式的执行结果
单例模式一般写法有多种,那么哪种相对来说效果比较好。下面一起看看我的测试结果吧。 我是通过CountDownLatch来模拟刚并发下,各种单例模式的执行结果。自己做加深影响所写,所以写的比较粗糙,希望大家不要介意。先上代码吧,后面做结果说明1、最基础的单例package singleton;/** * 最简单的单例 */public class MySingleto...
2018-03-06 15:41:07
3822
2
原创 dubbo负载均衡算法源码解析
在集群负载均衡时,Dubbo提供了4种均衡策略,如:Random LoadBalance(随机均衡算法)、;RoundRobin LoadBalance(权重轮循均衡算法)、LeastAction LoadBalance(最少活跃调用数均衡算法)、ConsistentHash LoadBalance(一致性Hash均衡算法)。缺省时为Random随机调用。具体UML类图如下:1、Ran
2017-12-14 10:46:50
1053
原创 spring4.0.2+mybatis3.2.4+sharding-jdbc1.4.2实现分库分表、读写分离及事物支持
当当sharding-jdbc的使用公司挺多的,今天就整理下sharding-jdbc最新的配置及使用,包含实现分库分表、主从及事物支持范围。1、pom文件引用 UTF-8 4.0.2.RELEASE 3.2.4 1.4.2 com.dangdang sharding-jdbc-core ${sharding-jdbc.version}
2017-12-01 11:49:31
629
原创 linux常用命令command not found的解决方案(自己整理)
1、ifconfig command not found 是因为没有安装此命令包,安装方法: yum install net-tools2、sz和rz文件上传命令command not found 执行:wget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz 若 提示 wget
2017-11-25 17:11:47
24201
1
原创 Hbase1.2.0以后 JavaAPI最新接口调用方法
package cn.gaiay.hbase;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.*;import org.apache.hadoop.hbase.client.*;import org.apache.hadoop.hbase.util.Bytes;import java
2017-11-20 18:11:07
5188
原创 java AtomicInteger、AtomicLong原理分析及测试实例
AtomicInteger、AtomicLong可以理解为乐观锁,它们认为变量值是不会改变,等去设置值的时候去确认。这种方式适用于该变量值很少更改的情况下,否则性能适得其反。 CAS(乐观锁算法)的基本假设前提 CAS比较与交换的伪代码可以表示为: do{
2017-05-17 20:15:38
1147
原创 利用jdk1.8写个模板方法模式的例子
jdk1.8的新特性之一是接口可以写默认实现方法。正好可以用在模板方法模式之上,之前一直使用抽象类来实现的。(该特性不仅限使用模板方法模式)。1、car的类package com.zc.jdk8;/** * Created by Administrator on 2017/5/17. */public interface Car { /** * Java 8允
2017-05-17 11:46:35
823
原创 利用jdk1.8的新特性实现模板方法模式
jdk1.8的新特性中有一个是接口可以编写默认方法。这样写模板方法模式就很好的被利用到(不仅限模板方法使用)。1、模板类package com.zc.jdk8;/** * Created by Administrator on 2017/5/17. */public interface Car { /** * Java 8允许我们给接口添加一个非抽象的方法实现
2017-05-17 11:32:44
1372
原创 Java 关键字volatile 与 synchronized 作用与区别
1、volatile 它所修饰的变量不保留拷贝,直接访问主内存中的。 在Java内存模型中,有main memory,每个线程也有自己的memory (例如寄存器)。为了性能,一个线程会在自己的memory中保持要访问的变量的副本。这样就会出现同一个变 量在某个瞬间,在一个线程的memory中的值可能与另外一个线程memory中的值,或者main memory中的值不一致的情况。
2017-05-07 21:52:41
458
转载 分布式MySQL集群方案,看看京东是怎么做的
背景数据库作为一个非常基础的系统,任何一家互联网公司都会使用,数据库产品也很多,有Oracle、SQL Server 、MySQL、PostgeSQL、MariaDB等,像SQLServer/Oracle 这类数据库在初期可以帮业务搞定很多棘手的事情,我们可以花更多的精力在业务本身的发展上,但众所周知也得交不少钱。涉及到钱的事情在公司发展壮大以后总是会回来重新审视这个事情的,在京东
2017-05-07 19:26:14
3019
原创 RocketMQ使用P2P(点对点)消息传送模式,生产端生产一个消息,消费端消费几乎同时收到两个相同消息
我们系统架构使用微服务,分布式消息通过RocketMQ。今天遇到一个奇怪的问题:RocketMQ使用P2P(点对点)消息传送模式,生产端生产一个消息,消费端消费几乎同时收到两个相同消息。在这里记录下,希望能帮助遇到此问题同样着急的朋友们。 问题的原因: RocketMQ的消费端的一个微服务,启动两个进程。我们的微服务使用的com.alib
2017-05-04 13:13:41
3961
原创 新建虚拟机安装linux系统(CentOS7)
1、点击左上角“”文件”,选择“新建虚拟机” 2、选择“典型(推荐)”3、选择您的linux系统镜像文件iso的物理路径,我的是在“D:\VMware\操作系统\CentOS-7-x86_64-Minimal-1611.iso”,具体系统镜像文件下载这里不再4、虚拟机名称自己可以随便起个,位置可以根据自己情况选择,最好是默认。5、最大磁盘大小可根据
2017-05-01 18:51:38
456
原创 使用 Spring Data JPA 简化 JPA 开发
从一个简单的 JPA 示例开始本文主要讲述 Spring Data JPA,但是为了不至于给 JPA 和 Spring 的初学者造成较大的学习曲线,我们首先从 JPA 开始,简单介绍一个 JPA 示例;接着重构该示例,并引入 Spring 框架,这两部分不会涉及过多的篇幅,如果希望能够深入学习 Spring 和 JPA,可以根据本文最后提供的参考资料进一步学习。自 JPA 伴随 Java...
2017-02-07 14:13:00
155
原创 SSH高性能并发的注意事项(个人总结)
1、 应该尽量减小service事务代码块的大小,在事务中对记录进行修改时,会对相应表加锁,如:A事务对table1 和table2表的记录进行修改,那么B事务再对table1 和table2表的记录进行修改时会等A事务commit以后才能获得table1和table2的锁,这样事务太长并发量大的时候系统就会变慢2、 事务里对表的更新操作应该按一定顺序,如果顺序不同则可能会出现数据库表...
2015-09-23 10:23:20
250
原创 (四)避免对象的内存泄露
内存对象的泄漏,会导致一些不再使用的对象无法及时释放,这样一方面占用了宝贵的内存空间,很容易导致后续需要分配内存的时候,空闲空间不足而出现OOM。显然,这还使得每级Generation的内存区域可用空间变小,GC就会更容易被触发,容易出现内存抖动,从而引起性能问题(如图15所示)。 图15最新的LeakCanary开源控件,可以很好的帮助我们发现内存泄露的情况,更多关于LeakCa...
2015-09-22 17:47:31
287
原创 (三)如何避免OOM总结
前面介绍了一些基础的内存管理机制以及OOM的基础知识,那么在实践操作当中,有哪些指导性的规则可以参考呢?归纳下来,可以从四个方面着手,首先是减小对象的内存占用,其次是内存对象的重复利用,然后是避免对象的内存泄露,最后是内存使用策略优化。减小对象的内存占用避免OOM的第一步就是要尽量减少新分配出来的对象占用内存的大小,尽量使用更加轻量的对象。1)使用更加轻量的数据结构例如,我们可...
2015-09-22 17:46:40
587
原创 (二)OOM(Out Of Memory)
前面我们提到过使用getMemoryClass()的方法可以得到Dalvik Heap的阈值。简要地获取某个应用的内存占用情况可以参考下面的示例(更多内存查看的知识,可以参考Google官方教程: Investigating Your RAM Usage)1)查看内存使用情况通过命令行查看内存详细占用情况,如图3所示。 图3 命令行查看内存详细占用情况通过Android ...
2015-09-22 17:46:09
257
原创 (一)Android的内存管理机制
Google在Android的官网上有这样一篇文章,初步介绍了Android是如何管理应用的进程与内存分配:http://developer.android.com/training/articles/memory.html。 Android系统的Dalvik虚拟机扮演了常规的内存垃圾自动回收的角色,Android系统没有为内存提供交换区,它使用 paging与 memory-mappi...
2015-09-22 17:45:42
157
原创 java webservice 用户验证 (服务端 + 客户端)
说明:在网上找了一堆 handler验证的东东,试验了一下,没成功。现在换了一种方式:在 tomcat的配置文件中添加用户角色和用户信息 然后在 webservice的项目配置文件中增加对应的角色。从而达到 用户验证的目的。开发环境: MyEclipse 10, Tomcat 7参考:http://www.fengfly.com/plus/view-21...
2015-09-22 16:53:26
1389
原创 MySql+Memcached架构的问题
1. MySql+Memcached架构的问题 Memcached采用客户端-服务器的架构,客户端和服务器端的通讯使用自定义的协议标准,只要满足协议格式要求,客户端Library可以用任何语言实现。Memcached服务器使用基于Slab的内存管理方式,有利于减少内存碎片和频繁分配销毁内存所带来的开销。各个Slab按需动态分配一个page的内存(和4Kpage的概念不同,这里...
2015-09-09 11:56:20
179
原创 java web开发 高并发处理
java处理高并发高负载类网站中数据库的设计方法(java教程,java处理大量数据,java高负载数据) 一:高并发高负载类网站关注点之数据库 没错,首先是数据库,这是大多数应用所面临的首个SPOF。尤其是Web2.0的应用,数据库的响应是首先要解决的。一般来说MySQL是最常用的,可能最初是一个mysql主机,当数据增加到100万以上,那么,MySQL的效能急剧下降。常用的优化措施是M-S(主...
2015-09-09 11:13:03
98
原创 assert断言的陷阱
assert关键字用法简单,但是使用assert往往会让你陷入越来越深的陷阱中。应避免使用。笔者经过研究,总结了以下原因: 1、assert关键字需要在运行时候显式开启才能生效,否则你的断言就没有任何意义。而现在主流的Java IDE工具默认都没有开启-ea断言检查功能。这就意味着你如果使用IDE工具编码,调试运行时候会有一定的麻烦。并且,对于Java Web应用,程序代码都是部署在容器...
2015-09-09 09:56:25
312
原创 spring beans源码解读
spring Ioc容器的实现,从根源上是beanfactory,但真正可以作为一个可以独立使用的ioc容器还是DefaultListableBeanFactory,因此可以这么说,DefaultListableBeanFactory 是整个spring ioc的始祖,研究透它的前生今世对我们理解spring ioc的概念有着重要的作用。1. DefaultListableBeanFa...
2015-09-09 09:55:23
116
原创 MongoDB知识整理
阅读目录为什么我们要使用MongoDB?MongoDB要注意的问题MongoDB结构介绍常用命令MongoDB增删改命令索引查询管理参考资料:回到顶部为什么我们要使用MongoDB?特点:高性能、易部署、易使用,存储数据非常方便。主要功能特性有:面向集合存储,易存储对象类型的数据。模式自由。支持动态查询。支...
2015-09-08 09:44:28
141
原创 Nginx常用功能详解
NGiNX 是个非常优秀的HTTP 服务器软件,可以通过设置有实现许多功能,如目录保护、IP访问限制、防盗链、下载限速及设置多域名等等 一、NGINX目录保护及访问限制Nginx保护目录的配置如下,目录密码保护文件是 /usr/local/nginx/htpasswdlocation ~ /admin {#admin为要保护的目录名称,location 的意思就是保护从网页...
2015-09-08 09:08:33
140
原创 搭建Nginx+Java环境
一、简介:Tomcat在高并发环境下处理动态请求时性能很低,而在处理静态页面更加脆弱。虽然Tomcat的最新版本支持epoll,但是通过Nginx来处理静态页面要比通过Tomcat处理在性能方面好很多。二、下载安装:下载nginxhttp://nginx.org/en/download.html下载解压后放到C:\nginx-1.0.4(官网这样要求的,不知道放其它盘有没有问...
2015-09-08 08:58:39
121
原创 Nginx反向代理和负载均衡部署指南
1. 安装1) 从Nginx官网下载页面(http://nginx.org/en/download.html)下载Nginx最新版本(目前是1.5.13版本)安装包;2) 解压后复制到部署目录。 2. 启动和停止NginxNginx目前只支持命令行操作,操作前先进入Dos命令环境,并进入Nginx部署目录。1)...
2015-09-08 08:47:02
111
原创 Nginx负载均衡配置
负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦。 负载均衡 先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。那么负载均衡的前提就是要有多台服务器才能实现,也就是两台以上即可。 测试环境 ...
2015-09-08 08:35:27
107
原创 Mysql主从数据库配置
环境:主服务器:centos 5.2 mysql 5.1.35 源码 IP:192.168.1.22从服务器:centos 5.2 mysql 5.1.35 源码 IP:192.168.1.33配置:一、主服务器1.1、创建一个复制用户,具有replication slave 权限。mysql>grant replication slave on *.* to...
2015-09-07 15:29:48
120
原创 JAVA环境变量配置的作用
环境变量: 一般是指在操作系统中用来指定操作系统运行环境的一些参数,比如临时文件夹位置和系统文件夹位置等。这点有点类似于DOS时期的默认路径,当你运行某些程序时除了在当前文件夹中寻找外,还会到设置的默认路径中去查找。简单地说这里的“Path”就是一个变量,里面存储了一些常用命令所存放的目录路径。为什么jdk要配置环境变量呢?1、配置JAVA_HOME=D:\Program Files\J...
2015-09-07 09:02:04
227
原创 Apache防DDOS模块mod_evasive安装和配置方法详解
一、mod_evasive 介绍mod_evasive 是Apache(httpd)服务器的防DDOS的一个模块。对于WEB服务器来说,是目前比较好的一个防护DDOS攻击的扩展模块。虽然并不能完全防御DDOS攻击,但在一定条件下,还是起到缓服Apache(httpd)服务器的压力。如配合iptables、硬件防火墙等防火墙设备配合使用,可能有更好的效果。mod_evasive 的官方地址: ht...
2015-06-11 16:36:02
1187
原创 实战在Centos5.3下mod_dosevasive对抗DDos攻击
转截请写明出处,谢谢! 最近老同事的电子商务网站经常性的对手ab,无奈我花些时间google,发现有不少朋友用mod_dosevasive来对抗ddos攻击(当然是小范围的,如果没有带宽和硬件的保障效果会更好).居体的安装可以参看 关于Apache (httpd)服务器防DDOS模块mod_evasive的使用说明 上面写的够详细了。下面是我的安装过程...
2015-06-11 16:35:12
133
原创 Linux、Shell常用命令
Shell既是一种命令语言,又是一种程序设计语言。 Linux常用命令:1、进入指定目录命令 cd2、查看当前目录 pwd3、返回上层目录结构 cd ..4、返回主目录 cd ~5、创建目录 mkdir 6、创建文件 touch 7、文件拷贝 cp8、文件移动 mv9、文件删除 rm10、查找文件 fin...
2015-04-15 11:47:09
103
原创 修改 EditText 中的光标位置
Android 的 EditText 控件默认获取焦点的时候, 插入光标是在第一个位置的,如果EditText中设置了文本, 这个时候光标是在文本的最前面, 而不是文本的最后. 为了方便用户使用, 需要把光标移动到文本最后, 但是EditText 没有提供 setCursor 函数. 经查看其文档 发现 setSelection 函数可以完成该功能. 如下: EditText et = ....
2015-03-30 14:09:54
110
原创 单例模式
单例模式写法有很多种,没有十全十美的。只要根据自己的情况定义合适的单例模式即可。下面我把所有单例模式写法汇总一遍:1、最简单的单例,在确定程序没有多线程的情况下可以考虑这样写。既性能高又简单。 package com.zc;/** * * @ClassName: Singleton1 * @Description: TODO(最简单的单例模式) * @author...
2015-03-25 17:01:48
108
原创 正则表达式
元字符描述\将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“\\n”匹配\n。“\n”匹配换行符。序列“\\”匹配“\”而“\(”则匹配“(”。^匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。$...
2015-03-25 13:33:28
100
k8s集群最新搭建文档-亲测试(基于kubeadm方式)
2020-11-12
spring4.0.2+mybatis3.2.4+sharding-jdbc1.4.2实现分库分表、主从及事物支持
2017-12-01
bootstrap3.37稳定版本含(js和css)并带有jquery.min的2.1.1版本
2017-11-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人