- 博客(636)
- 资源 (36)
- 收藏
- 关注
原创 golang--sort比较大小
在golang中比较一个数据中结构体的大小,可以使用如下的方式:实现Swap Len Less三个方法即可。下面直接上货:type T []tttype tt struct { roomId int64 score float64 gameMin float64}func (t T) Swap(i, j int) { t[i], t[j] = t...
2020-01-13 17:18:55
2376
原创 golang 定时器封装——支持超时和函数自定义
如标题,封装一个golang的定时器,能够设置超时时间和定时器的interval。开启定时器后使用一个新的goroutine进行倒计时操作。好,下面上货。package commonimport ( "context" "fmt" "github.com/google/uuid" "go.uber.org/atomic" "time")const ( STOP ...
2020-01-07 12:15:34
1428
原创 golang定时器实现
golang定时器,需求是能够在指定时间后停止。或某种条件出发停止。https://golang.google.cn/pkg/time/#example_Tick好,下面上货。package mainimport ( "context" "fmt" "sync" "time")func main() { fmt.Println(123) go goClock...
2020-01-07 10:52:49
933
原创 etcd clientv3的基本使用
本文主要介绍etcd 的clientv3的基本使用。在介绍之前,需要了解到的是v3版本的client和etcdctrl使用的是不通的存储空间,所以说不能通过etcdctl命令去访问client写入的数据,他们时间是存储隔离的。好,下面上货。package mainimport ( "context" "fmt" "github.com/google/uuid" "go....
2019-12-30 15:42:16
5118
原创 goreman搭建etcd——分布式
本文主要介绍如何使用goreman搭建etcd的本地伪分布式。首先需要了解goreman的使用,一个能够根据指定文件启动多个进程的工具。参考这里:https://github.com/mattn/goreman好,下面上货。主要参考:https://github.com/etcd-io/etcdhttps://github.com/etcd-io/etcd/bl...
2019-12-27 17:32:24
3138
原创 etcd单点安装
搭建etcd单点首先在github上下载最新的稳定的etcdhttps://github.com/etcd-io/etcd/releases下载完成后解压,安装即可。然后解压并且配置环境变量unzip etcd-v3.8xx.zipmv etcd-v3.8 /usr/local设置环境变量export ETCD_HOME=/usr/local/etcd-v3...
2019-12-27 17:26:12
1186
原创 etcd与zookeeper对比
从github中了解到ectd能做什么,以及etcd在分布式系统中的关键作用。主要参考:https://github.com/etcd-io/etcd/blob/master/Documentation/learning/why.md从上面的文章中我总结出的关键内容如下:zookeeper和etcd的区别,优缺点,为什么?ZooKeeper solves the sa...
2019-12-27 17:19:07
2076
原创 golang引用自定义模块(类似java的maven)——github版
在golang中,可以通过 go mod的mod文件中添加依赖,依赖其他模块。这些模块既可以是来自第三方的模块,也可以是来自自己的模块。例如:下面代码的含义是 模块foolDealer 依赖模块 github.com/google/wire 和 github.com/wild46cat/golibmodule foolDealergo 1.13require github...
2019-12-25 16:42:53
3610
原创 gin 跨域问题
在使用gin框架的时候需要处理跨域问题。下面是具体的解决方案。func main() { r := gin.Default() r.Use(Cors())}func Cors() gin.HandlerFunc { return func(c *gin.Context) { method := c.Request.Method //请求方法...
2019-12-19 11:02:46
1637
原创 go配置文件参数被执行shell命令覆盖
经常会有这样的需求,就是在执行shell脚本构建程序的时候,希望能够在shell中指定某些配置文件的值。也就是说,shell命令中的优先级要高于配置文件的优先级。configor(https://github.com/jinzhu/configor)也只支持的,看下面的脚本cd ../srcgo build -o ../maincd ../CONFIGOR_ENV=test ...
2019-12-16 23:25:06
409
原创 go配置文件区分环境信息
继续上一篇文章介绍的https://github.com/jinzhu/configor,我们现在讨论如何隔离各个环境的配置文件。简单的说,我们在开发环境,生产环境和测试环境使用的配置文件应该是不同的。那么configor是如何处理这个问题呢?好,下面上货。1、如果本地执行(使用ide时)使用指定文件例如配置文件是config.yml 那么,会读取config.yml...
2019-12-16 23:20:50
3112
原创 go-configor配置文件支持热加载
在编写go程序的时候我们加载配置有多中方式,比较常用的还是配置文件。我们需要配置文件能够热加载(当配置发生变化后)不用重新启动程序,就能够使配置生效。我们采用的是开源的配置文件方式https://github.com/jinzhu/configor好,下面上货。package configimport ( "fmt" "github.com/jinzhu/confi...
2019-12-16 23:15:10
1195
原创 spring-namespace实现自己的自定义标签类
这篇文章介绍的是如何通过spring namespace的方式进行bean的配置最终要达到的目的如下:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org...
2019-12-10 16:55:21
591
原创 spring-namespace自定义命名空间简介
我最开始是通过sharding-spwhere这个分库中间件知道,在做中间件的时候,最好是使用这种spring-namespace的方式进行配置。之后,在比较流行了一些java中间件中都会发现spring-namespace的影子,比如dubbo中的xml配置文件 <dubbo:application name="demo-provider"/> <dubbo:r...
2019-12-10 16:46:12
1001
原创 golang中context使用——WithTimeout和WithDeadline
程序和上一篇的withCancel是类似的,只是创建子context的方式不同,这里使用的是withTimeout和WithDeadline的方式。下面,上代码:package mainimport ( "context" "errors" "fmt" "time")var c = 1func doSome(i int) error { c++ fmt.Prin...
2019-12-07 03:12:42
5443
2
原创 golang中context基本使用withcancel
用一个简单的程序介绍一下withcancel的context,我们一般写goroutine的时候会在里面做一个for{},同时在for的里面还会做一个select{}判断接收当前的chan,不同的chan做不同的动作。context也是利用了这样的结构,context提供了取消函数,cancelFunc可以随时终止goroutine。方式goroutine中的for循环一直循环下去。p...
2019-12-07 03:03:47
9500
原创 golang中context的简介
本文主要参考官方介绍https://blog.golang.org/context实用的例子http://www.gorillatoolkit.org/pkg/context说明文章https://www.cnblogs.com/qcrao-2018/p/11007503.html其中我认为context需要注意的是下面的内容:在官方博客里,对于使用 context...
2019-12-07 02:43:30
353
原创 golang struct转化成map
常见的struct转化可以通过json先转换成字符串,然后再转换成map对象。现在介绍的反射的方式,其中需要注意的是,反射不能够获取struct中没有被暴露出的变量(小写开头的变量)。好,下面上货。package demoimport ( "fmt" "reflect" "testing" "time")type CommonObj struct { Name ...
2019-11-22 01:02:48
3839
原创 golang继承——接口父类子类
从面向对象的角度上看,总会有一些使用子类不想做,希望父类去做的事情,在java这样的纯面向对象的语言中,方法就是使用父类和子类,子类通过继承父类的方法,实现子类自己的属性,如果没有某个方法没有经过子类重写,那么这个方法通过子类调用时,就会调用父类的方法。在go中也有这样的机制。下面是具体的实现代码。简单的说就子类能够按照父类的方法框架来设计,同时父类还把一些子类自身的个性化的方法进行了抽象...
2019-11-21 02:58:36
5573
原创 golang kafka客户端实现
最近在弄golang框架的事情,连接kafka,目前采用的是sarama进行连接,开发测试是ok的,但是考虑到在生产环境中使用。sarama还是有些问题的,问题出在它的consumer上,不能够直接使用,需要进行简单的处理,首先是处理topic和groupid的问题。我们知道在kafka消费的时候,在同一个消费者组中是共同消费topic的,也就是说,后端服务能够共享的去消费topic中的内容,...
2019-11-21 02:32:14
2048
原创 golang反射——执行函数
在写golang框架的时候,免不了需要处理类似方法执行的问题,由于框架层对业务层的具体方法是不清楚了,只提供了基本的输入和输出格式,所以就需要使用一种方式,适配业务层的函数调用。golang提供了反射,其中最终要的两个内容是Type和Value。通过反射,我们可以new一个struct,或者实现赋值等操作。可以简单理解为使用另一种方式实现对程序的处理。说了这么多,本篇文章着重介绍如何使用g...
2019-11-12 22:28:01
2594
原创 golang依赖注入——wire
最近在做golang的框架,发现golang同样需要类似java中spring一样的ioc依赖注入框架。如果项目规模小的情况下,是否有依赖注入框架问题不大,但是当项目变大之后,有一个合适的依赖注入框架是十分必要的。通过调研,了解到的golang中常用的依赖注入框架主要有 inject dig等等。但是今天要介绍的是wire,一个编译期实现依赖注入的框架。好,下面上货。首先添加依赖...
2019-11-12 22:18:40
5384
原创 golang接口和多态的基本使用
首先简单的描述一下golang中的struct interface的作用。简单来说struct代表的是一种结构,比如user有name和age,那么这两个属性就在struct中。而一个struct拥有什么样的行为需要有对应的方法来支持。type user struct{ Name string Age int}比如上面的user结构体,如果想让user有其他的行为需...
2019-11-06 23:06:34
579
原创 vgo的基本使用
1、新建文件夹go mod init test2、查看一下文件夹中多的内容,文件夹中会多出一个go.mod的文件module testgo 1.123、编写程序测试一下依赖,首先需要配置vgo的依赖4、修改go.mod,添加一个protobuf的第三方库依赖module testrequire ( github.com/gogo/protobuf...
2019-11-03 17:03:22
858
原创 spring-boot2.0配置mybatis多数据源,使用druid连接池
本文主要参考:https://blog.csdn.net/weixin_37664872/article/details/80088014https://blog.csdn.net/qq_42685050/article/details/81451029https://github.com/alibaba/druid/wiki/DruidDataSource%E9%85%8D%E7%B...
2019-08-03 14:03:38
1168
原创 gerrit3.0安装
本文主要参考如下几篇文章:https://blog.51cto.com/zengestudy/1771575https://www.cnblogs.com/jiangzhaowei/p/7918489.htmlhttps://blog.csdn.net/mr_raptor/article/details/76164373https://blog.csdn.net/handsome_...
2019-07-31 00:34:22
4553
2
原创 java CyclicBarrier的使用
之前介绍了java中latch的主要作用和使用方法。本文主要介绍CyclicBarrier的使用方法。首先Barrier(栅栏)是用来做线程间控制的,它能够等待指定数目的线程都准备好后,再执行一些操作(当然也可以在这些线程前做操作,这取决于什么使用调用barrier的await方法)。好,下面以一个例子说明。有worker线程和workerleader线程,要求每3个worker...
2019-06-11 13:54:57
972
1
原创 java latch闭锁基本使用(结合future)
java闭锁用于多个线程共同执行后,统一执行一个动作。比如:多个线程执行计算操作,最后汇总到同一个线程执行汇总计算。需要注意的是,java中的闭锁是仅一次的。当闭锁打开后就会统一执行下面的动作。下面简单的举一个例子:worker线程进行工作,boss线程等到所有woker工作完成后,检查工作。思路是这样的,首先使用java中的CountDownLatch,每个worker线程工作完成后...
2019-06-09 14:36:57
2136
原创 setDefaultUncaughtExceptionHandler捕获没有处理的异常
今天在看canal源码的时候发现了一个写法。是这样的package com.example.demo.canalStudy;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class HandleUncaugthException { private static final Logger logg...
2019-04-07 22:51:34
4810
原创 kettle写入hadoop中——AccessControlException
本文主要介绍如何通过kettle写入到hdfs中,同时提供一个简单的demo。好,下面上货。1、新建一个转换,如下图:2、执行转换,查看结果: uuid;uuid2a2d5022e-0ace-4978-bc01-82a46025078f;515n2b280cij75cdf9c28-e587-43ea-a470-8653ebf4f635;1ccujkgiu3vdv1b...
2018-12-04 08:10:14
1388
原创 kettle连接cdh——读取hdfs中的数据
目前pentaho——kettle已经到了8.1的版本了,本文主要介绍如何利用kettle进行大数据处理。好,下面上货。1、下载shims,简单的说这个shim可以理解成针对不同cdh的版本的插件,具体下载地址在这里:我用的是cdh510.https://sourceforge.net/projects/pentaho/files/Pentaho%208.1/ 在下载的时候...
2018-12-03 00:16:55
4523
1
原创 spark学习(五)——分区数据
spark在处理的数据在内部是分partition的。除非是在本地新建的list数组才需要使用parallelize。保存在hdfs中的文件,在使用spark处理的时候是默认分partition的。我们可以使用getNumPartitions()获取当前rdd的partition的信息。通过glom()函数能够获取到分partition的rdd信息我们在处理数据的一般使用的map函...
2018-12-01 10:12:34
2111
原创 spark1.6学习(四)——计算pv和uv的例子
本文主要介绍如何通过spark进行pv和uv的计算。一般我们经常会计算pv和uv,那么我们计算pv和uv的时候是不是性能最优的呢? 好,我们开始看例子:首先看一下数据:{"flag":"sendTemplateMessage","actionType":"success","from":"sendTemplateMessage","openId":&q
2018-11-29 01:56:39
2289
原创 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: ACCEPTED)18/10/27 02:06:51 INFO yarn.Client: Application...
2018-11-28 22:37:04
6416
原创 spark1.6学习(三)——spark-submit
参考: http://spark.apache.org/docs/1.6.0/submitting-applications.html#master-urls这里详细介绍了一下spark-submit的参数使用和功能,需要看一下。这里遇到问题,当换成yarn-client方式运行的时候会一直出现提示:18/10/27 02:06:50 INFO yarn.Client: Applica...
2018-11-28 00:10:59
700
原创 spark1.6学习(二)——独立的python程序运行pyspark
本篇文章主要介绍如何使用独立的python程序运行pyspark。一般,我们在测试的时候可以使用pyspark进行简单的交互,但是在线上具体使用的程序,我们需要使用一个完整的pyspark程序的。主要参考:http://spark.apache.org/docs/1.6.0/quick-start.html好,下面上货。 首先是完整的程序,从hdfs中读取文件并且缓存下来,同时...
2018-11-28 00:08:37
2444
原创 spark1.6学习(一)——shell端简单使用demo
本文主要介绍spark的基本操作,以shell端的操作为主,介绍通过pyspark在shell端操作时需要注意的一些点。主要参考:http://spark.apache.org/docs/1.6.0/quick-start.html1、首先创建文件aa:bb:cc:ddee:ff:gg:hhii:kk:ll:mmnn:zz 2、进入pyspark的shell命令行(...
2018-11-28 00:04:52
1030
原创 pentaho8.1安装
本文主要介绍pentaho8.1的安装过程,重点介绍pentaho-server的安装。针对pentaho在线上使用必须使用mysql作为数据源,我们本次就以mysql作为数据源。下载地址:https://community.hitachivantara.com/docs/DOC-1009931-downloads好,下面上货。1、下载后有这些文件(能够直接解压缩执行,其中pent...
2018-11-03 18:10:47
3889
原创 pentaho隐藏登录按钮下的“Login as an evaluator”
<login-show-sample-users-hint>false</login-show-sample-users-hint>在pentaho的配置文件中pentaho-server/pentaho-solutions/system/pentaho.xml<login-show-sample-users-hint>false</login...
2018-11-03 17:48:13
908
原创 pig基本语法——order by limit
主要参考:https://book.itxueyuan.com/3b7D/XDBe 基础数据:==============================================[root@cdh1 data]# cat demodataxiaoxiao,12,12.1faaa,13,1.1fkjkj,12,12.1fddf,19,12.8fyouy...
2018-09-16 19:25:05
1247
androidListView下拉刷新Demo
2016-09-23
androidListView下拉刷新
2016-09-23
android ListView分页加载Demo
2016-09-22
Struts2+Spring+Hibernate+Maven框架整合
2016-07-26
JavaScript从入门到精通(第2版).pdf
2016-03-16
bootstrap图片瀑布布局 Masonry插件
2017-01-18
hadoop mapreduce helloworld 能调试
2016-12-14
hbase java api 访问 查询、分页
2016-11-24
hbase java api 访问 增加修改删除(一)
2016-11-23
java api 访问hbase demo(Maven)
2016-11-22
jquery-easyui-tree学习
2016-10-09
maven+springmvc+spring+mybatis框架V1.0
2016-09-29
android自定义ListView控件实现下拉刷新、分页加载、item点击
2016-09-27
android自定义ListView控件实现下拉刷新
2016-09-27
android自定义轮播控件基于ViewPager
2016-09-27
android自定义文字轮播控件基于ViewAnimator
2016-09-26
android自定义轮播控件基于ViewFlipper
2016-09-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人