01 2014 档案
使用Spring AMQP开发消费者应用
摘要:前一篇中我们介绍了使用RabbitMQ Java Client访问RabbitMQ的方法。但是使用这种方式访问RabbitMQ,开发者在程序中需要自己管理Connection,Channel对象,Consumer对象的创建,销毁,这样会非常不方便。我们下面介绍使用spring AMQP连接Rabbi 阅读全文
posted @ 2014-01-14 10:09 duanxz 阅读(6335) 评论(1) 推荐(0) 编辑
RestTemplate源码浅析
摘要:近几年来,以信息为中心的表述性状态转移(Representational State Transfer,REST)已经称为替代传统SOAP Web 服务的流行方案。 REST与RPC几乎没有任何关系。RPC是面向服务的,并关注于行为和动作;而REST是面向资源的,强调描述应用程序的事物和名词。 Re 阅读全文
posted @ 2014-01-13 10:32 duanxz 阅读(1690) 评论(0) 推荐(0) 编辑
Spring Boot整合Rabbitmq
摘要:Spring Boot应用中整合RabbitMQ,并实现一个简单的发送、接收消息的例子来对RabbitMQ有一个直观的感受和理解。 在Spring Boot中整合RabbitMQ是一件非常容易的事,因为之前我们已经介绍过Starter POMs,其中的AMQP模块就可以很好的支持RabbitMQ,下 阅读全文
posted @ 2014-01-11 14:07 duanxz 阅读(977) 评论(0) 推荐(0) 编辑
RestTemplate实践(及遇到的问题)
摘要:在微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使用HTTP客户端。我们可以使用JDK原生的URLConnection、Apache的Http Client、Netty的异步HTTP Client, Spring的RestTemplate。但是,用起来最方便、最优雅的还是要 阅读全文
posted @ 2014-01-11 13:57 duanxz 阅读(77713) 评论(5) 推荐(4) 编辑
binlog之三:binlog开启、查看
摘要:0.开启二进制日志记录功能: #vim /etc/my.cnf [mysqld] log_bin=mysql-bin binlog_format=MIXED 或在服务启动时指定 #mysqld_safe --log_bin=mysql-bin --binlog_format='MIXED' --us 阅读全文
posted @ 2014-01-11 13:06 duanxz 阅读(1115) 评论(0) 推荐(0) 编辑
微服务架构的六种模式
摘要:1.微服务架构模式方案 用Scale Cube方法设计应用架构,将应用服务按功能拆分成一组相互协作的服务。每个服务负责一组特定、相关的功能。每个服务可以有自己独立的数据库,从而保证与其他服务解耦。 1.1 聚合器微服务设计模式 聚合器调用多个服务实现应用程序所需的功能。它可以是一个简单的Web页面, 阅读全文
posted @ 2014-01-11 12:47 duanxz 阅读(12078) 评论(0) 推荐(1) 编辑
SpringBoot自动化配置之四:@Conditional注解详解
摘要:前言 之前在分析spring boot 源码时导出可见@ConditionalOnBean 之类的注解,那么它到底是如何使用的以及其工作流程如何,我们这里就围绕以下几点来分析: 一、@Conditional系列与Condition的关系 @ConditionalXxx是注解,XxxCondition 阅读全文
posted @ 2014-01-11 10:55 duanxz 阅读(2668) 评论(0) 推荐(0) 编辑
微服务理论之一:应用架构演进史
摘要:单一应用架构: 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。 此时,用于简化增删改查工作量的 数据访问框架(ORM) 是关键。 垂直应用架构: 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。 此时,用于加速前端页面 阅读全文
posted @ 2014-01-11 10:48 duanxz 阅读(4314) 评论(0) 推荐(0) 编辑
mina写入数据的过程
摘要:mina架构图 写数据、读数据触发点: 写数据: 1、写操作很简单,是调用session的write方法,进行写数据的,写数据的最终结果保存在一个缓存队列里面,等待发送,并把当前session放入flushSession队列里面。 2、发数据其实和读数据是差不多的,都在Processor中的触发的, 阅读全文
posted @ 2014-01-09 20:25 duanxz 阅读(1036) 评论(0) 推荐(0) 编辑
Android px、dp、sp之间相互转换
摘要:dp(dip): device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。dp也就是dip,这个和sp基本类似。如果设置表示长度、高度等属性时可以使用dp 或sp。但如 阅读全文
posted @ 2014-01-09 17:04 duanxz 阅读(11405) 评论(0) 推荐(0) 编辑
Dubbo架构设计详解
摘要:Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider 阅读全文
posted @ 2014-01-07 18:56 duanxz 阅读(1552) 评论(2) 推荐(0) 编辑
分布式锁实现:数据库、redis、zookeeper、memcache
摘要:们知道分布式锁的特性是排他、避免死锁、高可用。分布式锁的实现可以通过数据库的乐观锁(通过版本号)或者悲观锁(通过for update)、Redis的setnx()命令、Zookeeper(在某个持久节点添加临时有序节点,判断当前节点是否是序列中最小的节点,如果不是则监听比当前节点还要小的节点。如果是 阅读全文
posted @ 2014-01-07 18:51 duanxz 阅读(1109) 评论(0) 推荐(0) 编辑
Mysql 日志文件类型
摘要:简介: Mysql 中提供了多种类型的日志文件,分别反映 Mysql 的不同信息,了解它们很有必要。 1、Error log ( 错误日志 ) 错误日志记录了 Mysql Server 运行过程中所有较为严重的警告和错误信息,以及 Mysql Server 每次启动和关闭的详细信息。 在默认情况下, 阅读全文
posted @ 2014-01-07 18:39 duanxz 阅读(376) 评论(0) 推荐(0) 编辑
lsof命令
摘要:lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符, 阅读全文
posted @ 2014-01-07 14:05 duanxz 阅读(520) 评论(0) 推荐(0) 编辑
JAVA深复制(深克隆)与浅复制(浅克隆)
摘要:一、为什么需要克隆 二、克隆的实现方式 2.1、浅度克隆(浅复制) 2.2、深度克隆(深复制) 2.3、使用对象序列化和反序列化实现深度克隆 2.4、常见框架中的几种克隆 2.4.1、常见框架中的克隆介绍 2.4.2、常见框架中的克隆的性能对比 三、Java的clone()方法的实现要点 一、为什么 阅读全文
posted @ 2014-01-07 10:33 duanxz 阅读(1105) 评论(0) 推荐(0) 编辑
fork/join使用示例
摘要:fork/join框架是用多线程的方式实现分治法来解决问题。fork指的是将问题不断地缩小规模,join是指根据子问题的计算结果,得出更高层次的结果。 fork/join框架的使用有一定的约束条件: 1. 除了fork() 和 join()方法外,线程不得使用其他的同步工具。线程最好也不要sleep 阅读全文
posted @ 2014-01-07 10:31 duanxz 阅读(1921) 评论(0) 推荐(0) 编辑
ES之五:关于Elasticsearch查找相关的问题汇总(match、match_phrase、query_string和term)
摘要:由上图看出, QueryBuilder 是整个查询操作的核心,决定了查询什么样的数据和期望得到什么结果这些核心的问题。 QueryBuilder 只是一个接口,需要具体的实体类才可以。那么如何创建 QueryBuilder 的实例呢?有两种方式 通过 QueryBuilder 实现类的构造函数 使用 阅读全文
posted @ 2014-01-07 10:30 duanxz 阅读(7837) 评论(1) 推荐(0) 编辑
HBase之八--(1):HBase二级索引的设计(案例讲解)
摘要:摘要 最近做的一个项目涉及到了多条件的组合查询,数据存储用的是HBase,恰恰HBase对于这种场景的查询特别不给力,一般HBase的查询都是通过RowKey(要把多条件组合查询的字段都拼接在RowKey中显然不太可能),或者全表扫描再结合过滤器筛选出目标数据(太低效),所以通过设计HBase的二级 阅读全文
posted @ 2014-01-07 10:28 duanxz 阅读(956) 评论(0) 推荐(0) 编辑
模板方法模式
摘要:基本概念 1.模板方法模式的概念模板方法模式,定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。 什么是模板方法(Template method):父类定义了骨架(调用哪些方法及顺序),某些特定方法由子类实现。 最大的好处: 阅读全文
posted @ 2014-01-07 10:02 duanxz 阅读(824) 评论(0) 推荐(0) 编辑
Springboot Actuator之二:actuator在监控和管理指标的特性
摘要:《Springboot Actuator之二:actuator在监控和管理指标的特性》 《服务注册发现consul之二:在Spring Cloud中使用Consul实现服务的注册和发现》 《Consul之:服务健康监测》 前言 接着上一篇《Springboot Actuator之一:执行器Actua 阅读全文
posted @ 2014-01-07 10:00 duanxz 阅读(2963) 评论(0) 推荐(0) 编辑
【Android】以SimpleAdapter做适配器的ListView和GridView
摘要:SimpleAdapter介绍SimpleAdapter是一个简单的适配器,可以将静态数据映射到XML文件中定义好的视图。构造函数[java]view plaincopypublicSimpleAdapter(Contextcontext,List>data,intresource,String[]from,int[]to)参数 context SimpleAdapter关联的View的运行环境 data 一个Map组成的List。在列表中的每个条目对应列表中的一行,每一个map中应该包含所有在from参数中指定的键 resource 一个定义列表项的布局文件的资源ID。布局文... 阅读全文
posted @ 2014-01-07 09:58 duanxz 阅读(1454) 评论(0) 推荐(0) 编辑
spring中JavaConfig相关的注解
摘要:在spring3.0中增加配置spring beans的新方式JavaConfig,可以替换spring的applicataion.xml配置。也即@Configuration对等<beans/>,@Bean对等<bean/>,关于@Configuration见《spring4.0之二:@Confi 阅读全文
posted @ 2014-01-07 09:42 duanxz 阅读(667) 评论(0) 推荐(0) 编辑
mysql show processlist命令 详解
摘要:SHOW PROCESSLIST显示哪些线程正在运行。您也可以使用mysqladmin processlist语句得到此信息。如果您有SUPER权限,您可以看到所有线程。否则,您只能看到您自己的线程(也就是,与您正在使用的MySQL账户相关的线程)。请参见13.5.5.3节,“KILL语法”。如果您 阅读全文
posted @ 2014-01-07 09:41 duanxz 阅读(2802) 评论(0) 推荐(0) 编辑
JVM 性能调优实战之:使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码
摘要:本文是《JVM 性能调优实战之:一次系统性能瓶颈的寻找过程》 的后续篇,该篇介绍了如何使用 JDK 自身提供的工具进行 JVM 调优将 TPS 由 2.5 提升到 20 (提升了 7 倍),并准确定位系统瓶颈:我们应用里静态对象不是太多、有大量的业务线程在频繁创建一些生命周期很长的临时对象,代码里有 阅读全文
posted @ 2014-01-07 09:35 duanxz 阅读(702) 评论(0) 推荐(0) 编辑
JVM 性能调优实战之:一次系统性能瓶颈的寻找过程
摘要:玩过性能优化的朋友都清楚,性能优化的关键并不在于怎么进行优化,而在于怎么找到当前系统的性能瓶颈。性能优化分为好几个层次,比如系统层次、算法层次、代码层次…JVM 的性能优化被认为是底层优化,门槛较高,精通这种技能的人比较少。笔者呆过几家技术力量不算弱的公司,每个公司内部真正能够进行 JVM 性能调优 阅读全文
posted @ 2014-01-06 23:28 duanxz 阅读(2659) 评论(0) 推荐(1) 编辑
MongoDB之一介绍(MongoDB与MySQL的区别、BSON与JSON的区别)
摘要:MySQL与MongoDB的操作对比,以及区别 MySQL与MongoDB都是开源的常用数据库,但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL的数据库。它们各有各的优点,关键是看用在什么地方。所以我们所熟知的那些SQL(全称Structure 阅读全文
posted @ 2014-01-06 17:20 duanxz 阅读(1532) 评论(0) 推荐(0) 编辑
spring之:XmlWebApplicationContext作为Spring Web应用的IoC容器,实例化和加载Bean的过程
摘要:它既是 DispatcherServlet 的 (WebApplicationContext)默认策略,又是 ContextLoaderListener 创建 root WebApplicationContext(根容器,同时也是 DispatcherServlet 的 WebApplication 阅读全文
posted @ 2014-01-06 16:20 duanxz 阅读(2510) 评论(0) 推荐(0) 编辑
SpringBoot自动化配置之四:SpringBoot 之Starter(自动配置)、Command-line runners
摘要:Spring Boot Starter是在SpringBoot组件中被提出来的一种概念,stackoverflow上面已经有人概括了这个starter是什么东西,想看完整的回答戳这里 Starter POMs are a set of convenient dependency descriptor 阅读全文
posted @ 2014-01-06 14:46 duanxz 阅读(4563) 评论(0) 推荐(0) 编辑
分析诊断工具之一:MYSQL性能查看(多指标)
摘要:网上有很多的文章教怎么配置MySQL服务器,但考虑到服务器硬件配置的不同,具体应用的差别,那些文章的做法只能作为初步设置参考,我们需要根据自己的情况进行配置优化,好的做法是MySQL服务器稳定运行了一段时间后运行,根据服务器的”状态”进行优化。 1、查看MySQL启动时间以及运行了多长时间 1.1, 阅读全文
posted @ 2014-01-06 13:08 duanxz 阅读(3353) 评论(0) 推荐(0) 编辑
Condition-线程通信更高效的方式
摘要:Lock可以更好的解决线程同步问题,使之更面向对象,并且ReadWriteLock在处理同步时更强大,那么同样,线程间仅仅互斥是不够的,还需要通信,本篇的内容是基于上篇之上,使用Lock如何处理线程通信。 那么引入本篇的主角,Condition,Condition 将 Object 监视器方法(wa 阅读全文
posted @ 2014-01-06 11:06 duanxz 阅读(1345) 评论(0) 推荐(0) 编辑
微服务监控之一:Metrics让微服务运行更透明
摘要:摘要 让微服务运行状态清晰可见。 嘉宾演讲视频回顾及PPT:http://t.cn/R8b6i85 Metrics是什么 直译是“度量”,不同的领域定义有所区别,在微服务领域中的定义: “对微服务的某个指标给予一个可量化程度的测量” Metrics应该具备的特性: Comparative(可对比): 阅读全文
posted @ 2014-01-06 10:52 duanxz 阅读(2241) 评论(0) 推荐(0) 编辑
游戏后台服务技术选型
摘要:一、游戏服务器 1.1、网游服务器的三种模型 之前的网游服务器都是分区分服,玩家都被划分在不同的服务器上,每台服务器运行的逻辑相同,玩家不能在不同服务器之间交互。想要更多的玩家在同一世界,保持玩家的活跃度,于是就有了世界服模型了。世界服类型也有以下3种演化: 一类型(三层架构) 网关部分分离成单端的 阅读全文
posted @ 2014-01-06 10:44 duanxz 阅读(1710) 评论(0) 推荐(0) 编辑
TCP之四:TCP 滑动窗口协议 详解
摘要:滑动窗口机制 滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口。发送窗口和接收窗口的序号的上下界不一定要一样,甚至大小也可以不同。不同的滑动窗口协议窗口大小一般不同。发送方窗口内的序列号代表 阅读全文
posted @ 2014-01-06 10:42 duanxz 阅读(5440) 评论(0) 推荐(0) 编辑
常用hash算法及评测[转]
摘要:RS hash 算法 unsigned int RSHash(char* str, unsigned int len) { unsigned int b = 378551; unsigned int a = 63689; unsigned int hash = 0; unsigned int i = 阅读全文
posted @ 2014-01-06 10:37 duanxz 阅读(1042) 评论(0) 推荐(0) 编辑
几种经典的hash算法
摘要:计算理论中,没有Hash函数的说法,只有单向函数的说法。所谓的单向函数,是一个复杂的定义,大家可以去看计算理论或者密码学方面的数据。用“人 类”的语言描述单向函数就是:如果某个函数在给定输入的时候,很容易计算出其结果来;而当给定结果的时候,很难计算出输入来,这就是单项函数。各种加密函 数都可以被认为 阅读全文
posted @ 2014-01-05 23:03 duanxz 阅读(2228) 评论(0) 推荐(0) 编辑
MySQL定时器Events
摘要:一、背景 我们MySQL的表A的数据量已经达到1.6亿,由于一些历史原因,需要把表A的数据转移到一个新表B,但是因为这是线上产品,所以宕机时间需要尽量的短,在不影响数据持续入库的情况下,我希望能通过作业(定时器Events)的形式慢慢搬迁这些数据。 在MySQL作业的执行过程中有一个问题是让人比较郁 阅读全文
posted @ 2014-01-05 23:02 duanxz 阅读(427) 评论(0) 推荐(0) 编辑
线上问题分析
摘要:《Springboot Actuator之二:actuator在监控和管理指标的特性》 arthas的监控: 垃圾回收:垃圾回收次数gc.ps_scavenge.count、垃圾回收消耗时间gc.ps_scavenge.time、标记-清除算法的次数gc.ps_marksweep.count、标记- 阅读全文
posted @ 2014-01-05 22:50 duanxz 阅读(1745) 评论(0) 推荐(0) 编辑
zk 06之:ZooKeeper命令、命令行工具及简单操作
摘要:常用命令ZooKeeper 支持某些特定的四字命令字母与其的交互。它们大多是查询命令,用来获取 ZooKeeper 服务的当前状态及相关信息。用户在客户端可以通过 telnet 或 nc 向 ZooKeeper 提交相应的命令。 ZooKeeper 常用四字命令见下表 1 所示: 表 1 : Zoo 阅读全文
posted @ 2014-01-05 22:45 duanxz 阅读(1185) 评论(0) 推荐(0) 编辑
ES之六、Elasticsearch DSL
摘要:REST API用途 elasticsearch支持多种通讯,其中包括http请求响应服务,因此通过curl命令,可以发送http请求,并得到json返回内容。 ES提供了很多全面的API,常用的REST请求大致可以分成如下几种: 1 检查集群、节点、索引的健康情况 2 管理集群、节点,索引数据、元 阅读全文
posted @ 2014-01-05 22:34 duanxz 阅读(4156) 评论(0) 推荐(0) 编辑
统计 MySQL 数据库中各个指标
该文被密码保护。
posted @ 2014-01-05 22:26 duanxz 阅读(45) 评论(0) 推荐(0) 编辑
使用YCSB测试mongodb
摘要:项目里面需要对mongodb的性能进行测试,看了下网上很多做法都是使用YCSB进行测试,因此开始学习使用YCSB。 参考资料: YCSB github地址:https://github.com/brianfrankcooper/YCSB wiki: https://github.com/brianf 阅读全文
posted @ 2014-01-05 22:17 duanxz 阅读(2165) 评论(0) 推荐(0) 编辑
Mongodb3.0 新增用户身份验证db.createUser()
摘要:定义:创建一个数据库新用户用db.createUser()方法,如果用户存在则返回一个用户重复错误。语法:db.createUser(user, writeConcern) user这个文档创建关于用户的身份认证和访问信息; writeConcern这个文档描述保证MongoDB提供写操作的成功报告 阅读全文
posted @ 2014-01-04 16:27 duanxz 阅读(1703) 评论(0) 推荐(0) 编辑
MongoDB 4.X搭建
摘要:一、MongoDB4.X搭建 1、下载mongdb安装包,在官网上找到对应的版本,我的是centos7 找到上面的连接,通过命令行: 2、将下载的mongodb-linux-x86_64-4.0.0.tgz 上传到要安装的机器 3、解压mongodb-linux-x86_64-4.0.0.tgz 文 阅读全文
posted @ 2014-01-03 21:19 duanxz 阅读(2944) 评论(0) 推荐(0) 编辑
Springboot Actuator之一:执行器Actuator入门介绍
摘要:介绍 Spring Boot有四大神器,分别是auto-configuration、starters、cli、actuator,本文主要讲actuator。actuator是spring boot提供的对应用系统的自省和监控的集成功能,可以对应用系统进行配置查看、相关功能统计等。 如何使用 在pom 阅读全文
posted @ 2014-01-03 09:46 duanxz 阅读(14563) 评论(0) 推荐(1) 编辑
使用JMH做Java微基准测试
摘要:一、什么是 JMH 二、为什么要使用 JMH 三、JMH基本参数概念 一、什么是 JMH JMH 是 Java Microbenchmark Harness 的缩写。中文意思大致是 “JAVA 微基准测试套件”。官网:http://openjdk.java.net/projects/code-too 阅读全文
posted @ 2014-01-02 16:26 duanxz 阅读(1718) 评论(0) 推荐(0) 编辑
秒杀系统解决方案
摘要:我看了二十篇左右的秒杀系统设计及解决方案的文章,从架构、产品、前端、后端四个层面分别总结了一些解决方案。 要点总结: 1.架构:扩容,业务分离,数据分离 2.产品:下单按钮控制,秒杀答题削峰,简化页面设计 3.前端:限流(反作弊) 静态化 4.后端:内存 队列 一、秒杀一般会带来2个问题: 1、高并 阅读全文
posted @ 2014-01-02 10:45 duanxz 阅读(1654) 评论(0) 推荐(0) 编辑
cookie机制和session机制
摘要:一、cookie机制和session机制的区别 1.1、Cookie的机制--客户端保持状态的方案 Cookie是浏览器(User Agent)访问一些网站后,这些网站存放在客户端的一组数据,用于使网站等跟踪用户,实现用户自定义功能。 Cookie的Domain和Path属性标识了这个Cookie是 阅读全文
posted @ 2014-01-02 10:44 duanxz 阅读(1617) 评论(0) 推荐(0) 编辑
app如何节省流量
摘要:前言:“客户端上传时间戳”的玩法,你玩过么?一起聊聊时间戳的奇技淫巧! 缘起:无线时代,流量敏感。APP在登录后,往往要向服务器同步非常多的数据,很费流量,技术上有没有节省流量的方法呢?这是本文要讨论的问题。 问题一:APP登录时需要拉取什么数据? 答:APP登陆时,一般要拉取两类数据,一类是“id 阅读全文
posted @ 2014-01-02 10:40 duanxz 阅读(1009) 评论(0) 推荐(0) 编辑


点击右上角即可分享
微信分享提示