自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

define_us的专栏

JAVA深入,python浅出

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

原创 Kafka增加Replica的办法

挺麻烦的,还是建议在建立topic时提前规划好手动写assign json{ "partitions": [ { "topic": "TEST", "partition": 0, "replicas": [0,1] }, { "topic": "TEST", "partition": 1, "replicas&qu

2018-10-30 11:29:55 1194

原创 分布式一致性的一点个人理解

这里纯粹是写一点个人感想,完全不保证正确性。分布式事务作为一个巨大的概念,内涵可以非常广。数据库的分布式事务缓存一致性消息系统的exactly once语义。zookeeper的最终一致性…简单而言,你想让A组件做一件事,并让B组件做另一件事, 并试图保证最终一致性,都叫分布式事务的内涵。为什么是最终一致性?因为BASE理论和CAP理论,在物理学家解决不了网络分区问题前,我们最多...

2018-10-29 17:26:26 276

原创 redis用作队列例子(JEDIS)

主要注意点,接收方和发送方必须使用不同的jedis对象。import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPubSub;/** * @author : gaodaliang * @discription : * @date : created in 2018/10/29,14:47 * @modifi...

2018-10-29 15:52:21 117

原创 JStorm和DRPC

DRPC客户端将要执行的函数名以及相应的参数发送给DRPC server 。实现了这个函数的topology使用 DRPCSpout来接收从DRPC server传来的函数的远程调用流,从而来执行该函数。每一次函数的远程调用都被DRPC server附上了一个唯一的id。接下来topology计算结果,在最后topology中的bolt调用ReturnResults来连接DRPC server...

2018-10-29 13:09:29 321

原创 Strom和Trident

TridentTrident是Storm 0.8.0版本引入的新特性。在者之前,storm有Transactional Topologies( 0.7.0 )的概念,trident之后,这个概念就被deprecated的了。首先,将大吞吐量数据转化为一个个batch。DRPC客户端将要执行的函数名以及相应的参数发送给DRPC server 。实现了这个函数的topology使用 DRP...

2018-10-26 13:33:21 304

原创 JStorm性能

性能度量参见http://www.jstorm.io/Maintenance_cn/JStormMetrics.htmlJStorm将信息展现为如下Emitted当前1分钟发送的消息数,包括业务消息和acker消息。理论上是SendTps60(N+1)。N为下流的bolt种类数目。Acked当前1分钟被ack的消息数。注意这个和Emitted的区别: 在错误率不高的情况下,...

2018-10-26 10:44:23 734 1

原创 Apache Atlas

数据血缘https://www.sohu.com/a/215119883_692358其实,在我理解中,就是一个数据的全生命周期的管理,从采集到处理,拆分,过滤,整合,存储,到废弃。数据和数据之间可以相互转化,这种转化关系就是数据之间的血缘。精细的数据血缘应该是字段级别的,如果做不到,做成表级别也可以。安装我们采用1.1.0版本。我司使用的架构是HDP(2.6)+ambari(2.5.2...

2018-10-26 09:39:24 2012

原创 JSTORM问题排查——Cann't download code for storm id

现象同事windows电脑上的storm工程没办法正常运行lowing topologys is going to re-download the jars, [test-1-1540444367]- Downloading code for storm id test-1-1540444367 from C:\Users\Magnum\AppData\Local\Temp\\b4ea59e...

2018-10-25 15:49:35 729

原创 安全编程的基本概念

密码加盐我们都知道,传输用户密码的明文到后台是非常危险的。更有甚者还把这些密码存储在数据库里。另一部分开发者采用md5进行不可逆的转化,然后传输和存储密码的md5值。看似很保险,但是实际上只要又一个常见密码和md5值的索引表就可以轻而易举的进行破解。2011年,CSDN 600W用户名密码泄漏,就是被这么破解的。最合理的方式是对密码进行加盐。盐是一个固定长度添加密码到固定未知的字符串,为每一个用...

2018-10-24 17:26:14 225

原创 缓存一致性

缓存穿透一般的缓存系统,都是按照key去缓存查询,如果不存在对应的value,就应该去后端系统查找(比如DB)。如果key对应的value是一定不存在的,并且对该key并发请求量很大,就会对后端系统造成很大的压力。这就叫做缓存穿透。缓存并发缓存失效问题引起这个问题的主要原因还是高并发的时候,平时我们设定一个缓存的过期时间时,可能有一些会设置1分钟啊,5分钟这些,并发很高时可能会出在某一个时...

2018-10-24 09:48:31 476

原创 从零开始的支付系统——为了钱而编程

一个典型的支付流程如下

2018-10-24 09:48:05 694

原创 RocketMQ的基本介绍

概述阿里开源(emmmmmmmm)。号称是站在kafka巨人的肩膀上更适合互联网公司的架构。基本架构如下对比kafka,架构中增加了slave broker。逻辑架构如下,比kafka多了Producer Group的设定。这是支持事务的必要。3.2.6版本及以上版本,删除了回查机制,回查机制要自己实现。事务MQ的在1后,事务消息是prepare状态,然后RMQ会将其持久化...

2018-10-23 17:03:58 591

原创 linux和磁盘(1):基本概念

磁盘 分区 和卷卷和分区差距很大, 一个分区是一个物理磁盘连续空间。一个卷却可以跨越多达32个物理磁盘,这在服务器上是非常实用的功能。在我们自己的PC上,一般把磁盘分为主分区、扩展分区、逻辑分区(实际上也就是2个分区,主分区和扩展分区)。一般一个物理磁盘的最大分区数目仅仅为4,这个是因为磁盘的MBR只有64个字节。一个硬盘的主分区也就是包含操作系统启动所必需的文件和数据的硬盘分区,要在硬盘上...

2018-10-23 15:53:53 397

原创 ElasticSearch CircuitBreakingException相关问题排查

现象logstash向ES写入数据,出现错误[2018-10-22T14:23:07,406][INFO ][logstash.outputs.elasticsearch] retrying failed action with response code: 503 ({"type"=>"circuit_breaking_exception", "reason"=&a

2018-10-22 15:27:28 4777 1

原创 Solr的OOM问题排查

现象SOLR启动十几分钟后触发OOM脚本退出。日志显示重启后SOLR在进行replay以前的tlog操作。排查solr的启动脚本如下/usr/java/jdk1.8.0_102/bin/java -server -Xms1024m -Xmx4096m -XX:NewRatio=3 -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 -XX:Max...

2018-10-22 14:25:46 1652

原创 数据库集群和分布式事务和JTA

分布式事务XA协议XA协议由Tuxedo首先提出的,并交给X/Open组织,作为资源管理器(数据库)与事务管理器的接口标准。目前,Oracle、Informix、DB2和Sybase等各大数据库厂家都提供对XA的支持。XA协议采用两阶段提交方式来管理分布式事务。XA接口提供资源管理器(资源)与事务管理器(可以时中心节点,也可以时请求事务的客户端)之间进行通信的标准接口。这两者分别承担事务参与者...

2018-10-19 16:45:47 506

原创 ElasticSearch的使用

创建和删除索引使用DevTools PUT test001 DELETE test001使用curlcurl -X PUT "http://10.5.145.101:9200/productindex"curl -X DELETE "http://10.5.145.101:9200/productindex"注意索引名称都是小写字母才行。创建type和对应的映射表查看...

2018-10-19 16:30:14 100

原创 YARN

YARN的基本思想是将JobTracker的两个主要功能(资源管理和作业调度/监控)分离,主要方法是创建一个全局的ResourceManager(RM)和若干个针对应用程序的ApplicationMaster(AM)。MapReduceV1时代那时候,我们还没有YARN。Job Tracker负责一些列的工作。首先用户程序(JobClient)提交了一个job,job的信息会发送到Job ...

2018-10-17 15:42:47 295

原创 Spark-Streaming基础

SparkStreaming原理客户端提交作业后启动Driver,Driver是spark作业的Master。每个作业包含多个Executor,每个Executor以线程的方式运行task,Spark Streaming至少包含一个receiver task。Receiver接收数据后生成Block,并把BlockId汇报给Driver,然后备份到另外一个Executor上。Receiv...

2018-10-17 14:34:05 278

原创 数据库中事务基本原理和概念(单机)

数据库中的锁按照作用分:共享锁 select语句会加入共享锁,数据库机制规定共享锁和排他锁不能同时添加到一个资源上。所以,一句select对资源加了共享锁,另一句select也可以对同一资源加共享锁,但是,一句update则必须等待,因为,他无法把排他锁加到一个已经上了共享锁的资源上。排他锁 其它任何资源,既不能读,也不能更改意向锁计划锁更新锁 为了解决共享锁和排他锁所带来...

2018-10-16 15:26:06 243

原创 Kafka的Exactly Once和事务

Kafka的实现RocketMQRocketMQ原声支持事务。

2018-10-16 14:04:33 3325

原创 解决MAVEN打包包含重复artifact的问题

起因一个线上的tomcat服务,在启动时报错某个serverlet重复注册。检查发现是因为程序里含有两个相同的web-fagment.xml。原因很简单,就是某个jar包在maven打出来的war包中被包含了两次。排查原因未知。解决方案删除本地maven仓库中的无关版本。...

2018-10-15 16:04:05 1290

原创 HBase压力测试

关于HBase压测,恐怕是一个很常见的问题。主要目的包含内存GC参数优化。

2018-10-15 15:14:47 1936

原创 JStorm UI问题排查

现象点击一个topolog的页面,发现出现错误。java.lang.StringIndexOutOfBoundsException: String index out of range: -2 java.lang.String.substring(String.java:1967) com.alibaba.jstorm.ui.tags.ErrorTag.getErrorContent(Er...

2018-10-12 16:48:06 919 3

原创 HBase GC故障排查

现象那是系统阳光明媚的一天。HBase在日常进行自己的minor gc,清理自己的新生代。2018-10-09T09:00:56.550+0800: 351217.975: [GC (Allocation Failure) 2018-10-09T09:00:56.550+0800: 351217.975: [ParNew: 2830029K->137329K(3015488K), 0.0...

2018-10-11 13:46:42 2142 2

原创 JMX的基本介绍

JAVA自带的MBean当我们在用jconsole、jvisualvm进行监控java进程时,通常都能看到cpu、内存、线程、垃圾收集等使用情况,其实数据都是通过jmx从jvm提供的一些mbean里面取的。JAVA自带的MBean如下ClassLoadingMXBeanClassLoadMXBean 包括一些类的装载信息,比如有多少类已经装载 / 卸载(unloaded),虚拟机类装载的...

2018-10-09 11:04:28 332

原创 JAVA性能

不要使用对象池技术。这个是从JAVA早期时代留下来的技术,当时new一个对象或者垃圾回收一个对象都非常慢。但是现在没必要了。在多线程访问线程池时,还需要对线程池加锁,加锁的开销远远大于new一个对象的开销。...

2018-10-08 16:33:58 175

原创 JAVA图形界面

GUI程序都是单线程的,GUI事件在主事件循环中进行处理,简单而言就是一个事件队列模型,采用一个线程从事件队列中获取事件(SWING当中称为EDT),一些耗时交给其他线程进行处理,但是EDT必须负责所有与GUI组建的交互。单线程的GUI理念不仅在JAVA中,在QT C++等诸多环境中也是如此。多线程的GUI因为多线程的不稳定难以编写(简单而言,计算机科学家博士们认为编写稳定可靠的多线程GUI库是问...

2018-10-08 14:31:13 579

原创 设计模式----工厂模式

简单工厂模式:当代吗使用具体类时,一旦加入新的具体类,就必须要改变代码(import该类)。我们希望在生成对象的时候,不使用new+具体类的名称,而是希望调用一个简单的方法,传递一个参数过去,就可以返回一个具体的对象。通过这种方法,我们减少了我们对其他代码的类的名称的依赖。简单例子的类图如下如图所示,相比于原来,如果要提供四种pizza对象,用户需要知道内部四个类的名称进行创建,如果类的名...

2018-10-08 13:32:40 167

原创 JStorm源代码阅读——Woker的线程模型

启动线程"main" #1 prio=5 os_prio=0 tid=0x00007fedd400a000 nid=0x7acf in Object.wait() [0x00007fedddcbc000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method)...

2018-10-03 20:26:56 331

空空如也

空空如也

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

TA关注的人

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