自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(112)
  • 收藏
  • 关注

转载 javaagent使用指南

今天打算写一下 Javaagent,一开始我对它的概念也比较陌生,后来在别人口中听到 字节码插桩,bTrace,Arthas后面才逐渐了解到Java还提供了这么个工具。JVM启动前静态InstrumentJavaagent 是什么?Javaagent是java命令的一个参数。参数 javaagent 可以用于指定一个 jar 包,并且对该 java 包有2个要求:这个 jar ...

2019-08-17 15:51:00 336

转载 javassist使用全解析

Java 字节码以二进制的形式存储在 .class 文件中,每一个 .class 文件包含一个 Java 类或接口。Javaassist 就是一个用来 处理 Java 字节码的类库。它可以在一个已经编译好的类中添加新的方法,或者是修改已有的方法,并且不需要对字节码方面有深入的了解。同时也可以去生成一个新的类对象,通过完全手动的方式。1. 使用 Javassist 创建一个 class ...

2019-08-11 19:25:00 258

转载 Java中的魔法类-Unsafe

Unsafe是位于sun.misc包下的一个类,主要提供一些用于执行低级别、不安全操作的方法,如直接访问系统内存资源、自主管理内存资源等,这些方法在提升Java运行效率、增强Java语言底层资源操作能力方面起到了很大的作用。但是,这个类的作者不希望我们使用它,因为我们虽然我们获取到了对底层的控制权,但是也增大了风险,安全性正是Java相对于C++/C的优势。因为该类在sun.misc包...

2019-08-11 14:15:00 300

转载 Caffeine Cache-高性能Java本地缓存组件

前面刚说到Guava Cache,他的优点是封装了get,put操作;提供线程安全的缓存操作;提供过期策略;提供回收策略;缓存监控。当缓存的数据超过最大值时,使用LRU算法替换。这一篇我们将要谈到一个新的本地缓存框架:Caffeine Cache。它也是站...

2019-06-15 19:26:00 1107

转载 Guava cache使用总结

缓存分为本地缓存和远端缓存。常见的远端缓存有Redis,MongoDB;本地缓存一般使用map的方式保存在本地内存中。一般我们在业务中操作缓存,都会操作缓存和数据源两部分。如:put数据时,先插入DB,再删除原来的缓存;ge数据时,先查缓存,命中则返回,没...

2019-06-13 00:34:00 324

转载 MySQL一键生成实体文件的神器-ginbro

Java转过来的同学对Mybatis的使用肯定不陌生,特别是对一堆表去生成相应的dao和entity的时候使用Mybatis generator所带来的感触,无比深刻。前面我们也讲过原生的数据库使用,讲过gorm的使用,无论是原生的还是第三方的数据库工具,都是需要我们手动的写struct和相应的CRUD的。今天说的这一款插件跟Java中的Mybatis generator一样,...

2019-06-11 21:20:00 508

转载 Viper-Go一站式配置管理工具

什么是ViperViper是一个方便Go语言应用程序处理配置信息的库。它可以处理多种格式的配置。它支持的特性:设置默认值从JSON、TOML、YAML、HCL和Java properties文件中读取配置数据可以监视配置文件的变动、重新读取配置文...

2019-06-07 00:09:00 488

转载 Go orm框架gorm学习

之前咱们学习过原生的Go连接MYSQL的方法,使用Go自带的"database/sql"数据库连接api,"github.com/go-sql-driver/mysql"MYSQL驱动,通过比较原生的写法去写sql和处理事务。目前开源界也有很多封装好的or...

2019-06-05 14:01:00 2381

转载 Storm初识(1)

在Storm集群中,有两类节点:主节点 master node 和工作节点 worker nodes。主节点运行着一个叫做Nimbus的守护进程。这个守护进程负责在集群中分发代码,为工作节点分配任务,并监控故障。Supervisor守护进程作为拓扑的一...

2019-05-27 23:13:00 91

转载 Go中的日志及第三方日志包logrus

有别的语言使用基础的同学工作中都会接触到日志的使用,Go中自然也有log相关的实现。Go log模块主要提供了3类接口,分别是 “Print 、Panic 、Fatal ”,对每一类接口其提供了三种调用方式,分别是 “Xxxx 、Xxxxln 、Xxxxf...

2019-05-26 15:37:00 1004

转载 Go中的异常处理

1. errors包Go 有一个预先定义的 error 接口类型 :type error interface { Error() string}错误值用来表示异常状态。Go也提供了一个包:errors,errors 包中有一个 errorStr...

2019-05-23 22:00:00 393

转载 新手必须掌握的Linux命令

1. 常用系统命令1.echo命令echo命令用于在终端输出字符串或变量提取后的值,格式为“echo [字符串 | $变量]”。[hadoop@hadoopmaster ~]$ echo $JAVA_HOME/usr/local/jdk[hado...

2019-05-22 23:22:00 194

转载 Go中sync包学习

前面刚讲到goroutine和channel,通过goroutine启动一个协程,通过channel的方式在多个goroutine中传递消息来保证并发安全。今天我们来学习sync包,这个包是Go提供的基础包,提供了锁的支持。但是Go官方给的建议是:不要以共...

2019-05-20 23:51:00 147

转载 Go中的并发编程和goroutine

并发编程对于任何语言来说都不是一件简单的事情。Go在设计之初主打高并发,为使用者提供了goroutine,使用的方式虽然简单,但是用好却不是那么容易,我们一起来学习Go中的并发编程。1. 并行和并发并行(parallel): 指在同一时刻,有多条指令在...

2019-05-18 17:08:00 225

转载 Go中配置文件读取的几种方式

日常开发中读取配置文件包含以下几种格式:json 格式字符串K=V 键值对xml 文件yml 格式文件toml 格式文件前面两种书写简单,解析过程也比较简单。xml形式书写比较累赘,yml是树形结构,为简化配置而生,toml是一种有着自己语...

2019-05-17 07:28:00 2127

转载 Go中的fmt几种输出的区别和格式化方式

在日常使用fmt包的过程中,各种眼花缭乱的print是否让你莫名的不知所措呢,更让你茫然的是各种格式化的占位符。。简直就是噩梦。今天就让我们来征服格式化输出,做一个会输出的Goer。fmt.Print有几个变种:Print: 输出到控制台,不接受任...

2019-05-11 17:30:00 912

转载 Go中的反射reflect

前面我们在学习到struct结构体的时候,因为结构体中的字段首字母大写,而我们想把json文件映射到该结构体上时,需要在在结构体字段后面加上json标签,表明结构体字段和json字段的映射关系。这其中就用到了反射的方式去获取标签,取出该标签对应的json字...

2019-05-11 08:57:00 227

转载 Go中的interface学习

学过Java的同学都知道在Java中接口更像是一种规范,用接口定义了一组方法,下面实现这个接口的类只管按照写好的方法名和返回值去实现就好,内部如何实现是各个方法自己的事情,接口本身不关注。另外Java中实现接口的类必须显式的声明实现了哪个接口: impl...

2019-04-24 21:46:00 284

转载 Go中的命名规范

1.命名规范1.1 Go是一门区分大小写的语言。命名规则涉及变量、常量、全局函数、结构、接口、方法等的命名。 Go语言从语法层面进行了以下限定:任何需要对外暴露的名字必须以大写字母开头,不需要对外暴露的则应该以小写字母开头。当命名(包括常量、变量、...

2019-04-22 23:39:00 3390

转载 Go中的结构体

前面我们或多或少的都使用了结构体这种数据结构,本身结构体也有很多特性,我们一一来看。结构体的作用是将一个或者多个任一类型的变量组合在一起的数据类型,类似于我们在Java中class的作用。在结构体重也可以嵌套结构体。结构体还可以有自己的方法。1.定义结...

2019-04-21 10:48:00 1139

转载 Go中的文件读写

在 Go 语言中,文件使用指向 os.File 类型的指针来表示的,也叫做文件句柄 。我们来看一下os包的使用方式。1.读取文件os包提供了两种打开文件的方法:Open(name string) (*File, error)func OpenFil...

2019-04-18 23:54:00 162

转载 Go包管理工具dep

dep是一个golang依赖管理工具,需要在Go 1.7及更高的版本中使用。1. 安装安装dep工具的方式有很多种,如果是mac电脑的话,只需要如下命令:brew install dep对于Linux和类Unix系统而言,我们还可以使用如下方式安...

2019-04-18 17:11:00 182

转载 SpringBoot中读取配置文件的几种方式

1.读取application文件在application.yml或者properties文件中添加:info: name: xiaoming age: 13 sex: 1读取方式如下:import org.springframew...

2019-04-16 23:57:00 162

转载 Go标准库--net/http学习

Go中对网络的支持提供了标准库,net包提供了可移植的网络I/O接口,包括TCP/IP、UDP、域名解析和Unix域socket。 http包提供了HTTP客户端和服务端的实现。 一般我们用http肯定多一些,下面来看一下http的使用方式。1. Pos...

2019-04-15 16:13:00 339

转载 Go连接MYSQL

Go原生提供了连接数据库操作的支持,在用 Golang进行开发的时候,如果需要在和数据库交互,则可以使用database/sql包。这是一个对关系型数据库的通用抽象,它提供了标准的、轻量的、面向行的接口。在Go中访问数据库需要用到sql.DB接口:它可以...

2019-04-10 17:07:00 299

转载 Go中的函数和闭包

函数参数和返回值的写法如果有多个参数是同一个类型,可以简略写:func testReturnFunc(v1,v2 int)(int,int) { x1 := 2 * v1 x2 := 3 * v2 return x1,x2}Go还支持...

2019-03-30 23:31:00 215

转载 Go中的指针

学Java以来,让程序员忽略了指针和内存地址这些概念,Java帮我们封装了对象,简化了对象引用之间的关系。在Go语言中,又帮我们回忆起这些概念。我们创建的每一个对象在内存中都有一个位置去存储,每个内存块都有一个地址表示当前位置,通常用十六进制表示,如0x...

2019-03-30 18:50:00 283

转载 Go中的字符串使用----strings和strconv

Go中的字符串操作字符串是工作中最常用的,值得我们专门的练习一下。在Go中使用strings包来操作字符串,这也是内置的包哈,不像Java中要么手写,要么引入common-lang 或者 别的第三方。另外涉及到字符串与其他类型之间的转换使用了strcon...

2019-03-24 18:50:00 416

转载 Go基础语法学习

Go语言基础Go是一门类似C的编译型语言,但是它的编译速度非常快。这门语言的关键字总共也就二十五个,比英文字母还少一个,这对于我们的学习来说就简单了很多。先让我们看一眼这些关键字都长什么样:下面列举了 Go 代码中会使用到的 25 个关键字或保留字:...

2019-03-17 15:09:00 81

转载 Scala集合(四)

1. 集合集合主要有三种:SequenceMapSetsequence是一种线性元素的集合,可能会是索引或者线性的(链表)。map是包含键值对的集合,就像Java的Map,set是包含无重复元素的集合。除了这三个主要的集合类之外,还...

2018-05-21 23:54:00 94

转载 Scala函数式编程(三)

Scala既是一门面向对象(OOP)语言,又是一门函数式编程(FP)语言。作为一门支持函数式编程的语言,Scala鼓励面向表达式编程(EOP)模型。简单来说,EOP中每个语句都有返回值。这一模式很明显,因为if/else语句就可以返回值:val res...

2018-05-21 23:27:00 169

转载 Scala类和对象(二)

1. 类和属性1.1 如何控制构造函数字段的可见性在Scala中:如果一个字段被声明为var, Scala会为该字段生成getter和setter方法。如果字段是val, Scala只生成getter方法。如果一个字段没有var或者v...

2018-05-19 15:02:00 145

转载 Scala基础语法学习(一)

1. val和var的区别val定义的是一个常量,无法改变其内容scala> val s = 0s: Int = 0scala> s = 2<console>:12: error: reassignment to val...

2018-05-07 23:15:00 271

转载 Zookeeper开源客户端Curator的使用

开源zk客户端-Curator创建会话:RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000,3);CuratorFramework client = CuratorFramewor...

2018-05-06 15:16:00 177

转载 zookeeper中的分布式一致性协议

1. zookeeper中的一致性协议-ZAB协议在深入了解ZK之前,相信很多同学都会认为ZK就是Paxos算法的一个实现。但事实上,ZK并没有完全采用Paxos算法,而是使用了一种称为ZooKeeper Atomic Broadcast(ZAB,Zo...

2018-05-04 23:10:00 105

转载 kafka消息的处理机制(五)

这一篇我们不在是探讨kafka的使用,前面几篇基本讲解了工作中的使用方式,基本api的使用还需要更深入的去钻研,多使用才会有提高。今天主要是探讨一下kafka的消息复制以及消息处理机制。1. broker的注册Kafka使用Zookeeper来...

2018-04-24 23:31:00 130

转载 Paxos算法原理

1.从ACID到CAP我们知道传统集中式系统中实现ACID是很简单的,在分布式环境中,涉及到不同的节点,节点内的ACID可以控制,那么节点间的ACID如何控制呢?构建一个可用性和一致性的分布系统成为难题,于是出现了CAP和BASE这样的理论。CAP...

2018-04-22 09:52:00 278

转载 kafka同步异步消费和消息的偏移量(四)

1. 消费者位置(consumer position)因为kafka服务端不保存消息的状态,所以消费端需要自己去做很多事情。我们每次调用poll()方法他总是返回已经保存在生产者队列中还未被消费者消费的消息。消息在每一个分区中都是顺序的,那么必然可以通...

2018-04-21 16:28:00 1164

转载 kafka客户端和服务端开发(三)

前面我们已经搭建了kafka的单机和集群环境,分别写了简单的实例代码,对于代码里面使用到的参数并没有做解释。下面我们来详细说一下各个参数的作用。1. 创建kafka生产者kafka生产者有3个必选的属性:bootstrap.servers...

2018-04-17 23:29:00 305

转载 Kafka集群模式安装(二)

我们来安装Kafka的集群模式,三台机器:192.168.131.128192.168.131.130192.168.131.131Kafka集群需要依赖zookeeper,所以需要先安装好zk。下载Kafka安装包: Kafka_2....

2018-04-16 23:02:00 123

空空如也

空空如也

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

TA关注的人

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