自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (10)
  • 问答 (1)
  • 收藏
  • 关注

转载 Kafka Streams架构概述

9.1 概述Kafka Streams是一个客户端程序库,用于处理和分析存储在Kafka中的数据,并将得到的数据写回Kafka或发送到外部系统。Kafka Stream基于一个重要的流处理概念。如正确的区分事件时间和处理时间,窗口支持,以及简单而有效的应用程序状态管理。Kafka Streams的入口门槛很低: 你可以快速的编写和在单台机器上运行一个小规模的概念证明(proof-of-concep...

2017-01-31 21:39:13 859

转载 scala 类的继承机制

extends// Scala中,让子类继承父类,与Java一样,也是使用extends关键字// 继承就代表,子类可以从父类继承父类的field和method;然后子类可以在自己内部放入父类所没有,子类特有的field和method;使用继承可以有效复用代码// 子类可以覆盖父类的field和method;但是如果父类用final修饰,field和method用final修饰,则该类是...

2017-01-27 00:56:34 426

翻译 scala 多态方法(POLYMORPHIC METHODS)

Scala 中的方法可以通过类型和值进行参数化。语法和泛型类类似。类型参数用方括号[]括起来,而值参数用圆括号()括起来。

2017-01-24 21:25:10 1561

转载 JackSonUtil

引用Maven库:<!-- Jackson --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.4.3</version> </

2017-01-24 21:03:13 562

转载 scala- object and companion object

转载自:Scala:伴生对象的实现原理参考:Scala object and trait having same namescala API -Singleton ObjectsTraits and classes can have companion objects (an object with the same name as the class/trait).Compan...

2017-01-24 20:20:12 742

转载 Nginx高并发原理

转载自:初步探索Nginx高并发原理首先要明白,Nginx 采用的是多进程(单线程) &amp; 多路IO复用模型。使用了 I/O 多路复用技术的 Nginx,就成了”并发事件驱动“的服务器。多进程的工作模式1、Nginx 在启动后,会有一个 master 进程和多个相互独立的 worker 进程。2、接收来自外界的信号,向各worker进程发送信号,每个进程都有可能来处理这个连接。3、 ma...

2017-01-24 20:18:52 1315

转载 scala trait

将trait作为接口使用// Scala中的Triat是一种特殊的概念// 首先我们可以将Trait作为接口来使用,此时的Triat就与Java中的接口非常类似// 在triat中可以定义抽象方法,就与抽象类中的抽象方法一样,只要不给出方法的具体实现即可// 类可以使用extends关键字继承trait,注意,这里不是implement,而是extends,在scala中没有imple...

2017-01-24 19:40:12 714

转载 Kafka文件存储机制

1.前言一个商业化消息队列的性能好坏,其文件存储机制设计是衡量一个消息队列服务技术水平和最关键指标之一。下面将从Kafka文件存储机制和物理结构角度,分析Kafka是如何实现高效文件存储,及实际应用效果。2.Kafka文件存储机制Kafka部分名词解释如下:Broker:消息中间件处理结点,一个Kafka节点就是一个broker,多个broker可以组成一个Kafka集群。Topic:一类消息,例...

2017-01-24 00:51:50 248

原创 日志打印规范

code为-500的日志要打印异常堆栈, 除此之外不能使用-500的错误码 参数校验错误, 需要给出具体的参数名. 使用MessageFormat实现参数精细化. aop切面的try catch异常捕获不能是catch exception, 而应该是catch throwable.防止出现栈溢出等Error 而无法捕获. 自定义业务异常BusinessException, 需要继承RuntimeException, 而不是继承Exception. 非预期异常需要接入告警. 禁止打印过长日志...

2017-01-23 04:14:32 252

转载 kafka消息格式——Commit Log

摘要Kafka作为一个消息中间件系统,面临的首要问题就是消息如何持久化,如何方便地进行读写和解析。本文将就Kafka的消息存储问题开一个头,后续将会对重要的代码部分一一讲解。Kafka的消息概念,首先我们在此谈论的不是网络传递中的消息,而更多偏向于记录的意思,也就是消费者和生产者所在意的实际对象。消息是Kafka造作的最小单元,并不允许更改消息的实际内容,一条消息本质上是一个键值可缺省的键值对。消...

2017-01-23 04:04:35 2223

转载 scala 泛型的6种使用方式

/** * 1,scala的类和方法、函数都可以是泛型。 *  * 2,关于对类型边界的限定分为上边界和下边界(对类进行限制) * 上边界:表达了泛型的类型必须是"某种类型"或某种类型的"子类",语法为“&lt;:”, * 下边界:表达了泛型的类型必须是"某种类型"或某种类型的"父类",语法为“&gt;:”, *  * 3, "&lt;%" :view bounds可

2017-01-23 03:39:02 1307

转载 scala class

 主构造器Scala 声明主构造函数的过程和 Java 区别很大; Java 中构造器函数的定义一目了然, 由于Scala 的设计者认为每敲一个键都是珍贵的, 所以把 Scala 主构造器的定义和类的定义交织在一起, 导致 Scala 的主构造器没法像 Java 的构造器那样清晰了。Scala 之父 Martin Odersky 建议我们这样来看待主构造器, "在 Scala 中, 类也接受参...

2017-01-22 23:32:10 372

转载 分布式缓存重建并发冲突问题

什么是分布式缓存重建并发冲突问题?很简单,多个缓存服务实例提供服务,发现缓存失效,那么就会去重建,这个时候回出现以下几种情况: 多个缓存实例都去数据库获取一份数据,然后放入缓存中 新数据被旧数据覆盖 缓存 a 和 b 都拿了一份数据,a 拿到 12:00:01 的数据,b 拿到 12:00:05 的数据 缓存 b 先写入 redis,缓存 a 后写入。 以上问题有多重解决方案,如: 利用 hash 分发 相同商品分发到同一个服务中,服务中再用队列去重建 但是这就

2017-01-21 15:06:00 6073

转载 scala 下划线用法

概述下划线最常用的地方是:scala中要显式指定初始值。可以用_让编译器自动帮你设置初始值。private var reporterThread: Thread = _1、作为“通配符”类似Java中的*。如import scala.math._2、可变参数序列:_*作为一个整体,告诉编译器你希望将某个参数当作参数序列处理!例如val s = sum(1 to 5:_*)...

2017-01-20 16:59:38 393

转载 scala-传名函数和传值函数

scala函数的参数可以是一般的数值,也可以是一个函数。例如:scala&gt; def time() = { | println("Getting time in nano seconds") | System.nanoTime | }time: ()Longscala&gt; def delayed(t: Long)={ | println(...

2017-01-20 01:12:18 286

原创 MQ消息堆积的解决和预防方案

MQ消息堆积的原因消息堆积即消息没及时被消费,是生产者生产消息速度快于消费者消费的速度导致的。 消费者消费慢可能是因为:本身逻辑耗费时间较长、阻塞了。预防方案增加消费者 关注单个消费者消费能力的上限,提升单个消费者的处理能力 ​​​​​​​mq的消息堆积的监控告警...

2017-01-19 13:03:16 2162

翻译 scala.Function1和scala.Function2

Function1带一个参数的方法,声明时,它需要两个泛型参数,第一个是传入的数据类型,第二个表示返回的数据类型,Function1是 trait ,它有一个apply方法,用来对输入参数进行处理了,使用Function1,必须实现apply接口object Main extends App {val succ = (x: Int) =&gt; x + 1val anonfun1 =...

2017-01-19 03:03:13 1269

翻译 kafkaProducer

kafkaProducer概述kafkaProducer是由一池Buffer space(即缓冲池)组成的,buffer space会保持还没提交到server的record,同时background I/O线程把这些record转换成request并传输到cluster中。使用后如果没有关闭producer会导致resource溢出。kafkaProducer的send()方法是异步的,当调用这...

2017-01-19 02:29:43 608

翻译 scala introduce

这篇文档给予了scala语言及其编译器的快速介绍。假设阅读者具有面向对象编程,尤其是在java上的经验。使用hello world作为第一个例子object HelloWorld {  def main(args: Array[String]) {    println("Hello, world!")  }}Java程序员应该熟悉这个程序的结构:它包含一个名为main的方法,...

2017-01-19 00:20:42 630

转载 ref属性用于获取真实的节点

获取真实的DOM节点组件并不是真实的 DOM 节点,而是存在于内存之中的一种数据结构,叫做虚拟 DOM (virtual DOM)。只有当它插入文档以后,才会变成真实的 DOM 。根据 React 的设计,所有的 DOM 变动,都先在虚拟 DOM 上发生,然后再将实际发生变动的部分,反映在真实 DOM上,这种算法叫做 DOM diff ,它可以极大提高网页的性能表现。但是,有时

2017-01-18 23:39:57 7670 1

转载 双指针扩张法+排列组合解抓捕孔连顺

题目描述:我叫王大锤,是一名特工。我刚刚接到任务:在字节跳动大街进行埋伏,抓捕恐怖分子孔连顺。和我一起行动的还有另外两名特工,我提议1. 我们在字节跳动大街的N个建筑中选定3个埋伏地点。2. 为了相互照应,我们决定相距最远的两名特工间的距离不超过D。我特喵是个天才! 经过精密的计算,我们从X种可行的埋伏方案中选择了一种。这个方案万无一失,颤抖吧,孔连顺!……万万没想到,计划还是失败了,孔连顺化妆成小龙女,混在cosplay的队伍中逃出了字节跳动大街。只怪他的伪装太成功了,..

2017-01-18 16:51:57 416

翻译 Transactions in Kafka

本文翻译Confluent官网,原文地址:https://www.confluent.io/blog/transactions-apache-kafka/ 在之前的博客文章(见尾部链接)中,我们介绍了ApacheKafka的exactly once语义,介绍了各种消息传输语义,producer的幂等特性,事务和Kafka Stream的exactly once处理语义。现在我们将从上篇文章结尾的地...

2017-01-18 15:13:56 1897

转载 fetch api

Making fetch requestsEDITA basic fetch request is really simple to set up. Have a look at the following code:var myImage = document.querySelector('img');fetch('flowers.jpg').then(function(res

2017-01-18 10:12:05 452

转载 TCP协议中的三次握手四次挥手以及11种状态转换

准备工作:服务器必须准备好接受外来的连接。这通常通过调用socket,bind和listen这三个函数来完成。我们称之为被动打开。第一次握手:客户端通过调用connect发起主动打开。客户端向服务器发出连接请求的TCP报文段,其TCP首部中的同步比特SYN置为1,并TCP首部中序号seq设置为x(TCP规定SYN报文段不能携带数据,但是要消耗一个序号),表明要转送数据时初始序列号是x。通常SYN分节不携带数据,其所在IP数据报只含有一个IP首部,一个TCP首部。

2017-01-18 00:41:21 443

转载 某生鲜电商平台的库存扣减方案

目录一、 问题二、 下单的步骤三、 什么时候进行预占库存?四、 分析五、 重复下单问题六、 解决办法一、 问题一件商品只有100个库存,现在有1000或者更多的用户来购买,每个用户计划同时购买1个到几个不等商品。如何保证库存在高并发的场景下是安全的?(1)不多发(2)不少发二、 下单的步骤(1)下单(2)下单同时预占库存(3)支付(4)支付成功真正减扣库存(5)取消订单(6)回退预占库存三、 什么时候进行预占库存?(1)

2017-01-18 00:34:45 654

转载 物理删除、逻辑删除以及逻辑删除保留唯一索引的方案

删除数据库记录是一个非常常见的需求,当数据失去价值时,我们便会删除它,但是如果操作不当,往往就会把一些有价值的数据误删掉,造成重要数据的丢失,合理采用删除方式才能更好地利用数据资源,下面介绍几种常用的删除方式。删除方式物理删除物理删除就是直接从数据库中删除一条或多条记录,将数据从磁盘上擦除,可以使用DELETE FROMSQL语句实现,这种方式产生的后果就是记录永久性删除,无法找回,一般适用于小型或数据重要性不高的项目,可以提高数据库资源利用率。物理删除方式是一种最简单最基本的数据删除方式,这里

2017-01-18 00:15:30 784

原创 稳定性保障思维导图

系统风险点梳理数据库是否存在慢查询 数据库磁盘容量是否足够 数据库负载是否在高位缓存缓存命中率是否合理 是否存在缓存穿透问题 是否存在缓存击穿问题 缓存容量是否足够 缓存负载是否在高位服务是否接入熔断 是否接入限流 是否存在读,写请求放大问题 是否存在panic问题降级依赖的服务与接口,是否有容错降级处理 目前的降级设计是否合理热点针对热点问题的方案设计是否合理 是否对热点数据进行了压测压测接口压测预期值评估是否合理,是否考虑了活动的突发流量以..

2017-01-17 23:50:30 930

转载 isMounted is an Antipattern

https://facebook.github.io/react/blog/2015/12/16/ismounted-antipattern.html主题 ECMAScriptAs we move closer to officially deprecating isMounted, it's worth understanding why the function is

2017-01-16 19:02:40 325

转载 Spark Streaming运行流程及源码解析

源码中的一些类这里先列举一些源码中的类,大家先预热一下。StreamingContext:这是Spark Streaming程序的入口,提供了运行时上下文环境DStream:是RDD在Spark Streaming中的实现,是连续的RDD(相同类型)序列,表示连续的数据流JobScheduler:生成和调度jobDStreamGraph:保存DStream之间的依赖关系JobGenerator:根据DStream依赖生成jobReceiverTracker:Driver端用于管理

2017-01-15 09:56:37 1017

转载 长列表分页缓存策略

通常,对于长列表加载的场景,都需要进行分页, 如最近的世界杯体育垂站项目中的赛程页,评论流,直播流。而为了提高分页加载的性能,往往需要对分页进行缓存。 下面总结对两种常见的分页缓存的策略, 适用场景以及各自的优缺点。策略一: 直接对分页结果缓存顾名思义,就是直接缓存每次分页查询的结果。适用场景 列表长度无法提前预知 数据和排序不经常变更 优点: 实现简单 通常能获得不错的性能。由于直接缓存分页的结果,因此只需一次IO就能把数据...

2017-01-13 20:40:25 15781

转载 服务端性能优化–最大QPS推算及验证

影响QPS(即吞吐量)的因素有哪些?每个开发都有自己看法,一直以为众说纷纭,例如:QPS受编程语言的影响。(PHP是最好的语言?) QPS主要受编程模型的影响,比如不是coroutine、是不是NIO、有没有阻塞? QPS主要由业务逻辑决定,业务逻辑越复杂,QPS越低。 QPS受数据结构和算法的影响。 QPS受线程数的影响。 QPS受系统瓶颈的影响。 QPS和RT关系非常紧密。 more…嗯,这些说法好像都对,但是好像又有点不对,好像总是不太完整,有没有一个系统点的说法能让人感觉一听就豁

2017-01-13 20:13:03 993

转载 Java异常(exception)性能优化

在Java中,构造异常对象是"十分"耗时的,其原因是在默认情况下,创建异常对象时会调用父类Throwable的fillInStackTrace()方法生成栈追踪信息,JDK中的源码如下:public synchronized Throwable fillInStackTrace() { if (stackTrace != null || backtrace != null /* Out of protocol state */ ) { .

2017-01-13 19:57:15 344

转载 JSX 的基本语法规则

JSX 的基本语法规则:遇到 HTML 标签(以  开头),就用 HTML 规则解析;遇到代码块(以 { 开头),就用 JavaScript 规则解析。三、JSX 语法上一节的代码, HTML 语言直接写在 JavaScript 语言之中,不加任何引号,这就是 JSX 的语法,它允许 HTML 与 JavaScript 的混写(查看 Demo02 )。

2017-01-13 14:54:11 3437

转载 Kafka Producer异步发送的流程

Producer API入门 ProducerRecord 说明异步发送流程 2.1 用户线程调用send将record压缩到BufferPool中 2.2 发送调度Producer设计说明Producer Configuration1. Producer API入门:KafkaProducer是一个发送record到Kafka Cluster的客户端API。这个类线程安全的。在...

2017-01-13 12:53:42 9583

转载 js插件的经典写法与总结

之前写了一篇关于js插件的方法,可以传入参数,当时不能够拓展方法,而且模式也不是很好,虽然能够满足一定的业务要求。下面是对js插件的完善,可以实现参数传入,方法拓展,链式操作,设计模式更加清晰。[html] view plain copy print?>  html>  head>      title>js插件测试title>

2017-01-09 23:44:12 493

转载 异地多活场景下的数据同步之道

在当今互联网行业,大多数互联网从业者对"单元化"、"异地多活"这些词汇已经耳熟能详。而数据同步是异地多活的基础,所有具备数据存储能力的组件如:数据库、缓存、MQ等,数据都可以进行同步,形成一个庞大而复杂的数据同步拓扑。本文将先从概念上介绍单元化、异地多活、就近访问等基本概念。之后,将以数据库为例,讲解在数据同步的情况下,如何解决数据回环、数据冲突、数据重复等典型问题。1 什么是单元化如果仅仅从"单元化”这个词汇的角度来说,我们可以理解为将数据划分到多个单元进行存储。"单元"是一个抽象的概念,.

2017-01-09 13:15:54 923

转载 Redis五大数据结构使用场景

Redis是一种基于键值对的NoSQL数据库,它的值主要由string(字符串),hash(哈希),list(列表),set(集合),zset(有序集合)五种基本数据结构构成,除此之外还支持一些其他的数据结构和算法。key都是由字符串构成的,那么这五种数据结构的使用场景有哪些?一起来看看!一 字符串字符串类型是Redis最基础的数据结构,字符串类型可以是JSON、XML甚至是二进制的图片等数据,但是最大值不能超过512MB。1.1 内部编码Redis会根据当前值的类型和长度决定使用哪种内部编

2017-01-09 11:06:35 14034

转载 Spring 参数校验的异常处理

对于不同的参数解析方式,Spring 抛出的异常也不同,而且这些异常没有继承关系,异常的内部也各不相同,只能对每种异常单独处理。感觉这块地方 spring 没有设计好,处理起来比较麻烦。跟参数相关的异常主要有三个需要手动处理。org.springframework.validation.BindException org.springframework.web.bind.MethodArgumentNotValidException javax.validation.ConstraintViol

2017-01-09 02:28:07 1174

原创 spark2.3源码分析之RDD算子combineByKey

概述combineByKey通过使用聚合函数,把键值对中每一个key对应的value进行聚合,将JavaPairRDD[(K, V)]转换成JavaPairRDD[(K, C)]的结果,C是聚合后的类型。用户需要提供以下三个函数:createCombiner:在一个partition中创建每个key对应的累加器的初始值。 mergeValue:在一个partition中,将同一个ke...

2017-01-05 22:27:16 334

原创 JavaRDDLike.mapPartitions方法

spark java api调用mapPartitions方法的例子如下:package com.dsinpractice.spark.samples.core;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.api.java.Java...

2017-01-05 22:22:58 1464

ios的网络图片下载类库

ios的网络图片下载类库

2016-03-31

viewpager的下横线指示器

viewpager的下横线指示器,使用translateAnimation位移动画实现被选中页卡的下横线的移动

2015-07-30

viewpager实现页面导航之三

新特点是使用translateAnimation位移动画实现被选中的点的移动。而不是用以往的方法实现点的切换。之所以说是点的移动而不是点的切换是因为,运行代码滑动页面时真的可以看到像在Flash中绿点的移动效果。以往的方法只是一个点换成灰色图片,另一个换成绿色图片,没有移动。

2015-07-22

viewpager实现页面导航

viewpager实现页面导航,代码耦合性低。比如不在initiateItem()中设计并返回页卡布局文件对象。姑且可以看看了解

2015-07-21

viewpager与预编译的点布局实现页面导航效果

该源代码简洁的实现了在页面滑动时点的变化,而且包容点的布局是经过重写的布局,单独作为一个文件,不在MainActivity.java中,耦合低

2015-07-20

进销存管理系统之二

这是由明日科技公司开发的进销存管理系统,跟上一例代码有些相似之处

2015-07-17

进销存管理系统

这是个教你怎么连接sqlserver2008的代码,只要查看dao.java即可

2015-07-17

java+Mysql学生数据库管理系统

该源代码里会教你怎么自定义类将在数据库查询到的结果集以表格的形式展示在界面上;怎么自定义图形面板添加背景图片

2015-07-11

MyListView

listview的BaseAdapter用法的android源代码,还用了convert与viewholder的回收机制

2015-07-10

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

TA关注的人

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