- 博客(102)
- 资源 (279)
- 问答 (4)
- 收藏
- 关注
转载 微服务架构优缺点
微服务架构优缺点之前转载过一篇对 Martin Fowler 大师写的微服务架构的说明文章:《微服务(Microservices)》。今天再转载一篇对于这个架构的优缺点进行总结的文章。转载自:《微服务,让开发过程更简单还是更复杂?》、《有关微服务架构的争论:更简单还是更复杂?》。 随着DevOps、持续交付等理念的深入人心,微服务架构开始走进我们的
2017-12-30 16:06:56 3107
转载 如何在数据库事务提交成功后进行异步操作
问题业务场景业务需求上经常会有一些边缘操作,比如主流程操作A:用户报名课程操作入库,边缘操作B:发送邮件或短信通知。业务要求操作A操作数据库失败后,事务回滚,那么操作B不能执行。操作A执行成功后,操作B也必须执行成功如何实现普通的执行A,之后执行B,是可以满足要求1,对于要求2通常需要设计补偿的操作一般边缘的操作,通常会设置成为异步的,以
2017-12-28 16:25:19 2420
转载 查询每门课程成绩都大于80分学生的姓名
转载的sql语句.1 查询每门课程成绩都大于80分学生的学号数据库 表 studentname score courseA 85 语文A 75 数学A 82 英语B 75 语文B 89 数学B 79 英语天使美眉90 语文天使美眉100 数学天使美眉100 英语请找出每门课程都超过80分的那个人名字的SQL语句
2017-12-27 03:56:26 79421 4
原创 事务里面http调用如何处理
一个java程序使用spring开启了事务之后,http服务不稳定try{...........http调用............}catch(Exception e){e.print();}处理办法:1、 熔断处理啊2、 对请求设置请求超时时间 超过这个时间3、 就over 或者尝试重试(幂等性)幂等性处理办法:1、业务请求一进来记录到表然后
2017-12-26 19:28:34 5686
转载 Java HashMap的死循环
在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历过,本来觉得没什么好写的,因为Java的HashMap是非线程安全的,所以在并发下必然出现问题。但是,我发现近几年,很多人都经历过这个事(在网上查“HashMap Infinite Loo
2017-12-25 11:38:51 168
转载 Cassandra Shell命令
除了CQL命令,Cassandra还提供了记录的shell命令。下面给出了Cassandra记录的shell命令。HelpHELP命令显示所有cqlsh命令的摘要和简要描述。下面给出了help命令的用法。cqlsh> helpDocumented shell commands:===========================CAPTURE COPY DESCR
2017-12-23 22:09:18 1309
转载 数据模型深入解释
本文是 Apache Cassandra3.X 系列的第二篇文章,主要向读者介绍 Cassandra 数据模型,包括与关系型数据库之间的模型差别、Cassandra 自身的数据模型特性介绍及实验案例、源代码等,也会介绍 Cassandra 数据库的相关参数详细含义及注意事项。数据模型介绍初步介绍前面一篇文章我粗略地介绍了 Cassandra 的设计特点及基本特性,这篇文章我
2017-12-23 18:04:27 2530
转载 Cassandra的数据模型的理解
Cassandra属于NoSQL数据库,NoSQL和传统关系型数据库不同,NOSQL偏好数据冗余,因为NoSQL一般无法做表关联查询。(1) keySpace基本上可以将Keyspace 理解成MySQL 之中的Database. 只不过Cassandra的”database” 包含了更多的内容:Replication Factor : 复制因数。 表示
2017-12-23 17:57:13 477
转载 cassandra column family table
Whether you use the keyword TABLE or COLUMNFAMILY, both are the same (synonyms). I guess the keyword TABLE was introduced with CQL3. So you can use either one in your statements.Second questio
2017-12-23 17:21:47 1052
转载 Cassandra数据模型
1. 概述Cassandra是一套开源分布式NoSQL数据库系统,设计思想采用了google的BigTable的数据模型和Amazon的Dynamo的完全分布式架构,因而它具有很好的扩展性且不存在单点故障。本文假设读者已经具有了SQL数据库的基本知识,为了帮助读者更容易的理解Cassandra的数据模型,本文结合SQL数据库的概念,采用类比的方法介绍Cassandra的数据
2017-12-23 17:03:16 615
转载 大话CASSANDRA数据模型
大话CASSANDRA数据模型Cassandra是一个开源的分布式数据库,结合了Dynamo的Key/Value与Bigtable的面向列的特点。Cassandra的特点如下:1.灵活的schema:不需要象数据库一样预先设计schema,增加或者删除字段非常方便(on the fly)。2.支持range查询:可以对Key进行范围查询。3.高可用,可扩展:单点故障不影
2017-12-23 15:34:37 182
转载 Cassandra创建键空间(Keyspace)
Cassandra查询语言(CQL)可帮助开发人员与Cassandra沟通交互。 Cassandra查询语言的语法与SQL非常相似。什么是键空间(Keyspace)?键空间(Keyspace)是用于保存列族,用户定义类型的对象。 键空间(Keyspace)就像RDBMS中的数据库,其中包含列族,索引,用户定义类型,数据中心意识,键空间(Keyspace)中使用的策略,复制因子等。在
2017-12-23 13:22:01 7825
原创 一致性hash算法 宕机
1、节点宕机问题如果某个节点宕机的话,会顺延到下一个节点,如果数据量很大的话,下一个节点也会宕机掉,这个时候就是为每一个节点增加一个备机来解决2、散落不均衡可以通过虚拟节点来解决散落不均匀的问题
2017-12-23 00:41:48 1097
转载 MySQL的InnoDB的幻读问题
MySQL InnoDB事务的隔离级别有四级,默认是“可重复读”(REPEATABLE READ)。未提交读(READ UNCOMMITTED)。另一个事务修改了数据,但尚未提交,而本事务中的SELECT会读到这些未被提交的数据(脏读)。提交读(READ COMMITTED)。本事务读取到的是最新的数据(其他事务提交后的)。问题是,在同一个事务里,前后两次相同的SELECT会读到不同的结果
2017-12-22 16:49:20 624
转载 mysql里 filesort排序详解
在explain我们所使用的sql的时候,经常会遇到using filesort这种情况,原以为是由于有相同列值的原因引起,结果昨天看到公司的一个sql,跟同事讨论了下加上自己又做了一些测试,突然发现自己原来的想法是错误的。首先,只有在order by 数据列的时候才可能会出现using filesort,而且如果你不对进行order by的这一列设置索引的话,无论列值是否有相同的都会出现us
2017-12-22 15:54:20 5358 3
转载 mysql file sort
在MySQL中的ORDER BY有两种排序实现方式:1、利用有序索引获取有序数据2、文件排序在使用explain分析查询的时候,利用有序索引获取有序数据显示Using index。而文件排序显示Using filesort。1.利用有序索引获取有序数据 取出满足过滤条件作为排序条件的字段,以及可以直接定位到行数据的行指针信息,在 S
2017-12-22 14:10:08 147
转载 为什么最难不过二叉树的算法出现在面试题中都会被应聘者抱怨?
因为他们觉得反正招进来之后我也用不上二叉树,你们谁写业务代码的时候用上二叉树了?所以我不会就不会呗。这其实就是“高等数学有啥用,又不能用来买菜”的进化版本。的确很少有写业务代码的时候会直接用上二叉树。但是真的没有吗?XML/DOM是什么?是不是一棵树?为什么DOM可以和XML一一对应?因为XML序列化就是树的遍历的结果。能和XML对应,也就能跟JSON对应,因为两者
2017-12-21 23:12:05 2615
转载 面试前需考虑的25个问题
我曾经在The Simple Dollar上提到自己过去曾组织了大量面试工作。虽然我招聘的通常是技术类职位,但实际问到的问题(因此是有实际价值的)都是无关技术的。一个好的面试问题能使应聘者的本性显露出来——诚实,可信,反应敏锐等等。长期以来,我收集了一些自己在面试中总会用到的问题,这里整理出25个最有价值的,附带一两个把每个问题回答好的技巧或怎么会把它弄糟的案例。希望这个总结能为面试官和应
2017-12-21 22:48:27 296
转载 项目经理面试中可能遇到的问题(持续更新)
1.范围、时间,成本,这三项中哪些是可以由客户控制的? 范围、时间、成本,是项目管理中常说的三角关系。任何一方改变都可能牵扯到其他两方的变动。项目管理的本质,就是在保证质量的前提下,寻求这三者之间的最佳平衡。因为客户是需求方和投资方,客户有权对这三者进行控制,当然客户主要控制范围,即提出他们的需求——项目要实现的功能特性,其次,客户也非常关心能交付的时间和所付出的成本。在满足客户的需
2017-12-21 22:46:39 7052 1
转载 聊聊JVM(一)相对全面的GC总结
最近时间比较紧张,要写的东西也有很多,只能想到一点写一点。关于GC,网上的资料太多,之前对一个系统调优的时候又回顾了一下,找了几篇广泛流传的资料,大部分都是大同小异,这里总个总结,希望能够做个相对的全集,并写出一些新的点,比如Card Marking(卡片标记)等。首先是大家都要提到的GC的基础算法:标记清除,标记整理,复制,分代。这些算法的第一步都是做的一件事: 标记(Mar
2017-12-21 19:28:48 285
转载 Disruptor 介绍
并发的复杂性: 在计算机科学中,并发的意思是两个或两个以上的任务同时并行的执行,但是也要通过争抢来接入资源。争抢的资源可能是数据库、文件系统、套接字、甚至或者说内存中的一块区域。 并发的执行代码包括两个方面:互斥性和改变的可见性。互斥性是指线程对资源进行争用状态的改变的管理(这里的争用状态主要是指写的操作要保持互斥性),而改变可见性是指控制何时这种改变对其他线程可见。很
2017-12-21 19:09:12 1570
转载 MySQL中B+Tree索引原理
B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B+树之前必须先了解二叉查找树、平衡二叉树(AVLTree)和平衡多路查找树(B-Tree),B+树即由这些树逐步优化而来。二叉查找树二叉树具有以下性质:左子树的键值小于根的键值,右子树
2017-12-21 18:09:48 160
转载 B+Tree index structures in InnoDB
In On learning InnoDB: A journey to the core, I introduced the innodb_diagrams project to document the InnoDB internals, which provides the diagrams used in this post. Later on in A quick introd
2017-12-21 18:02:02 592
转载 【连载】关系型数据库是如何工作的?(5) - B+Tree索引
虽然上一章节介绍的二叉搜索树在查询指定值时表现很好,但是当查询两个值之间的多个节点时,就会遇到很大的问题。因为需要遍历整个树的节点,并检查每个节点是否在指定的区间内。而且遍历整颗树是随机磁盘IO(译者注:随机IO会导致频繁的磁头换道,所以相比顺序IO来说非常耗时),所以我们需要找到一种更有效做范围查询的方法。为了解决这个难题,现代数据库修正了之前介绍的二叉搜索树,我们称修正后的数据结构为B+Tre
2017-12-21 17:57:02 171
转载 “惊群”,看看nginx是怎么解决它的
在说nginx前,先来看看什么是“惊群”?简单说来,多线程/多进程(linux下线程进程也没多大区别)等待同一个socket事件,当这个事件发生时,这些线程/进程被同时唤醒,就是惊群。可以想见,效率很低下,许多进程被内核重新调度唤醒,同时去响应这一个事件,当然只有一个进程能处理事件成功,其他的进程在处理该事件失败后重新休眠(也有其他选择)。这种性能浪费现象就是惊群。惊群通常发生
2017-12-21 17:16:17 326
转载 Disruptor-无锁编程-核心原理剖析- Volatile的普遍误解
提到Disruptor,首先映入大家脑海的词就是“无锁“,“快“,本文将试图从底层核心原理上来剖析Disruptor为什么可以“完全无锁“,为什么可以如此快?关于Disruptor的背景介绍,本文就不多费口舌了。直接引用网上一段常见的描述:Martin Fowler在自己网站上写了一篇LMAX架构的文章,在文章中他介绍了LMAX是一种新型零售金融交易平台,它能够以很低的延迟产生大量交易
2017-12-21 15:10:57 494
转载 Disruptor原理剖析
Disruptor是LMAX公司开源的一个高效的内存无锁队列。这两天看了一下相关的设计文档和博客,下面尝试进行一下总结。第一部分。引子谈到并发程序设计,有几个概念是避免不了的。1.锁:锁是用来做并发最简单的方式,当然其代价也是最高的。内核态的锁的时候需要操作系统进行一次上下文切换,等待锁的线程会被挂起直至锁释放。在上下文切换的时候,cpu之前缓存的指令和数据都将失效,对
2017-12-21 14:58:07 1087
转载 为啥要用位运算代替取模呢
在hash中查找key的时候,经常会发现用&取代%,先看两段代码吧, JDK6中的HashMap中的indexFor方法:Java代码 /** * Returns index for hash code h. */ static int indexFor(int h, int length) { return h &
2017-12-21 13:42:40 6415
转载 Redis3.0的主从、集群高可用
1. 安装Redis3.0yum -y install cpp binutils glibc glibc-kernheaders glibc-common glibc-devel gcc make gcc-c++ libstdc++-devel tcl mkdir -p /usr/local/src/rediscd /usr/local/src/redisw
2017-12-20 19:02:13 363
转载 redis集群原理
redis是单线程,但是一般的作为缓存使用的话,redis足够了,因为它的读写速度太快了。 官方的一个简单测试: 测试完成了50个并发执行100000个请求。 设置和获取的值是一个256字节字符串。 结果:读的速度是110000次/s,写的速度是81000次/s 在这么快的读写速度下,对于一般程序来说足够用了,
2017-12-20 16:53:14 275
转载 iostat
[root@controller ~]#iostat -d -x -k 1 10Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %utilsda 0.00 22.00 0.00 18.00
2017-12-20 13:35:23 253
转载 java+内存分配及变量存储位置的区别
Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详细介绍一下Java在内存分配方面的知识。一般Java在内存分配时会涉及到以下区域: ◆寄存器:我们在程序中无法控制 ◆栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中(new 出来的对象)
2017-12-19 19:32:30 510
转载 String常量池问题的几个例子
String常量池问题的几个例子示例1:Java代码 String s0="kvill"; String s1="kvill"; String s2="kv" + "ill"; System.out.println( s0==s1 ); System.out.println( s0==s2 ); 结果为: tru
2017-12-19 19:31:36 333
转载 AOP原理
静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。动态代理:在程序运行时,运用反射机制动态创建而成。静态代理: 由程序员创建或工具生成代理类的源码,再编译代理类,即代理类和委托类的关系再程序运行前就已经存在。动态代理JDK的动态代理: 就是在程序运行的过程中,根据被代理的接口来动
2017-12-19 14:35:42 209
转载 Hessian、webservice、RESTFUL各自特点
Hessian.一、简介 Hessian是由caucho提供的一个基于binary-RPC实现的远程通讯library。 1、是基于什么协议实现的? 基于Binary-RPC协议实现。 2、怎么发起请求? 需通过Hessian本身提供的API来发起请求。 3、怎么将请求转化为符
2017-12-19 14:09:55 487
转载 Leader Election 选举算法
今天讲一讲分布式系统中必不可少的选举算法。leader 就是一堆服务器中的协调者,某一个时刻只能有一个leader且所有服务器都承认这个leader. leader election就是在一组进程中,选举一个leader且让该组的进程都同意这个leader.假设有N个process, 每个process都有个可以比较的ID,可以提出选举。leader election算法要满足两点
2017-12-18 23:48:26 2150 3
转载 mvcc innodb
MVCC具体的操作如下:SELECT:InnoDB会根据以下两个条件检查每行记录:1)InnoDB只查找版本早于当前事务版本的数据行(也就是,行的系统版本号小于或等于事务的系统版本号),这样可以确保事务读取的行,只么是在事务开始前已经存在的,要么是事务自身插入或者修改过的。2)行的删除版本要么未定义,要么大于当前事务版本号。这可以确保事务读取到的行,在事务开始之前未被删除。
2017-12-18 23:45:54 217
转载 HBase (2)---数据存储结构
在本文中的HBase术语:基于列:column-oriented行:row列组:column families列:column单元:cell 理解HBase(一个开源的Google的BigTable实际应用)最大的困难是HBase的数据结构概念究竟是什么?首先HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库.另一个不同的是HBase基于列
2017-12-18 19:37:56 745
转载 Web 消息推送及 WebSocket 简介
Web 的交互过程Web 应用典型的信息交互过程通常是:客户端通过浏览器发出一个请求,服务端接收请求后进行处理并返回结果给客户端,然后客户端浏览器将信息呈现出来。这种机制对于信息交互不是特别频繁的应用尚能相安无事,但是对于那些实时要求比较高的应用来说(比如在线游戏),当客户端浏览器准备呈现获取到的信息的时候,这些信息在服务器端可能已经过时,所以,保持客户端和服务器端的信息同步是实时
2017-12-18 17:34:41 694
转载 每天进步一点点——Linux中的文件描述符与打开文件之间的关系
转载请说明出处:http://blog.csdn.net/cywosp/article/details/389652391. 概述 在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件、目录文件、链接文件和设备文件。文件描述符(file descriptor)是内核为了高效管理已被打开的文件所创建的索引,其是一个非负整数(通常是小整数),用于指代被打开的
2017-12-18 16:22:01 277
mariadb-5.5.34-winx64.zip
2018-05-12
canal.deployer-1.0.25.tar.gz
2018-05-12
mariadb-10.3.6-winx64.zip
2018-05-09
canal--mysql数据库binlog的增量订阅&消费组件
2018-05-08
redis2.8 windows 64
2018-04-16
DevCenter--Cassandra
2018-01-17
指令集时钟周期
2017-12-21
rabbitmq-server-windows-3.6.12.zip
2017-10-30
R-3.4.1(R语言sdk)
2017-08-23
RStudio-1.0.153
2017-08-23
LuaForWindows
2017-06-21
SwitchHosts
2017-02-22
erlang19安装包
2016-12-02
alibaba-otter
2016-09-30
erlang 18-release
2015-11-19
haproxy-1.5.12
2015-08-29
redis-2.4.5-win32-win64.zip
2014-11-25
mariadb-10.0.7-winx64.zip
2018-05-09
弱弱问下,静态AOP到底指什么?
2015-05-08
spring quartz定时器任务时间超过定时器时间间隔,任务中断
2015-05-06
定时器退款的极端情况,该如何解决
2015-05-06
Dubbo 好处,优点是什么?
2015-04-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人