自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Wandys的博客

热爱生活,热爱技术。

  • 博客(19)
  • 收藏
  • 关注

原创 分布式事务处理方案示例

问题的起源在电商等业务中,系统一般由多个独立的服务组成,如何解决分布式调用时候数据的一致性? 具体业务场景如下,比如一个业务操作,如果同时调用服务 A、B、C,需要满足要么同时成功;要么同时失败。A、B、C 可能是多个不同部门开发、部署在不同服务器上的远程服务。在分布式系统来说,如果不想牺牲一致性,CAP 理论告诉我们只能放弃可用性,这显然不能接受。为了便于讨论问题,先简单介绍下数据一致性的基础理...

2018-04-25 18:35:02 3583

原创 幂等性

Programming.log - a place to keep my thoughts on programming理解HTTP幂等性基于HTTP协议的Web API是时下最为流行的一种分布式服务提供方式。无论是在大型互联网应用还是企业级架构中,我们都见到了越来越多的SOA或RESTful的Web API。为什么Web API如此流行呢?我认为很大程度上应归功于简单有效的HTTP协议。HTTP...

2018-04-25 18:32:49 187

原创 分布式事务处理分析

1.问题解析    要想做架构,必须识别出问题,即是谁的问题,什么问题。明显的,分布式架构解决的是高并发的问题,高并发下服务高可用和数据一致性问题问题;当规模规模较小时,单库HA即可满足请求,当业务规模持续增加,单库已经无法满足业务需求,业界主流做法,是对业务进行分表、分库,那么原来的有些业务,现在则要在一个事务中,保证两个库同时操作成功或操作不成功(一个库成功,一个库失败,要么重新尝试失败库操作...

2018-04-25 18:29:50 213

原创 Linux命令系列之htpasswd

htpasswd命令是Apache的Web服务器内置工具,用于创建和更新储存用户名、域和用户基本认证的密码文件。语法htpasswd(选项)(参数)选项-c:创建一个加密文件;-n:不更新加密文件,只将加密后的用户名密码显示在屏幕上;-m:默认采用MD5算法对密码进行加密;-d:采用CRYPT算法对密码进行加密;-p:不对密码进行进行加密,即明文密码;-s:采用SHA算法对密码进行加密;...

2018-04-23 17:00:18 1707

原创 分布式事务浅析

前言最近很久没有写博客了,一方面是因为公司事情最近比较忙,另外一方面是因为在进行 CAP 的下一阶段的开发工作,不过目前已经告一段落了。接下来还是开始我们今天的话题,说说分布式事务,或者说是我眼中的分布式事务,因为每个人可能对其的理解都不一样。分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在微服务架构中,几乎可以说是无法避免,本文就分布式事务来简单聊一...

2018-04-20 17:24:48 218

原创 Zookeeper系列之原理及应用

Zookeeper简介Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等等。Zookeeper基本概念zk角色Zookeeper中的角色主要有以下三类,如下表所示:zookeeper角色zk service网络结构Zookeeper的工作集群可以简...

2018-04-20 17:22:58 312

原创 Redis系列之Cluster LRU算法

LRU算法作为内存管理的一种有效算法,其含义是在内存有限的情况下,当内存容量不足时,为了保证程序的运行,这时就不得不淘汰内存中的一些对象,释放这些对象占用的空间,那么选择淘汰哪些对象呢?LRU算法就提供了一种策略,告诉我们选择最近一段时间内,最久未使用的对象将其淘汰,至于为什么要选择最久未使用的,可以想想,最近一段时间内使用的东西,我们是不是可能一会又要用到呢~,而很长一段时间内都没有使用过的东西...

2018-04-20 16:41:51 301

转载 数据结构系列之B树、B+树、B*树

第一节、B树、B+树、B*树1.前言:动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树(Red-Black Tree ),B-tree/B+-tree/ B*-tree (B~Tree)。前三者是典型的二叉查找树结构,其查找的时间复杂度O(log2N)与树的深度相关,那么降低树的深度自然会提高查找...

2018-04-20 15:03:57 284

转载 Java 系列之性能优化建议

1.没有必要时请不用使用静态变量    使用Java的开发者都知道,当某个对象被定义为stataic变量所引用,这个对象所占有的内存将不会被回收。有时,开发者会将经常调用的对象或者变量定义为static,以便提高程序的运行性能。因此,不是常用到的对象或者变量,不要定义为static类型的变量,尤其是静态类对象的定义,一定要仔细考虑是否有必要。例如 public class X{ ...

2018-04-17 16:53:43 169

原创 java 线程状态

一. 线程状态类型1. 新建状态(New):新创建了一个线程对象。2. 就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。3. 运行状态(Running):就绪状态的线程获取了CPU,执行程序代码。4. 阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到...

2018-04-17 16:51:46 129

原创 java JVM栈和堆

JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method)堆区:1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身栈区:1.每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放在堆...

2018-04-17 16:51:09 242

原创 linux系列之nethogs(网络流量监控)

 Nethogs 是一个终端下的网络流量监控工具,它的特别之处在于可以显示每个进程的带宽占用情况,这样可以更直观获取网络使用情况。它支持 IPv4 和 IPv6 协议、支持本地网卡及 PPP 链接。    安装:            centos:yum install nethogs -y    安装包安装:            依赖:yum install libpcap-devel nc...

2018-04-17 10:19:05 1402

原创 Linux系列之iftop(流量访问监控)

Linux中查看网卡流量工具有iptraf、iftop以及nethogs等,iftop可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等。安装:        1、centos:yum install iftop -y        2、安装包安装:                依赖:yum install flex byacc libpcap ncurses ncurse...

2018-04-17 09:59:44 667

原创 Java wait和sleep的异同

首先,要记住这个差别,“sleep是Thread类的方法,wait是Object类中定义的方法”。尽管这两个方法都会影响线程的执行行为,但是本质上是有区别的。Thread.sleep不会导致锁行为的改变,如果当前线程是拥有锁的,那么Thread.sleep不会让线程释放锁。如果能够帮助你记忆的话,可以简单认为和锁相关的方法都定义在Object类中,因此调用Thread.sleep是不会影响锁的相关...

2018-04-17 09:47:48 151

原创 Gradle系列之Zip打包

/** * 执行zip打包操作 */task zip(type: Zip,dependsOn:copyToZip) { from 'build/libs/zip' destinationDir file('build/temp2')}依赖的copyToZip task为复制需要的文件到指定目录,然后执行zip task,生成zip包,可以使用destinationDir来指定生成zip...

2018-04-12 15:35:23 11673

原创 Gradle系列之 复制文件(copy任务)

复制文件你可以使用复制任务( Copy )去复制文件. 复制任务扩展性很强,能够过滤复制文件的内容, 映射文件名.使用复制任务时需要提供想要复制的源文件和一个目标目录,如果你要指定文件被复制时的转换方式,可以使用 复制规则. 复制规则被 CopySpec 接口抽象,复制任务实现了这个接口. 使用 CopySpec.from() 方法指定源文件.使用 CopySpec.into() 方法指定目标目录...

2018-04-12 14:47:08 29689 1

原创 Linux命令系列之-- nohub 和 &

1、nohub用途:不挂断地运行命令。语法:nohup Command [ Arg … ] [ & ]  无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。  如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。  如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不...

2018-04-11 15:50:07 2130

转载 JS判断pc mobile几种方式

方法一:function IsPC(){ var userAgentInfo = navigator.userAgent; var Agents = new Array("Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"); var flag = true;

2018-04-11 15:33:59 1984

原创 HTML5 JS常见问题汇总

1、Form表单中Button按钮,点击刷新整个页面    button,input type=button按钮在IE和w3c,firefox浏览器区别:     a、当在IE浏览器下面时,button标签按钮,input标签type属性为button的按钮是一样的功能,不会对表单进行任何操作。     b、但是在W3C浏览器,如Firefox下就需要注意了,button标签按钮会提交表单,而in...

2018-04-08 13:33:25 278

空空如也

空空如也

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

TA关注的人

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