17 偏锋书生

尚未进行身份认证

我要认证

day day up

等级
TA的排名 27w+

亿级订单同步

“你最近一段时间把我们的***页面查询优化一下”,刚入职的我接到领导这了这个任务,做为IT老鸟,这应该是So easy的,心想,该我表现的时候了,百分百没建索引,或是建了不合理的索引导致没有用上索引,这东西应该不要“一段”时间吧?当我信心满满地找熟悉这块的开发人员了解情况时,顿时当头暴击啊,我们用的是mysql数据库,先select count(id) 来一下,苦苦等等了近5分钟,给我...

2020-01-15 22:09:23

duckula之三(duckula对es的join类型的支持)

前言  互联网体系架构具有可控性差、 数据量大、 架构复杂等特点,错综复杂的各业务模块需要解耦,各异构数据需要同步,双活/多活的容灾方案需要高实时性 等,在各种场合都需要一套可靠的数据实时推送方案。mysql已成为互联网项目存储的主力,围绕着它的各外围模块急需实时地获取它的数据,binlog监听是解决此实时同步问题的不二之选。使用场景  duckula可以做到mysql到ES的增量和全量的同...

2019-12-29 19:42:43

duckula之二(Ops-Server模式安装)

介绍  分布式binlog监听中间件duckula能像吸血鬼一样从各mysql实例中得到变化的数据,又能自动复活(HA).支持插件化数据接收者和序列化.非常灵 活.,可在自定义接收者,项目内置了kafka和redis接收者,也可以自定义序列化格式,项目也内置了protobuf2/protobuf3序列化.通过插件的形式嵌入到 duckula. 具有丰富的界面操作,可以通过页面操作进行任务的创建,...

2019-12-29 19:34:04

duckula之一(k8s版本安装)

介绍  分布式binlog监听中间件duckula能像吸血鬼一样从各mysql实例中得到变化的数据,又能自动复活(HA).支持插件化数据接收者和序列化.非常灵 活.,可在自定义接收者,项目内置了kafka和redis接收者,也可以自定义序列化格式,项目也内置了protobuf2/protobuf3序列化.通过插件的形式嵌入到 duckula. 具有丰富的界面操作,可以通过页面操作进行任务的创建,...

2019-12-29 18:31:43

自定义classload与热加载

场景  Classload是java语言较为底层的技术,对于自定义框架,中间件开发等都有广泛的应用场景,可以利用它设置出较为灵活的应用。像duckula就是使用它完成插件机制,为扩展duckula提供了可能。还有插件平台,也是使用它来实现ES业务插件的热加载等功能。双亲委派模型  类加载这个概念应该算是Java语言的一种创新,目的是为了将类的加载过程与虚拟机解耦,达到”通过类的全限定名来获取...

2019-11-04 15:36:44

es插件平台

ES插件应用到ES很多地方,如:报警、分词、安全。。。。 但这些插件都是在技术层面的,业务层面肯定是缺失的,需要我们来补充1、跟据某个业务字段或是业务规则来打分,打分高的排前面2、跟据数据库字段来生成索引的mapping3、异构数据的同步索引,跟据规则处理异构数据4、跟据某些业务规则来触发告警5、更多。。。。。。。。。因此,我们很想自已来开发ES插件来满足业务需求,但ES插件在开发上确实不方便,如:权限严格、不支持热加载需要重启、对初学者不友好、版本升级(特别是大版本)后不向下兼容 等。所以我

2019-11-03 12:25:52

业务与框架分离利器

现在互联网框架层出不穷,知识也是一个更新的过程,从传统行业的SSH,dubbo,grpc,springcloud,满足不同场景的业务需求,应该说框架技术没有好坏之分。但由于历史原因,我们经常性的有系统改造需求,如果是功能性的重新划分,连数据模型都推倒重来,那要考虑的问题倒少了,但如果修修补补,甚至只是切换一下底下的实现方式,把http改为rpc的,把原来的那种单体的改为微服务体系架构,如果之前没有把业务与框架做分离,那改起来也是一个较头疼的任务,单一个接口的输入输出就够喝一壶的。如果我们实现一个与业务无关的

2019-11-03 12:12:50

httpclient的扩展

在java世界里,后端通过http协议来调用服务是非常常见的情形,犹其是现在微服务盛行,java一般是通过httpclient工具来做http调用的,但由于其功能较为强大,使用上倍感复杂,今天写的代码,过几天都快看不懂的事经常发生,common-http模块就是试图降低httpclient的复杂性,希望通过简单的的api,传几个我们一看就明白的参数来解决我们的问题。common-http模块也对httpclient做了一些扩展,如大文件的多线程下载、异步调用等。这些个场景都是在开发中经常碰到的。

2019-10-30 16:26:34

jdbc连接池

连接一个数据库很容易,直接引入依赖包,组装好jdbc地址,加载驱动类,如果想用连接池又得引入连接池的依赖包,一连串的动作简单而乏味,一般的做法是自己存一个工具类,要的时候复制,改改相应的链接了事。common-jdbc依赖包也就是把这些乏味的事做到一个api中,到要的时候只要修改配置文件的配置项,直接调用api就可以了。

2019-10-30 16:15:29

Cassandra介绍

Cassandra在2008年7月被Facebook开源。Cassandra最初的版本主要是由亚马逊(Amazon)和微软(Microsoft)的一名前雇员编写的。它深受亚马逊首创的分布式key/value数据库Dynamo的影响。Cassandra实现了一个没有单点故障的动态复制模型,但是添加了一个更强大的列家族数据模型。下面我基于对它的理解说说它的一些概念。

2019-10-23 23:05:54

duckula介绍

分布式binlog监听中间件duckula能像吸血鬼一样从各mysql实例中得到变化的数据,又能自动复活(HA).支持插件化数据接收者和序列化.非常灵 活.,可在自定义接收者,项目内置了kafka和redis接收者,也可以自定义序列化格式,项目也内置了protobuf2/protobuf3序列化.通过插件的形式嵌入到 duckula. 具有丰富的界面操作,可以通过页面操作进行任务的创建,任务的启动与停止.合适的调度策略,当某个task由于某种原因"自杀"后,系统会自动 选择其它占用资源较少的服务器来运行此t

2019-10-23 22:57:12

jedis的扩展

jedis是redis的一款java客户端,对redis连接进行了池化,把短连接改为长连接,减小了网络连接的消耗,在项目中使用也比较多。但jedis也存在一些使用不方便的地方.- 需要手动关闭jedis连接,如果代码中存在异常跳过了jedis连接关闭的代码,那就存在连接泄漏的问题- redis的独立模式 与 哨兵模式、集群模式使用时使用的池都不样,一般来说我们开发、测试环境使用redis独立模式而生产环境使用哨兵模式或集群模式。这时我们的代码就不能做到统一。- jedis提供的api都是较为原

2019-10-23 20:56:43

通过代码自由操作kubernetes

在kubernetes成为容器服务编排方案“标准”的今天,谈自动化运维就不能离开k8s,现在操作k8s有多种方式,集群外面k8s client通过kubeconfig配置文件连接k8s集群,通过k8s 暴露的apiserver服务操作k8s。通过暴露helm的服务service/tiller-deploy来操作k8s 等。k8s client和helm Client对于手工部署确实方便,但当应用程序量大的时候,通过手工来部署显然不够。通过apiserver的restfull形式的api来部署我们的应用确实可

2019-09-17 21:50:41

让你的代码借助spring起飞

经常性的存在这种场景,我们写好了一些工具类,这些工具类即可以在非spring项目里使用,也可以在spring项目里使用 ,为了做的更灵活些,这些工具类需要各种配置项,一般来说,我们会把它们放到内存的某个变量 中,这样在所有的java项目里就可以直接使用,这在非spring项目中感觉没什么,但在spring项目中,spring有自己的一套属性管理方案,且可以通过 @value等许多的annotation工具直接在项目代码中注入,在使用上更加的便捷和自然。在内存在的配置项是不被spring所管理的,也就是说我们

2019-09-15 22:04:09

内存配置中心

一提到配置中心,大家想得最多的是configserver,阿波罗,consule等微服务系统较为典型的配置中心,集中存放项目的配置信息,起到权限管理、发布审核、操作审计、灰度发布等重要作用。但这些都是依赖第三方中间件来达到配置集中管理的目的,怎么选都是较重的一种方案,但有些场景需要配置中心但又不想有太重的依赖,只想把这些配置存放到内存就够用了。如:- 工具jar包,特别是连接一些中间件的配置项。

2019-09-15 21:53:16

flink用的binlog监听source

Flink可以用来做到批量处理与实时流式分析,在实时流式分析这块,常规的做法是业务主动发kafka消息,然后flink监听kafka来完成的。但这种方式却要借助中间件来完成监听发送kafka任务,现在要介绍的方案就是直连mysql,使binlog数据直接到Flink。

2019-09-15 20:59:27

轻量级的binlog监听方案

互联网体系架构具有可控性差、 数据量大、 架构复杂等特点,错综复杂的各业务模块需要解耦,各异构数据需要同步,双活/多活的容灾方案需要高实时性 等,在各种场合都需要一套可靠的数据实时推送方案。mysql已成为互联网项目存储的主力,围绕着它的各外围模块急需实时地获取它的数据,binlog监听是解决此实时同步问题的不二之选。

2019-09-15 20:46:25

tapestry+spring+hibernate 用maven整合(二:tapestry篇)

tapestry要设置的主要有:一、AppModule.app配置异常管理:public RequestExceptionHandler buildAppRequestExceptionHandler( final Logger logger, final Resp

2011-09-26 16:50:34

tapestry+spring+hibernate 用maven整合(一:maven篇)

主要采用maven分模块和spring注解完成框架的搭建。一、目录结构:pom.xml设置整个项目的设置,包括:依赖、版本、组、JDK等全局信息。<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schem...

2011-09-26 16:32:04

tapestry对Selenium测试的支持

首先,安装插件testNg - http://beust.com/eclipse然后新建文件:src\test\resources\test\conf\testng.xml内容为: 其中指明测试类所在的包,也就是它所

2011-09-26 15:54:25
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。