花裤衩

。。。。。

一次并发的update引发的血案 ----rocketMQ 多实例消费导致的错误。

事故现场:       系统引入了rocketMQ,用来对某些订单进行状态的更新操作。部署的时候2台消费实例。在测试环境中只考虑了用乐观锁来控制并发,但在生产中,乐观锁并无法保证数据的正确性。   具体的消费情况参考上图。 假定消息A和消息B 都是为了更新表中的同一行数据,更新逻辑是,...

2018-10-07 23:22:03

阅读数 300

评论数 0

java8 内存模型 学习(一)

一、内存模型1、虚拟机栈每个线程都有个私有的栈,随着线程的创建而创建。栈里面存着的是一种叫“栈帧”的东西,每个方法都会创建一个栈帧,栈帧中存放了局部变量(基本数据类型和对象引用)、操作数栈、方法出口等信息。栈的大小可以固定也可以动态扩展。当栈调用深度大于JVM所允许的返回,会抛出stackover...

2018-03-12 22:56:42

阅读数 732

评论数 0

身为程序员,你是怎么跟非程序员解释编程的?

作者:DJ Hitori 链接:https://www.zhihu.com/question/22508677/answer/141334678 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 *已与原作者取得转载授权 普通人: 我今天要买一斤苹果...

2018-01-17 10:35:17

阅读数 573

评论数 0

利用dubbo的Filter记录入参、出参及规范返回参数

需求场景: 基于服务治理的原则,公司重构了很多项目,其中使用了dubbo作为服务框架。作为底层的服务存在,由上层的业务系统进行服务的编排。一是为了系统之间的解耦,同时系统之间也能更好的交互。 其他依赖:springboot,JDK8 目前的需求是,上层业务系统在调用底层的服务的时候,底...

2017-11-30 10:30:33

阅读数 6270

评论数 0

使用多线程进行大文件的处理

场景: 有一批数据由于种种原因需要重新处理。总量大概在180W左右。由于数据库的限制,不太好直接直接查库处理,已经由DBA 直接导出了。全都是流水号。具体实现为拿流水号去接口中查询数据,把符合条件的流水号通过接口同步到其他系统里面。 最开始的做法很简单,通过读取文件流一行一行的获取流水...

2017-11-20 20:43:11

阅读数 829

评论数 0

checkStyle、findbugs、PMD各自特点

这三个工具检查的侧重点各有不同:  工具 目的 主要检查内容 FindBugs 基于Bug Patterns概念,查找java bytecode中的潜在bug。在目前版本中,它不检查java源文件。 ...

2017-10-17 21:42:11

阅读数 745

评论数 0

ZooKeeper伪分布式集群安装及使用

ZooKeeper伪分布式集群安装及使用 让Hadoop跑在云端系列文章,介绍了如何整合虚拟化和Hadoop,让Hadoop集群跑在VPS虚拟主机上,通过云向用户提供存储和计算的服务。 现在硬件越来越便宜,一台非品牌服务器,2颗24核CPU,配48G内存,2T的硬盘,已经降到2万块人民币以...

2017-05-11 20:52:31

阅读数 295

评论数 0

spring AspectJ的Execution表达式-备忘笔记(转)

Aspectj切入点语法定义 在使用spring框架配置AOP的时候,不管是通过XML配置文件还是注解的方式都需要定义pointcut"切入点" 例如定义切入点表达式  execution (* com.sample.service.impl..*.*(...

2017-02-27 14:26:08

阅读数 330

评论数 0

spring-junit多线程测试

使用junit进行单元测试的时候,并不能对多线程的操作进行测试。一般情况下是使用main方法来进行测试。但如果项目需要加载大量的配置的情况下,测试类写起来很复杂,需要去写加载各种配置文件的代码。不过可以使用第三方提供的依赖来进行 单元测试,通junit测试一样,只要使用@Test注解即可。 ...

2016-09-21 21:31:34

阅读数 3665

评论数 0

springboot配置多个redis连接

一、springboot nosql 简介 Spring Data提供其他项目,用来帮你使用各种各样的NoSQL技术,包括MongoDB, Neo4J, Elasticsearch, Solr, Redis,Gemfire, Couchbase和Cassandra。Spring Boot为Red...

2016-09-21 21:09:48

阅读数 19745

评论数 2

springboot下配置多数据源

一、springboot 简介 SpringBoot使开发独立的,产品级别的基于Spring的应用变得非常简单,你只需"just run"。 我们为Spring平台及第三方库提 供开箱即用的设置,这样你就可以有条不紊地开始。多数Spring Boot应用需要很少的Spring...

2016-09-21 20:46:33

阅读数 9834

评论数 4

spring Ioc 容器深入理解<一>

IoC 概述     IOC是spring的内核,Aop、声明式事务都能功能都依赖于此功能,它涉及代码解耦,设计模式,代码优化的问题的考量。 ioc的初步理解     ioc的概念重要但比较晦涩难懂,如下通过一个小例子来说明这个概念:     示例场景:电影: 无间道-》角色...

2016-09-08 23:14:10

阅读数 1206

评论数 0

spring配置文件的整合

多个配置文件 spring-common.xml 位于 common文件下下 spring-conncetion.xml位于connection文件夹下 spring-moudule.xml位于module文件下 传统加载方式 ApplicationContext context...

2016-09-08 21:52:26

阅读数 302

评论数 0

spring Bean的作用域

springBean中所说的作用域,在配置文件中即是“scope”。在面向对象程序设计中一般指对象或变量之间的可见返回。而在spring容器中指其创建bean对象相对于其他bean对象的请求可见返回。 在spring容器当中,一共提供了5中作用域类型,在配置文件中,通过属性scope来设置bea...

2016-09-07 22:21:06

阅读数 1811

评论数 0

spring Bean的实例化

Spring ioc容器如何实例化Bean,传统应用程序可以通过new和放射方式进行实例化bean,而spring ioc容器则需要根据bean定义的配置元数据使用反射机制来创建Bean,在spring IOC容器中主要有以下几种创建bean实例化方式; 1、使用构造器实例化bean       ...

2016-09-07 22:05:24

阅读数 731

评论数 0

spring Bean的命名

每个Bean可以有一个或多个Id,我们把第一个id成为标识符,其余id叫做别名,这些id在ioc容器中必须唯一,bean id的命名约定如下。     bean id的命名方式: 配置全限定类名,唯一 示例: 定一个helloworld接口 package com.zto;...

2016-09-07 12:36:48

阅读数 481

评论数 0

spring 配置文件浅析

spring 配置文件是spring对bean进行生产以及关系注入的图纸,是spring的基础,如果没有配置文件,spring容器无从谈起 spring的配置文件概述     spring的配置文件是用于指导spring工厂进行Bean的生产、依赖关系注入以及Bean实例分发的...

2016-09-07 12:22:45

阅读数 560

评论数 0

Spring开发包介绍

在建立spring工程的时候,需要引入spring的开发包,否则无法建立spring的开发和运行环境, 以下简单介绍一下spring的核心开发包的基本用途:     spring-core:     这个jar文件包含spring的基本核心工具类,spring其他组件都需要使用到这个包里的...

2016-09-05 20:39:54

阅读数 326

评论数 0

Spring入门示例

spring开发环境的搭建     spring是运行在JAVA环境下的开发框架,因此在开发前需要准备一下相关软件:     ·JDK7或以上版本     ·eclipse4或以上的版本     · spring framwork 相关软件包3 或3以上的版本 ...

2016-09-01 23:16:19

阅读数 200

评论数 0

Spring之AOP

一、什么是AOP     ·aop的基本概念     面向切面的编程,是一种比较新颖的设计思想,也是Spring框架中一个非常重要的功能,AOP将应用系统分为两个部分,核心业务逻辑以及横向通用逻辑,也就是所谓的方面,例如所有大中型用,都要涉及到的持久化管理,事务管理,安全管理,日志管理已经调试...

2016-08-24 23:41:22

阅读数 488

评论数 0

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