GC之九--gc调优
摘要:目标 满足应用的响应时间和吞吐量需求,尽量减少GC对应用的影响 原则 大部分时候都不需要调优GC,只需配置-Xms,-Xmx即可,JVM会自动进行调整 先满足响应时间需求,再满足吞吐量需求 FullGC对应用的影响更大,要尽量减少FullGC执行的时间和频率,减少转移到Old的对象数量 监控GC状态
阅读全文
posted @
2016-02-29 23:26
duanxz
阅读(1013)
推荐(0) 编辑
SpringMVC之八:基于SpringMVC拦截器和注解实现controller中访问权限控制,及异步模式
摘要:一、SpringMVC定义interceptor方式 在SpringMVC 中定义一个Interceptor是比较非常简单,主要有两种方式: 第一种:实现HandlerInterceptor 接口,或者是继承实现了HandlerInterceptor 接口的类,例如HandlerIntercepto
阅读全文
posted @
2016-02-29 23:20
duanxz
阅读(7099)
推荐(1) 编辑
CAP原则(CAP定理)、BASE理论
摘要:一、CAP原则 CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。 CAP原则是NOSQL数据库的基石。 分布式系统的CAP理论:理论首先把分布式系统中的三
阅读全文
posted @
2016-02-29 23:17
duanxz
阅读(116562)
推荐(28) 编辑
Thread之七:Object里的wait、notify、notifyAll的使用方法
摘要:wait()、notify()、notifyAll()是三个定义在Object类里的方法,可以用来控制线程的状态 这三个方法最终调用的都是jvm级的final native方法。随着jvm运行平台的不同可能有些许差异。 如果对象调用了wait方法就会使持有该对象的线程把该对象的控制权交出去,然后处于
阅读全文
posted @
2016-02-29 15:21
duanxz
阅读(4577)
推荐(0) 编辑
Thread之六:线程创建方法
摘要:1.继承Thread类,重写该类的run()方法。 2.实现Runnable接口,并重写该接口的run()方法,该run()方法同样是线程执行体,创建Runnable实现类的实例,并以此实例作为Thread类的target来创建Thread对象,该Thread对象才是真正的线程对象。 3.使用Cal
阅读全文
posted @
2016-02-29 11:26
duanxz
阅读(744)
推荐(0) 编辑
MySQL优化技巧之四(数据库设计中的一些技巧)
摘要:1. 原始单据与实体之间的关系 可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。这里的实体可以理解为基本表。明确这种对应关系后,对我们设计录
阅读全文
posted @
2016-02-29 09:18
duanxz
阅读(587)
推荐(0) 编辑
数据库设计三大范式
摘要:为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。 一、基础概念 要理解范式,首先必须对知道什么是关系数据库,如果你不知道,我可以简单的不能再简单的说一下:关
阅读全文
posted @
2016-02-29 09:08
duanxz
阅读(5699)
推荐(2) 编辑
分布式事务之:TCC (Try-Confirm-Cancel) 模式
摘要:在当前如火如荼的互联网浪潮下,如何应对海量数据、高并发成为大家面临的普遍难题。广大IT公司从以往的集中式网站架构,纷纷转向分布式的网站架构,随之而来的就是进行数据库拆分和应用拆分,如何在跨数据库、跨应用保证数据操作和业务操作的一致性、原子性,又成为需要解决的新的问题。从分布式事务的需求来源来看:1、
阅读全文
posted @
2016-02-29 09:04
duanxz
阅读(7326)
推荐(0) 编辑
spring AOP 之五:Spring MVC通过AOP切面编程来拦截controller
摘要:示例1:通过包路径及类名规则为应用增加切面 该示例是通过拦截所有com.dxz.web.aop包下的以Controller结尾的所有类的所有方法,在方法执行前后打印和记录日志到数据库。 新建一个springboot项目 1:首先定义maven 2:在拦截controller之前需要自定义一个注解,该
阅读全文
posted @
2016-02-29 08:52
duanxz
阅读(7491)
推荐(0) 编辑
Thread之五:线程的优先级
摘要:Java线程可以有优先级的设定,高优先级的线程比低优先级的线程有更高的几率得到执行(不完全正确,请参考下面的“线程优先级的问题“)。 优先级的取值 Java线程的优先级是一个整数,其取值范围是1 (Thread.MIN_PRIORITY ) - 10 (Thread.MAX_PRIORITY )。
阅读全文
posted @
2016-02-28 23:48
duanxz
阅读(40503)
推荐(1) 编辑
分布式事务之:TCC几个框架的测试情况记录
摘要:国内主要的开源TCC分布式事务框架包括 TCC 实现框架的压力测试记录见《TCC 几个框架的测试情况记录》
阅读全文
posted @
2016-02-28 23:08
duanxz
阅读(1182)
推荐(0) 编辑
spring AOP 之四:@AspectJ切入点标识符语法详解
摘要:@AspectJ相关文章 《spring AOP 之二:@AspectJ注解的3种配置》 《spring AOP 之三:使用@AspectJ定义切入点》 《spring AOP 之四:@AspectJ切入点标识符语法详解》 Spring AOP支持的AspectJ切入点指示符(用来指示切入点表达式目
阅读全文
posted @
2016-02-25 17:08
duanxz
阅读(3761)
推荐(0) 编辑
IP地址漂移的实现与原理
摘要:当前备份软件比较流行,其中用到的关键技术是IP 地址漂移, 实际上IP地址漂移技术是利用共享的“虚拟”IP地址,当本地进行节点切换与路由切换,使另一端的发送和收方端没有感觉到本地节点地址有变化,保证了通信的连续性,起到断点保护的功效。 举例说明:假设最简单的主从方式、单网卡的情况下,双机系统要占用3
阅读全文
posted @
2016-02-25 16:14
duanxz
阅读(5555)
推荐(1) 编辑
高可用集群heartbeat全攻略
摘要:heartbeat的概念 Linux-HA的全称是High-Availability Linux,它是一个开源项目,这个开源项目的目标是:通过社区开发者的共同努力,提供一个增强linux可靠性(reliability)、可用性(availability)和可服务性(serviceability)(R
阅读全文
posted @
2016-02-25 13:55
duanxz
阅读(1801)
推荐(0) 编辑
http请求的referer属性
摘要:HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。比如从我主页上链接到一个朋友那里,他的服务器就能够从HTTP Referer中统计出每天有多少用户点击我主页上的链接
阅读全文
posted @
2016-02-25 10:21
duanxz
阅读(1276)
推荐(0) 编辑
HTTP协议详解
摘要:引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generati
阅读全文
posted @
2016-02-25 10:17
duanxz
阅读(425)
推荐(0) 编辑
NoSQL分类及ehcache memcache redis 三大缓存的对比
摘要:NoSQL分类 由于NoSQL中没有像传统数据库那样定义数据的组织方式为关系型的,所以只要内部的数据组织采用了非关系型的方式,就可以称之为NoSQL数据库。目前,可以将众多的NoSQL数据库按照内部的数据组织形式进行如下分类: Key/Value的NoSQL数据库 面向文档的NoSQL数据库 面向列
阅读全文
posted @
2016-02-24 21:44
duanxz
阅读(2298)
推荐(1) 编辑
高可用Redis:Redis Cluster
摘要:Redis Cluster是Redis官方提供的Redis集群功能 1.为什么要实现Redis Cluster 1.主从复制不能实现高可用 2.随着公司发展,用户数量增多,并发越来越多,业务需要更高的QPS,而主从复制中单机的QPS可能无法满足业务需求 3.数据量的考虑,现有服务器内存不能满足业务数
阅读全文
posted @
2016-02-24 13:34
duanxz
阅读(1683)
推荐(1) 编辑
Maven如何手动添加依赖的jar文件到本地Maven仓库
摘要:大家肯定遇到过想在pom文件中加入自己开发的依赖包,这些包肯定是不是在Maven仓库(http://repo1.maven.org/maven2/)的。那我们怎么将那些不存在Maven仓库中的包加入到本地的Maven库中呢?很简单。这里以IKAnalyzer.jar包为例进行讲解。 第一步:将IKA
阅读全文
posted @
2016-02-23 16:31
duanxz
阅读(30148)
推荐(1) 编辑
Maven详解之仓库------本地仓库、远程仓库
摘要:在Maven中,任何一个依赖、插件或者项目构建的输出,都可以称之为构件。 Maven在某个统一的位置存储所有项目的共享的构件,这个统一的位置,我们就称之为仓库。(仓库就是存放依赖和插件的地方) 任何的构件都有唯一的坐标,Maven根据这个坐标定义了构件在仓库中的唯一存储路径, 解读Maven在仓库中
阅读全文
posted @
2016-02-23 15:55
duanxz
阅读(97054)
推荐(11) 编辑
java问题之2:JVM堆外内存问题排查
摘要:Linux命令类 top netstat dmesg java的常用命令 jps jstack jinfo jmap dump jstat jdb CHLSDB 排查利器 btrace 首当其冲的要说的是btrace。真是生产环境&预发的排查问题大杀器。 简介什么的就不说了。直接上代码干 1、查看当
阅读全文
posted @
2016-02-23 15:27
duanxz
阅读(13924)
推荐(0) 编辑
ES之4:Elasticsearch并发控制及乐观锁实现原理
摘要:普通关系型数据库使用的是(悲观并发控制(PCC)):当我们在修改一个数据前先锁定这一行,然后确保只有读取到数据的这个线程可以修改这一行数据 ES使用的是(乐观并发控制(OCC)) ES不会阻止某一数据的访问,然而,如果基础数据在我们读取和写入的间隔中发生了变化,更新就会失败,这时候就由程序来决定如何
阅读全文
posted @
2016-02-23 10:25
duanxz
阅读(2944)
推荐(0) 编辑
nginx基于TCP的反向代理
摘要:一、4层的负载均衡 Nginx Plus的商业授权版开始具有TCP负载均衡的功能。从Nginx 1.7.7版本开始加入的,现在变成了一个商业收费版本,想要试用,需要在官网申请。也就是说,Nginx除了以前常用的HTTP负载均衡外,Nginx增加基于TCP协议实现的负载均衡方法。 HTTP负载均衡,也
阅读全文
posted @
2016-02-23 09:29
duanxz
阅读(26935)
推荐(0) 编辑
Solr入门和实践以及我对Solr的8点理解
摘要:友情提示Solr的内容还是比较多的,一篇文章只能讲解一部分。全面介绍,没兴趣,没时间,也没能力,回报还不大。本文只写点我认为比较重要的知识点,独特的个人想法。仅供参考哦,更多细节需要自己去琢磨。概述Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了
阅读全文
posted @
2016-02-22 22:14
duanxz
阅读(1765)
推荐(0) 编辑
SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
摘要:Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到tabl
阅读全文
posted @
2016-02-22 22:00
duanxz
阅读(12221)
推荐(1) 编辑
ES之三:ElasticSearch5.x以上的字段类型汇总
摘要:1 核心数据类型 1.1 字符串类型 - string(5.0以后不再支持) (1) 使用示例: PUT website { "mappings": { "blog": { "properties": { "title": {"type": "string"}, // 全文本 "tags": {"t
阅读全文
posted @
2016-02-22 14:19
duanxz
阅读(1380)
推荐(0) 编辑
ES之5:分词器
摘要:一、分词器概念 1、Analysis 和 Analyzer Analysis: 文本分析是把全文本转换一系列单词(term/token)的过程,也叫分词。Analysis是通过Analyzer来实现的。 当一个文档被索引时,每个Field都可能会创建一个倒排索引(Mapping可以设置不索引该Fie
阅读全文
posted @
2016-02-22 14:08
duanxz
阅读(2069)
推荐(0) 编辑
ES之6:restHighLevelClient源码
摘要:本文讨论的是JAVA High Level Rest Client向ElasticSearch6.3.2发送请求(index操作、update、delete……)的一个详细过程的理解,主要涉及到Rest Client如何选择哪一台Elasticsearch服务器发起请求。 maven依赖如下: <d
阅读全文
posted @
2016-02-22 10:19
duanxz
阅读(1483)
推荐(0) 编辑
ActiveMQ的多种部署方式--ActiveMQ学习之二
摘要:单点的ActiveMQ作为企业应用无法满足高可用和集群的需求,所以ActiveMQ提供了master-slave、broker cluster等多种部署方式,但通过分析多种部署方式之后我认为需要将两种部署方式相结合才能满足我们公司分布式和高可用的需求,所以后面就重点将解如何将两种部署方式相结合。 主
阅读全文
posted @
2016-02-18 13:11
duanxz
阅读(1516)
推荐(0) 编辑
SpringMVC中注解控制器及数据绑定
摘要:一、Spring2.5之前,我们都是通过实现Controller接口或其他实现来定义我们的处理器类。二、Spring2.5引入注解式处理器支持,通过@Controller 和 @RequestMapping注解定义我们的处理器类。并且提供了一组强大的注解:需要通过处理器映射DefaultAnnota
阅读全文
posted @
2016-02-17 17:29
duanxz
阅读(2176)
推荐(0) 编辑
微服务跨语言调用
摘要:微服务架构已成为目前互联网架构的趋势,关于微服务的讨论,几乎占据了各种技术大会的绝大多数版面。国内使用最多的服务治理框架非阿里开源的 dubbo 莫属,千米网也选择了 dubbo 作为微服务治理框架。另一方面,和大多数互联网公司一样,千米的开发语言是多样的,大多数后端业务由 java 支撑,而每个业
阅读全文
posted @
2016-02-17 15:16
duanxz
阅读(3699)
推荐(0) 编辑
spring AOP 之三:使用@AspectJ定义切入点
摘要:@AspectJ相关文章 《spring AOP 之二:@AspectJ注解的3种配置》 《spring AOP 之三:使用@AspectJ定义切入点》 《spring AOP 之四:@AspectJ切入点标识符语法详解》 使用注解来创建切面是AspectJ 5所引入的关键特性。AspectJ 5之
阅读全文
posted @
2016-02-17 14:44
duanxz
阅读(1708)
推荐(0) 编辑
spring AOP 之二:@AspectJ注解的3种配置
摘要:@AspectJ相关文章 《spring AOP 之二:@AspectJ注解的3种配置》 《spring AOP 之三:使用@AspectJ定义切入点》 《spring AOP 之四:@AspectJ切入点标识符语法详解》 与 AspectJ 相同的是,Spring AOP 同样需要对目标类进行增强
阅读全文
posted @
2016-02-17 11:33
duanxz
阅读(18972)
推荐(2) 编辑
AspectJ入门
摘要:AOP的实现方式有两种: AOP框架在编译阶段,就对目标类进行修改,得到的class文件已经是被修改过的。生成静态的AOP代理类(生成*.class文件已经被改掉了,需要使用特定的编译器)。以AspectJ为代表 —— 静态AOP框架。 AOP框架在运行阶段,动态生成AOP代理(在内存中动态地生成A
阅读全文
posted @
2016-02-17 10:30
duanxz
阅读(10541)
推荐(2) 编辑
利用nginx_push_stream_module实现服务器消息推送
摘要:NGiNX_HTTP_Push_Module 是一个 Nginx 的扩展模块,它实现了 HTTP Push 和Comet server的功能。HTTP Push 被经常用在网页上主动推的技术,例如一些聊天室啊,更新信息非常频繁的应用场合。 Http Server Push是一种推送技术,服务器主动向
阅读全文
posted @
2016-02-17 10:11
duanxz
阅读(5065)
推荐(0) 编辑
消息推送技术
摘要:一、背景 消息推送是针对 Web 应用开发领域的技术,指服务端以主动方式将信息送达客户端。主要用于提升用户体验,避免用户刷新页面从服务端拉取数据。例如 Web 邮件中自动出现刚收到的邮件项,Web 即时通讯自动提示新到消息等应用场景。 1.1、多客户端支持 在实际应用场景中,客户端可能是浏览器或者
阅读全文
posted @
2016-02-17 10:01
duanxz
阅读(2227)
推荐(0) 编辑
MQ、JMS以及ActiveMQ
摘要:MQ简介: MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远
阅读全文
posted @
2016-02-16 16:45
duanxz
阅读(686)
推荐(0) 编辑
ActiveMQ入门之四--ActiveMQ持久化方式
摘要:消息持久性对于可靠消息传递来说应该是一种比较好的方法,有了消息持久化,即使发送者和接受者不是同时在线或者消息中心在发送者发送消息后宕机了,在消息中心重新启动后仍然可以将消息发送出去,如果把这种持久化和ReliableMessaging结合起来应该是很好的保证了消息的可靠传送。 消息持久性的原理很简单
阅读全文
posted @
2016-02-16 15:56
duanxz
阅读(3439)
推荐(0) 编辑