java技术圈 为您找到相关结果 41

maven手动安装远程仓库中找不到的jar到本地仓库

只需要使用一个maven命令即可: mvn install:install-file -Dfile=(jar本地地址)/root/IdeaProjects/keta-customer/lib/patchca-0.5.0.jar -DgroupId=com.github.bingoohuang(groupId) -DartifactId=(artifactId)patchca -Dversion=(version)0.5.0 -Dpackaging=jar 即可利用pom像普通情况一样使用,在项目里自由使用了 后来因需安装bairong jar 使用命令: mvn install:install-file -Dfile=/Users/daniel/Desktop/bsApi-2.3.5-sha...阅读全文

博文 2019-04-04 09:45:57 www.allocmem.com

http 协议的结束符 · Issue #34 · jinhailang/blog · GitHub

http 协议的结束符 突然想起很久之前一次面试,面试官问我,当请求头没有 content-length 时,怎么知道请求体结束了? http 的 header 和 body 之间空行分割的,又因为每个头部项是以 \r\n 作为结束符,所以,数据流中是以 \r\n\r\n 来分割解析请求头(响应头)与请求体(响应体)的。如下图所示: 那么怎么知道(请求体)响应体结束了呢? http 协议规定,响应头的字段 content-length 用来表示响应体长度大小,但是,有可能发送请求头时,并不能知道完整的响应体长度(比如当响应数据太大,服务端流式处理的情况),这时需要设置请求头Transfer-Encoding: chunked,使用数据块的方式传输,数据块格式如下图所示: 每个数据块分为两个部...阅读全文

博文 2020-04-24 13:28:31 github.com

简析超文本传输协议(HTTP,HyperText Transfer Protocol)

http 超文本传输协议(HTTP,HyperText Transfer Protocol) http request结构: request line: 请求行 包含请求的方法(如get,post) 请求资源路径(URL,URL总是以/开头,/就表示首页) HTTP协议版本号 request head: 其他重要请求信息 如服务器生成的response给浏览器的cookie,后面的请求携带在request head中(Cookie是由服务器创建的,然后通过response响应发送给客户端的一个键值对,session在服务端) authority:www.google.co.jp :method:GET :path:/search?q=cookie+session%E5%9C%A8body%E...阅读全文

博文 2019-04-04 09:52:53 www.allocmem.com

[转]更新GitHub上自己 Fork 的代码与原作者的项目进度一致

本文转载自(原文地址不详):http://blog.csdn.net/peterwanghao/article/details/49762479 在GitHub上我们会去fork别人的一个项目,这就在自己的Github上生成了一个与原作者项目互不影响的副本,自己可以将自己Github上的这个项目再clone到本地进行修改,修改后再push,只有自己Github上的项目会发生改变,而原作者项目并不会受影响,避免了原作者项目被污染。但经过一段时间, 有可能作者原来的代码变化很大, 你想接着在他最新的代码上修改, 这时你需要合并原作者的最新代码过来, 让你的项目变成最新的。 1、先克隆项目到本地: git clone https://github.com/iakuf/mojo cd mojo 2、...阅读全文

博文 2019-04-04 09:48:44 www.allocmem.com

kubernetes下用logstash代替efk中的fluentd

### 前言 目前我们的系统架构,从阿里云的docker compose迁移到了自建的kubernetes,而我们的日志系统也几经周折。从最开始的阿里云docker compose环境下的elk + kafka,使用了一段时间后由于老板觉得阿里云的kafka收费价格不怎么划算,并且线上服务器的资源吃紧,然后切换到了阿里云的日志服务。线上切换到kubernetes以后,又使用efk搜集了一段时间日志,后来发现fluentd搜集的日志存在一些延迟问题和准确性问题,并且变更配置搜集特定的日志时较为繁琐,于是准备把fluentd换为logstash + rabbit,期间对比了下redis,rabbit和kafka,最终选择了在用的自建的rabbit集群,由于近期事情较多,精力有限,此文只会阐述关...阅读全文

hammerspoon多屏焦点切换

最近为 mac 新弄了一个 4k 的外接屏,由于平时操作仅限于触控板,无鼠标人士。每次想把鼠标切换到外接屏上就得滑好几次触控板,甚是伤手! 通过不断的 google,终于发现一款神器:Hammerspoon 介绍Hammerspoon可以自定义Mac OS X的快捷键(例如Command+Shift+h)以实现多类操作,我个人主要将其用于窗口管理(比moom for mac更加高效)与应用启动(比alfred for mac更加高效)。 Hammerspoon: https://www.hammerspoon.org/ Github: https://github.com/Hammerspoon/hammerspoon Hammerspoon API Documentation: https...阅读全文

使用pandoc xelatex转换md文档为pdf

使用pandoc xelatex转换md文档为pdf Author anteoy@gmail.com | Posted 2018-02-16 23:33:00 环境 系统为ubuntu 16.04,其他linux发行版理论上可参考官方安装文档 过程 安装pandoc sudo apt install pandoc 安装texlive-xetex(解决不能转换中文问题) sudo apt-get install texlive-xetex 查看系统已安装的中文字体 fc-list :lang=zh /usr/share/fonts/truetype/wqy/wqy-microhei.ttc: 文泉驿等宽微米黑,文泉驛等寬微米黑,WenQuanYi Micro Hei Mono:style=Re...阅读全文

博文 2019-04-04 09:56:14 www.allocmem.com

kubernetes下搭建harbor企业级docker仓库

前言 harbor是由vmware开源的企业级docker repository,提供私有仓库,安全认证,权限管理,漏洞扫描及仓库复制等多种功能,因为之前搭建的harbor在线上环境存在各种各样的问题(之前搭建的方式目前发现已被官方宣布弃用https://github.com/vmware/harbor/blob/master/docs/kubernetes_deployment.md,如ui显示不正常,权限认证不正常),于是近期抽空用官方推荐的helm方式对harbor进行重新部署,并替换掉线上harbor 准备 Kubernetes集群1.8+ Kubernetes Ingress Controller已启用(这里我们选用的traefik-ingress) kubectl 客户端 1.8...阅读全文

博文 2019-04-04 09:56:27 www.allocmem.com

再探go modules:使用与细节 - apocelipes

还有半个月go1.12就要发布了。这是首个将go modules纳入正式支持的稳定版本。 距离go modules随着go1.11正式面向广大开发者进行体验也已经过去了半年,这段时间go modules也发生了一些变化,借此机会我想再次深入探讨go modules的使用,同时对这个新生包管理方案做一些思考。 本文索引 版本控制和语义化版本 控制包版本 语义化版本 何谓语义化 为何使用语义化版本 语义化版本带来的影响 一点思考 replace的限制 本地包替换 顶层依赖与间接依赖 限制 发布go modules go.sum不是锁文件 使用vendor目录 注意包的版本 小结 版本控制和语义化版本 包的版本控制总是一个包管理器绕不开的古老话题,自然对于我们的go modules也是这样。 我们...阅读全文

博文 2019-05-24 07:59:15 博客园

kubernetes下用logstash代替efk中的fluentd

前言 目前我们的系统架构,从阿里云的docker compose迁移到了自建的kubernetes,而我们的日志系统也几经周折。从最开始的阿里云docker compose环境下的elk + kafka,使用了一段时间后由于老板觉得阿里云的kafka收费价格不怎么划算,并且线上服务器的资源吃紧,然后切换到了阿里云的日志服务。线上切换到kubernetes以后,又使用efk搜集了一段时间日志,后来发现fluentd搜集的日志存在一些延迟问题和准确性问题,并且变更配置搜集特定的日志时较为繁琐,于是准备把fluentd换为logstash + rabbit,期间对比了下redis,rabbit和kafka,最终选择了在用的自建的rabbit集群,由于近期事情较多,精力有限,此文只会阐述关于logs...阅读全文

博文 2019-04-04 09:55:59 www.allocmem.com

Go如何精确计算小数-Decimal研究

##1 浮点数为什么不精确先看两个case // case1: 135.90*100 ====// float32var f1 float32 = 135.90fmt.Println(f1 * 100) // output:13589.999// float64var f2 float64 = 135.90fmt.Println(f2 * 100) // output:13590 浮点数在单精度下, 135.9*100即出现了偏差, 双精度下结果正确. // case2: 0.1 add 10 times ===// float32var f3 float32 = 0for i := 0; i < 10; i++ { f3 += 0.1}fmt.Println(f3) //output:1....阅读全文

博文 2019-08-05 07:58:27 Tidb MyDecimal问题 | hello

golang包管理解决之道——go modules初探 - apocelipes

golang的包管理是一直是为人诟病之处,从golang1.5引入的vendor机制,到准官方工具dep,目前为止还没一个简便的解决方案。 不过现在go modules随着golang1.11的发布而和我们见面了,这是官方提倡的新的包管理,乃至项目管理机制,可以不再需要GOPATH的存在。 go module的初始化 现在modules机制仍在早期阶段,所以golang提供了一个环境变量“GO111MODULE”,默认值为auto,如果当前目录里有go.mod文件,就使用go modules,否则使用旧的GOPATH和vendor机制,因为在modules机制下go get只会下载go modules,这一行为会在以后版本中成为默认值,这里我们保持auto即可,如果你想直接使用modules...阅读全文

博文 2019-05-24 07:59:00 博客园

kubernetes下搭建harbor企业级docker仓库

### 前言 harbor是由vmware开源的企业级docker repository,提供私有仓库,安全认证,权限管理,漏洞扫描及仓库复制等多种功能,因为之前搭建的harbor在线上环境存在各种各样的问题(之前搭建的方式目前发现已被官方宣布弃用[https://github.com/vmware/harbor/blob/master/docs/kubernetes_deployment.md](https://github.com/vmware/harbor/blob/master/docs/kubernetes_deployment.md),如ui显示不正常,权限认证不正常),于是近期抽空用官方推荐的helm方式对harbor进行重新部署,并替换掉线上harbor ### 准备...阅读全文

分布式sql引擎原理分析-逻辑执行计划生成 - 云+社区

不管是传统数据库或者基于sql的分布式大数据分析工具,基本原理都是把一个sql转换成sql语法树(AST),通过对语法树的分析转换成执行计划。传统数据库会根据执行计划通过执行引擎并返回结果;而大数据sql分析工具,由于针对更大数据量而生,为了更好的扩展性、容错性和高可用,会把执行计划分成逻辑执行计划和物理执行计划,并且根据查询sql的特点切分逻辑计划,这样可以把分块的逻辑计划分配到更具扩展性的并行节点,最后根据逻辑执行计划转成物理执行计划进行查询。 本文档以当前流行的分布式大数据查询引擎Presto为切入点,分析一个query语句怎么生成为一个分段的逻辑计划。下图是当前流行大数据sql查询引擎(包括hive/sparksql),生成逻辑计划的过程:SQL引擎生成逻辑计划 从图中可以看到,当用...阅读全文

博文 2020-08-07 06:28:55 腾讯云

Go语言黑魔法

今天我要教大家一些无用技能,也可以叫它奇技淫巧或者黑魔法。用得好可以提升性能,用得不好就会招来恶魔,嘿嘿。黑魔法导论为了让大家在学习了基础黑魔法之后能有所悟,在必要的时候能创造出本文传授之外的属于自己的魔法,这里需要先给大家打好基础。学习Go语言黑魔法之前,需要先看清Go世界的本质,你才能获得像Neo一样的能力。在Go语言中,Slice本质是什么呢?是一个reflect.SliceHeader结构体和这个结构体中Data字段所指向的内存。String本质是什么呢?是一个reflect.StringHeader结构体和这个结构体所指向的内存。在Go语言中,指针的本质是什么呢?是unsafe.Pointer和uintptr。当你清楚了它们的本质之后,你就可以随意的玩弄它们,嘿嘿嘿。第一式 - 获...阅读全文

博文 2019-09-16 08:41:50 知乎

深度解析Java线程池的异常处理机制 · Issue #3 · aCoder2013/blog · GitHub

前言 今天小伙伴遇到个小问题,线程池提交的任务如果没有catch异常,那么会抛到哪里去,之前倒是没研究过,本着实事求是的原则,看了一下代码。 正文 小问题 考虑下面这段代码,有什么区别呢?你可以猜猜会不会有异常打出呢?如果打出来的话是在哪里?: ExecutorService threadPool = Executors.newFixedThreadPool(1); threadPool.submit(() -> { Object obj = null; System.out.println(obj.toString()); }); threadPool.execute(() -> { Object obj = null; System.out.println(obj.toString())...阅读全文

博文 2019-12-18 06:35:40 github.com

[译] 如何杀死一个进程和它的所有子进程

文地址:Killing a process and all of its descendants原文作者:igor_sarcevic译文出自:掘金翻译计划本文永久链接:https://github.com/xitu/gold-miner/blob/master/TODO1/killing-a-process-and-all-of-its-descendants.md译者:江五渣校对者:TokenJan,portandbridge如何杀死一个进程和它的所有子进程在类 Unix 系统中杀死进程比预期中更棘手。上周我在调试一个在 Semaphore 中终止作业的问题。更具体地说,这是一个有关于在作业中终止正在运行的进程的问题。以下是我从中学到的要点:类 Unix 操作系统有着复杂的进程间关系:父子...阅读全文

Maven提高篇系列之(五)——处理依赖冲突 - 无知者云

这是一个Maven提高篇的系列,包含有以下文章: Maven提高篇系列之(一)——多模块 vs 继承 Maven提高篇系列之(二)——配置Plugin到某个Phase(以Selenium集成测试为例) Maven提高篇系列之(三)——使用自己的Repository(Nexus) Maven提高篇系列之(四)——使用Profile Maven提高篇系列之(五)——处理依赖冲突 Maven提高篇系列之(六)——编写自己的Plugin(本系列完) 在本系列的上一篇文章中,我们讲到了如何使用Profile,在本文中,我们将讲到如何处理Maven的依赖冲突。 不知道你在使用Maven时是否遇到过诸如"NoSuchMethodError"或"ClassNotFoundException"之类的问题,甚至...阅读全文

博文 2020-05-22 12:39:36 博客园

超好用的自带火焰图的 Java 性能分析工具 Async

如果你经常遇到 Java 线上性能问题束手无策,看着线上服务 CPU 飙升一筹莫展,发现内存不断泄露满脸茫然。别慌,这里有一款低开销、自带火焰图、让你大呼好用的 Java 性能分析工具 - async-profiler。 最近 Arthas 性能分析工具上线了火焰图分析功能,Arthas 使用 async-profiler 生成 CPU/内存火焰图进行性能分析,弥补了之前内存分析的不足。在 Arthas 上使用还是比较方便的,使用方式可以看官方文档。这篇文章介绍 async-profiler 相关内容。 Arthas 火焰图官方文档:alibaba.github.io/arthas/prof… 如果你想了解更多 Arthas 信息,可以参考之前文章:Arthas - Java 线上问题定位处...阅读全文

博文 2021-04-01 12:21:30 profiler 了解一下

ES多个字段group by操作_-阿布-的博客

以下操作基于es6.8 第一种方式 这种方式查询出来的数据不是扁平化的,而是一层套一层的,比如字段一套字段二。 GET 索引name/索引type/_search { "size": 0, "aggregations": { "字段一的结果命名": { "terms": { "field": "要group的字段" }, "aggregations": { "字段二的结果命名": { "terms": { "field": "要group的字段" } } } } } } 结果,one下面的buckets里面是two,每个two下面有自己的bukets,就是two的值和count。 java代码实现 public void demo1(RestHighLevelClient client) {...阅读全文

博文 2022-07-11 12:31:54 CSDN博客_es多字段聚合

Druid SqlParser理解及使用入门 - __lay

以前的项目中很少去思考SQL解析这个事情,即使在saas系统或者分库分表的时候有涉及到也会有专门的处理方案,这些方案也对使用者隐藏了实现细节。 而最近的这个数据项目里面却频繁涉及到了对SQL的处理,原来只是简单地了解Druid的SqlParser模块就可以解决,慢慢地问题变得越来越复杂,直到某天改动自己写的SQL处理的代码很痛苦的时候,意识到似乎有必要更加地了解一下相关的内容才行。 在了解学习的过程中,发现学习使用SqlParser还是得先了解ast(抽象语法树)这个概念,一搜索相关内容要么是编译原理相关的知识,要么是JavaScript的示例,光看Druid提供的SqlParser相关的Wiki文档又似懂非懂,不知道从哪里下手。 不管怎么样,看了不少碎片化的相关内容以后也收获了一些东西,这...阅读全文

博文 2020-08-10 03:49:36 博客园

Redis事务及CAS(Check-And

Redis事务在web/activity中见过事务机制保证发券环节对券码存量校验,这是典型的并发、读写操作的实例。 Redis的事务机制Transaction通过四个命令来完成:MULTI, EXEC, DISCARD and WATCH,建议精读链接文章对Redis事务机制有详细介绍。 Redis事务机制特性 事务(transaction)的定义从multi开始,到exec结束。 同一个事务内的多个命令,具有原子性,不会被打断 It can never happen that a request issued by another client is served in the middle of the execution of a Redis transaction. This gua...阅读全文

博文 2022-11-02 03:08:28 Set)机制 | 小武的博客

Mac OS 终端利器 iTerm2 - 田园里的蟋蟀

之前一直使用 Mac OS 自带的终端,用起来虽然有些不太方便,但总体来说还是可以接受的,是有想换个终端的想法,然后今天偶然看到一个终端利器 iTerm2,发现真的很强大,也非常的好用,按照网上配置了主题什么的,还是有些坑的,这边再记录下,以便后面查阅。 1. 安装 iTerm2 下载地址:https://www.iterm2.com/downloads.html 下载的是压缩文件,解压后是执行程序文件,你可以直接双击,或者直接将它拖到 Applications 目录下。 或者你可以直接使用 Homebrew 进行安装: $ brew cask install iterm2 2. 配置 iTerm2 主题 iTerm2 最常用的主题是 Solarized Dark theme,下载地址:ht...阅读全文

博文 2020-04-08 03:07:14 博客园

Git恢复之前版本的两种方法reset、revert(图文详解)_游笑天涯

2019/7/27 修改更新 一、问题描述 在利用github实现多人合作程序开发的过程中,我们有时会出现错误提交的情况,此时我们希望能撤销提交操作,让程序回到提交前的样子,本文总结了两种解决方法:回退(reset)、反做(revert)。 二、背景知识 git的版本管理,及HEAD的理解 使用git的每次提交,Git都会自动把它们串成一条时间线,这条时间线就是一个分支。如果没有新建分支,那么只有一条时间线,即只有一个分支,在Git里,这个分支叫主分支,即master分支。有一个HEAD指针指向当前分支(只有一个分支的情况下会指向master,而master是指向最新提交)。每个版本都会有自己的版本信息,如特有的版本号、版本名等。如下图,假设只有一个分支: 三、解决方法 方法一:git re...阅读全文

博文 2020-07-21 12:51:38 CSDN博客_git revert

JS异步编程之Promise详解和使用总结

前言 Javascript异步编程可以算是JS的难点之一。下面就异步编程方法之一的Promise进行详细介绍和总结。但说到Promise之前,我会简单提一下什么是JS异步和回调函数。 JS异步 JS异步是指在进行某些需要耗时不会立即返回结果的操作时,不会阻塞后面的操作,一旦该耗时的操作完成时,则会通知需要调用其结果的函数来做后续处理。这是一种异步非阻塞的操作,也就是说任务的排列顺序和执行任务是不一致的。 回调函数 和同步操作不同,异步操作即不会立即返回结果的操作(如发起网络请求,下载文件,操作数据库等)。如果我们后续的函数需要之前返回的结果,又怎样使之前的异步操作在其完成时通知到后续函数来执行呢? 通常,我们可以将这个函数先定义,存储在内存中,将其当做参数传入之前的异步操作函数中,等异步操作...阅读全文

博文 2021-08-29 03:14:21 juejin.cn

Golang 泛型初探

Golang 的泛型实现已经正式合并到 master 分支上啦,之后也会在 master 分支上进行开发,那么作为期待这个 feature 许久的 gopher,也想第一时间看看到底是如何实现的。语法这里不过多讲解泛型的语法,具体可以参考一下 https://github.com/golang/go/issues/43651 这个 issue。简单来说,在 struct 和 func 的名字后面可以加一个 [] 里面包含泛型的名字和限制条件,比如:123type container[T any] struct{ elem T}any 是个特殊的关键字,表示所有类型都可以。示例程序这里我们写一个示例程序来编译成汇编,来看看泛型到底是怎么实现的:1234567891011121314151617...阅读全文

博文 2021-08-18 06:18:24 Pure White

大数据实用组件Hudi--实现管理大型分析数据集在HDFS上的存储 - 云+社区

问题导读 1.什么是Hudi? 2.Hudi对HDFS可以实现哪些操作? 3.Hudi与其它组件对比有哪些特点? 前两天我们About云群大佬公司想了解Hudi ,并上线使用。Hudi 或许大家了解的比较少,这里给大家介绍下Hudi这个非常实用和有潜力的组件。 Hudi是在HDFS的基础上,对HDFS的管理和操作。支持在Hadoop上执行upserts/insert/delete操作。这里大家可能觉得比较抽象,那么它到底解决了哪些问题? Hudi解决了我们那些痛点 1.实时获取新增数据 你是否遇到过这样的问题,使用Sqoop获取Mysql日志或则数据,然后将新增数据迁移到Hive或则HDFS。对于新增的数据,有不少公司确实是这么做的,比较高级点的,通过Shell调用Sqoop迁移数据实现自动...阅读全文

博文 2022-03-23 12:52:09 腾讯云

Kafka消费者 之 指定位移消费 - 腾讯云开发者社区

每一个成功人士的背后,必定曾经做出过勇敢而又孤独的决定。放弃不难,但坚持很酷~由于消费者模块的知识涉及太多,所以决定先按模块来整理知识,最后再进行知识模块汇总。今天学习一下消费者如何指定位移消费。一、auto.offset.reset值详解在 Kafka 中,每当消费者组内的消费者查找不到所记录的消费位移或发生位移越界时,就会根据消费者客户端参数 auto.offset.reset 的配置来决定从何处开始进行消费,这个参数的默认值为 “latest” 。auto.offset.reset 的值可以为 earliest、latest 和 none 。关于 earliest 和 latest 的解释,官方描述的太简单,各含义在真实情况如下所示:earliest :当各分区下存在已提交的 offs...阅读全文

博文 2023-02-24 02:19:34 腾讯云

高性能无锁并发框架Disruptor,太强了

Disruptor是一个开源框架,研发的初衷是为了解决高并发下队列锁的问题,最早由LMAX提出并使用,能够在无锁的情况下实现队列的并发操作,并号称能够在一个线程里每秒处理6百万笔订单官网:http://lmax-exchange.github.io/disruptor/目前,包括Apache Storm、Camel、Log4j2在内的很多知名项目都应用了Disruptor以获取高性能为什么会产生Disruptor框架「目前Java内置队列保证线程安全的方式:」ArrayBlockingQueue:基于数组形式的队列,通过加锁的方式,来保证多线程情况下数据的安全;LinkedBlockingQueue:基于链表形式的队列,也通过加锁的方式,来保证多线程情况下数据的安全;ConcurrentLi...阅读全文

博文 2023-02-02 12:22:37 知乎

git 合并指定commit(骚操作)

lihouyi 2天前 Git 前端 Git从安装到基本使用(保姆教程) Git使用保姆级教程,详细介绍了Git从下载到使用全过程,看完必能够初步学会,学不会评论区嘴我几句,我给你道歉!供初学者学习与参考! 1628 7 1 Nathaniell 2天前 Git git-理解git-reset-HEAD命令 git-理解git-reset-HEAD命令 理解git reset hard HEAD^ 的使用场景 距离最近一次提交后对工作区若干文件(目录下文件)内容做了改动,且没有新增文件,因此这些文件都是被 984 点赞 评论 所见忧怜 1天前 前端 Git Git 保姆级使用方法(mac版) 小白必看 Git 使用方法(mac版) 安装 1.先去官网下载软件并安装到电脑使用流程 网址:htt...阅读全文

博文 2023-06-19 02:30:55 掘金