自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 golang--sort比较大小

在golang中比较一个数据中结构体的大小,可以使用如下的方式: 实现Swap Len Less三个方法即可。 下面直接上货: type T []tt type tt struct { roomId int64 score float64 gameMin float...

2020-01-13 17:18:55 128 0

原创 golang 定时器封装——支持超时和函数自定义

如标题,封装一个golang的定时器,能够设置超时时间和定时器的interval。开启定时器后使用一个新的goroutine进行倒计时操作。 好,下面上货。 package common import ( "context" "fmt" &qu...

2020-01-07 12:15:34 162 0

原创 golang定时器实现

golang定时器,需求是能够在指定时间后停止。或某种条件出发停止。 https://golang.google.cn/pkg/time/#example_Tick 好,下面上货。 package main import ( "context" "f...

2020-01-07 10:52:49 96 0

原创 etcd clientv3的基本使用

本文主要介绍etcd 的clientv3的基本使用。在介绍之前,需要了解到的是v3版本的client和etcdctrl使用的是不通的存储空间,所以说不能通过etcdctl命令去访问client写入的数据,他们时间是存储隔离的。 好,下面上货。 package main import (...

2019-12-30 15:42:16 284 0

原创 goreman搭建etcd——分布式

本文主要介绍如何使用goreman搭建etcd的本地伪分布式。 首先需要了解goreman的使用,一个能够根据指定文件启动多个进程的工具。参考这里: https://github.com/mattn/goreman 好,下面上货。 主要参考: https://github.co...

2019-12-27 17:32:24 179 0

原创 etcd单点安装

搭建etcd单点 首先在github上下载最新的稳定的etcd https://github.com/etcd-io/etcd/releases 下载完成后解压,安装即可。 然后解压并且配置环境变量 unzip etcd-v3.8xx.zip mv etcd-v3.8 /usr...

2019-12-27 17:26:12 202 0

原创 etcd与zookeeper对比

从github中了解到ectd能做什么,以及etcd在分布式系统中的关键作用。 主要参考: https://github.com/etcd-io/etcd/blob/master/Documentation/learning/why.md 从上面的文章中我总结出的关键内容如下: z...

2019-12-27 17:19:07 157 0

原创 golang引用自定义模块(类似java的maven)——github版

在golang中,可以通过 go mod的mod文件中添加依赖,依赖其他模块。这些模块既可以是来自第三方的模块,也可以是来自自己的模块。 例如: 下面代码的含义是 模块foolDealer 依赖模块 github.com/google/wire 和 github.com/wild46cat/g...

2019-12-25 16:42:53 581 0

原创 gin 跨域问题

在使用gin框架的时候需要处理跨域问题。下面是具体的解决方案。 func main() { r := gin.Default() r.Use(Cors()) } func Cors() gin.HandlerFunc { return func(c *gin.Context) {...

2019-12-19 11:02:46 216 0

原创 go配置文件参数被执行shell命令覆盖

经常会有这样的需求,就是在执行shell脚本构建程序的时候,希望能够在shell中指定某些配置文件的值。 也就是说,shell命令中的优先级要高于配置文件的优先级。 configor(https://github.com/jinzhu/configor)也只支持的,看下面的脚本 cd .....

2019-12-16 23:25:06 35 0

原创 go配置文件区分环境信息

继续上一篇文章介绍的https://github.com/jinzhu/configor,我们现在讨论如何隔离各个环境的配置文件。 简单的说,我们在开发环境,生产环境和测试环境使用的配置文件应该是不同的。那么configor是如何处理这个问题呢? 好,下面上货。 1、如果本地执行(使...

2019-12-16 23:20:50 225 0

原创 go-configor配置文件支持热加载

在编写go程序的时候我们加载配置有多中方式,比较常用的还是配置文件。我们需要配置文件能够热加载(当配置发生变化后)不用重新启动程序,就能够使配置生效。 我们采用的是开源的配置文件方式https://github.com/jinzhu/configor 好,下面上货。 package con...

2019-12-16 23:15:10 52 0

原创 spring-namespace实现自己的自定义标签类

这篇文章介绍的是如何通过spring namespace的方式进行bean的配置 最终要达到的目的如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http...

2019-12-10 16:55:21 29 0

原创 spring-namespace自定义命名空间简介

我最开始是通过sharding-spwhere这个分库中间件知道,在做中间件的时候,最好是使用这种spring-namespace的方式进行配置。之后,在比较流行了一些java中间件中都会发现spring-namespace的影子,比如dubbo中的xml配置文件 <dubbo:app...

2019-12-10 16:46:12 34 0

原创 golang中context使用——WithTimeout和WithDeadline

程序和上一篇的withCancel是类似的,只是创建子context的方式不同,这里使用的是withTimeout和WithDeadline的方式。 下面,上代码: package main import ( "context" "errors"...

2019-12-07 03:12:42 301 0

原创 golang中context基本使用withcancel

用一个简单的程序介绍一下withcancel的context,我们一般写goroutine的时候会在里面做一个for{},同时在for的里面还会做一个select{}判断接收当前的chan,不同的chan做不同的动作。 context也是利用了这样的结构,context提供了取消函数,cance...

2019-12-07 03:03:47 540 0

原创 golang中context的简介

本文主要参考 官方介绍 https://blog.golang.org/context 实用的例子 http://www.gorillatoolkit.org/pkg/context 说明文章 https://www.cnblogs.com/qcrao-2018/p/11007503.h...

2019-12-07 02:43:30 33 0

原创 golang struct转化成map

常见的struct转化可以通过json先转换成字符串,然后再转换成map对象。 现在介绍的反射的方式,其中需要注意的是,反射不能够获取struct中没有被暴露出的变量(小写开头的变量)。 好,下面上货。 package demo import ( "fmt" &q...

2019-11-22 01:02:48 133 0

原创 golang继承——接口父类子类

从面向对象的角度上看,总会有一些使用子类不想做,希望父类去做的事情,在java这样的纯面向对象的语言中,方法就是使用父类和子类,子类通过继承父类的方法,实现子类自己的属性,如果没有某个方法没有经过子类重写,那么这个方法通过子类调用时,就会调用父类的方法。 在go中也有这样的机制。下面是具体的实现...

2019-11-21 02:58:36 515 0

原创 golang kafka客户端实现

最近在弄golang框架的事情,连接kafka,目前采用的是sarama进行连接,开发测试是ok的,但是考虑到在生产环境中使用。sarama还是有些问题的,问题出在它的consumer上,不能够直接使用,需要进行简单的处理,首先是处理topic和groupid的问题。 我们知道在kafka消费的...

2019-11-21 02:32:14 203 0

原创 golang反射——执行函数

在写golang框架的时候,免不了需要处理类似方法执行的问题,由于框架层对业务层的具体方法是不清楚了,只提供了基本的输入和输出格式,所以就需要使用一种方式,适配业务层的函数调用。 golang提供了反射,其中最终要的两个内容是Type和Value。通过反射,我们可以new一个struct,或者实...

2019-11-12 22:28:01 242 0

原创 golang依赖注入——wire

最近在做golang的框架,发现golang同样需要类似java中spring一样的ioc依赖注入框架。 如果项目规模小的情况下,是否有依赖注入框架问题不大,但是当项目变大之后,有一个合适的依赖注入框架是十分必要的。 通过调研,了解到的golang中常用的依赖注入框架主要有 inject di...

2019-11-12 22:18:40 1475 0

原创 golang接口和多态的基本使用

首先简单的描述一下golang中的struct interface的作用。 简单来说struct代表的是一种结构,比如user有name和age,那么这两个属性就在struct中。而一个struct拥有什么样的行为需要有对应的方法来支持。 type user struct{ Name...

2019-11-06 23:06:34 162 0

原创 vgo的基本使用

1、新建文件夹 go mod init test 2、查看一下文件夹中多的内容,文件夹中会多出一个go.mod的文件 module test go 1.12 3、编写程序测试一下依赖,首先需要配置vgo的依赖 4、修改go.mod,添加一个protobuf的第三方库依赖 ...

2019-11-03 17:03:22 149 0

原创 spring-boot2.0配置mybatis多数据源,使用druid连接池

本文主要参考: https://blog.csdn.net/weixin_37664872/article/details/80088014 https://blog.csdn.net/qq_42685050/article/details/81451029 https://github.c...

2019-08-03 14:03:38 268 0

原创 gerrit3.0安装

本文主要参考如下几篇文章: https://blog.51cto.com/zengestudy/1771575 https://www.cnblogs.com/jiangzhaowei/p/7918489.html https://blog.csdn.net/mr_raptor/articl...

2019-07-31 00:34:22 1708 1

原创 java CyclicBarrier的使用

之前介绍了java中latch的主要作用和使用方法。本文主要介绍CyclicBarrier的使用方法。 首先Barrier(栅栏)是用来做线程间控制的,它能够等待指定数目的线程都准备好后,再执行一些操作(当然也可以在这些线程前做操作,这取决于什么使用调用barrier的await方法)。 ...

2019-06-11 13:54:57 396 1

原创 java latch闭锁基本使用(结合future)

java闭锁用于多个线程共同执行后,统一执行一个动作。比如:多个线程执行计算操作,最后汇总到同一个线程执行汇总计算。需要注意的是,java中的闭锁是仅一次的。当闭锁打开后就会统一执行下面的动作。 下面简单的举一个例子: worker线程进行工作,boss线程等到所有woker工作完成后,检查工...

2019-06-09 14:36:57 464 0

原创 setDefaultUncaughtExceptionHandler捕获没有处理的异常

今天在看canal源码的时候发现了一个写法。是这样的 package com.example.demo.canalStudy; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class HandleUncau...

2019-04-07 22:51:34 1085 0

原创 kettle写入hadoop中——AccessControlException

本文主要介绍如何通过kettle写入到hdfs中,同时提供一个简单的demo。 好,下面上货。 1、新建一个转换,如下图: 2、执行转换,查看结果:   uuid;uuid2 a2d5022e-0ace-4978-bc01-82a46025078f;515n2b280cij7 5c...

2018-12-04 08:10:14 874 0

原创 kettle连接cdh——读取hdfs中的数据

目前pentaho——kettle已经到了8.1的版本了,本文主要介绍如何利用kettle进行大数据处理。 好,下面上货。 1、下载shims,简单的说这个shim可以理解成针对不同cdh的版本的插件,具体下载地址在这里: 我用的是cdh510. https://sourceforge.n...

2018-12-03 00:16:55 2301 1

原创 spark学习(五)——分区数据

spark在处理的数据在内部是分partition的。 除非是在本地新建的list数组才需要使用parallelize。保存在hdfs中的文件,在使用spark处理的时候是默认分partition的。 我们可以使用getNumPartitions()获取当前rdd的partition的信息。 ...

2018-12-01 10:12:34 1641 0

原创 spark1.6学习(四)——计算pv和uv的例子

本文主要介绍如何通过spark进行pv和uv的计算。一般我们经常会计算pv和uv,那么我们计算pv和uv的时候是不是性能最优的呢?   好,我们开始看例子: 首先看一下数据: {"flag":"sendTemplateMessage","...

2018-11-29 01:56:39 1122 0

原创 spark1.6学习(三)——spark-submit问题INFO yarn.Client: Application report for application_1540605321820_0009

spark-submit 当换成yarn-client方式运行的时候会一直出现提示: 18/10/27 02:06:50 INFO yarn.Client: Application report for application_1540605321820_0009 (state: ACCEPTE...

2018-11-28 22:37:04 2419 0

原创 spark1.6学习(三)——spark-submit

参考: http://spark.apache.org/docs/1.6.0/submitting-applications.html#master-urls 这里详细介绍了一下spark-submit的参数使用和功能,需要看一下。 这里遇到问题,当换成yarn-client方式运行的时候会一...

2018-11-28 00:10:59 388 0

原创 spark1.6学习(二)——独立的python程序运行pyspark

本篇文章主要介绍如何使用独立的python程序运行pyspark。 一般,我们在测试的时候可以使用pyspark进行简单的交互,但是在线上具体使用的程序,我们需要使用一个完整的pyspark程序的。 主要参考:http://spark.apache.org/docs/1.6.0/quick-s...

2018-11-28 00:08:37 1399 0

原创 spark1.6学习(一)——shell端简单使用demo

本文主要介绍spark的基本操作,以shell端的操作为主,介绍通过pyspark在shell端操作时需要注意的一些点。 主要参考:http://spark.apache.org/docs/1.6.0/quick-start.html 1、首先创建文件 aa:bb:cc:dd ee:ff:...

2018-11-28 00:04:52 550 0

原创 pentaho8.1安装

本文主要介绍pentaho8.1的安装过程,重点介绍pentaho-server的安装。 针对pentaho在线上使用必须使用mysql作为数据源,我们本次就以mysql作为数据源。 下载地址:https://community.hitachivantara.com/docs/DOC-1009...

2018-11-03 18:10:47 2580 0

原创 pentaho隐藏登录按钮下的“Login as an evaluator”

&lt;login-show-sample-users-hint&gt;false&lt;/login-show-sample-users-hint&gt; 在pentaho的配置文件中 pentaho-server/pentaho-solutions/syst...

2018-11-03 17:48:13 483 0

原创 pig基本语法——order by limit

主要参考: https://book.itxueyuan.com/3b7D/XDBe   基础数据: ============================================== [root@cdh1 data]# cat demodata xiaoxiao,12,12...

2018-09-16 19:25:05 716 0

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