自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux软件包安装

Linux 软件安装认识RPM包zip-3.0-11.el7.x86_64.rpmzip -3.0-11 .el7 .x86_64 .rpm软件包名: zip软件版本: 3.0-11发布版本(Release /6/7/8): el7 (Enterprise Linux 7) 表示软件包可以在 Red Hat 7.x,CentOS 7.x,CloudLinux 7.x 进行安装硬件平台: x86_64,适合的硬件平台noarch:说明这样的软件包可以在任何平台安装和运

2022-04-17 10:48:29 1373

原创 JavaCC的语法描述

基于JavaCC的语法描述只要为JavaCC描述"语句"、“表达式”、“函数调用” 这样的语法单位各自是由怎样的token序列构成的,就能够对该语法进行分析。例如,最简单的赋值表达式可以描述为 "符号" = "表达式" 的排列。换言之,如果存在 "符号" = "表达式" 表达式这样的排列,那就是赋值表达式。这个规则在 JavaCC 中表示成下面这样assign(): //定义赋值表达式,名字任取{}{ <IDENTIFIER> "=" expr() //<IDEN

2021-11-12 15:52:29 688

转载 javacc

JavaCC官方入门指南-概述解析器生成器之 JavaCC(1): JavaCC 准备篇编译原理之Javacc使用JavaCC是一个词法分析器和语法分析器的生成工具。其主要功能是通过用户给定的文法规则,生成一个纯Java语言编写的语法分析器。用户输入一段测试字符串,该分析器就能判断该字符串是否满足该文法的规则。检测合法性的同时,也可以生成该字符串的语法分析树。另外,该工具还能根据用户定义的模板文件生成对应的描述该语言的文档。通常所说的javacc指的是javacc.jar这个jar包,jar包中包含

2021-11-11 13:44:57 773

原创 图强连通分量

package com.xg.custom;import com.google.common.collect.Lists;import com.google.common.collect.Maps;import com.google.common.collect.Sets;import com.google.common.graph.*;import org.apache.commons.collections.CollectionUtils;import java.util.*;pub

2021-10-12 16:40:19 136

原创 docker swarm部署nexus3

docker swarm部署nexus3数据卷挂载nexus数据目录mkdir -p /usr/local/nexus3/chown -R 200 /usr/local/nexus3/创建overlay网络docker network create -d overlay platform添加nexus.host标签添加nexus.host标签,值为ljh2,配置文件可以通过标签设置部署节点docker node update ljh2 --label-add nexus.host=lj

2021-09-07 16:21:51 198

原创 docker swarm安装与配置jenkins

docker swarm安装与配置jenkins安装jenkins1.创建jenkins本地目标mkdir -p /usr/local/jenkinschmod -R 777 /usr/local/jenkins2.创建docker swarm配置文件jenkins绑定宿主机java、mavenversion: "3.6"services: jenkins: image: jenkins/jenkins ports: - "8080:8080"

2021-09-07 16:20:55 641

原创 docker swarm部署本地仓库registry与portainer

docker swarm部署本地仓库registry与portainerdocker swarm 2个节点ljh1 192.168.8.88 managerljh2 192.168.8.98 worker创建overlay网络docker network create -d overlay platform添加host标签docker node update ljh1 --label-add host=ljh1docker node update ljh2 --labe

2021-09-07 16:19:12 563

原创 Docker Swarm概念与基本用法

Docker Swarm概念与基本用法Docker Swarm,主要包含以下概念SwarmNodeStackServiceTaskLoad balancingSwarm:计算机集群(cluster)在用Docker连接后的状态。docker swarm命令可以创建、加入、离开一个集群Node:计算机节点,也可以认为是一个Docker节点,Node分为两类:Manager和WorkerStack:一组Service,默认情况下,一个Stack共用一个Network,相互可访问,与其它S

2021-09-07 16:18:05 395

转载 Java 日志框架解析

Java 日志框架解析https://zhuanlan.zhihu.com/p/24272450https://zhuanlan.zhihu.com/p/24275518https://www.cnblogs.com/chanshuyi/p/something_about_java_log_framework.htmlhttps://www.jianshu.com/p/7b5860be190fhttps://dzone.com/articles/how-configure-slf4j-differ

2021-09-07 16:15:08 322

转载 kafka 基本概念

kafka概要设计Kafka 在设计之初就需要考虑以下 个方面的问题吞吐量/延时消息持久化负载均衡和故障转移伸缩性吞吐量/延时通常来说,吞吐量是某种处理能力的最大值。而对于 Kafka ,它的吞吐量就是每秒能够处理的消息数或者每秒能够处理的字节数。很显然,我们自然希望消息引擎的吞吐越大越好消息引擎系统还有一个名为延时的性能指标。它衡量的是一段时间间隔,可能是发出某个操作与接收到操作响应(response )之间的时间,或者是在系统中导致某些物理变更的起始时刻与变更正式生效时刻之间的间隔。

2021-09-07 10:56:13 174

转载 kafka无消息丢失配置

kafka 常见问题问题1: Producer 端丢失数据Java版本 Producer 用户采用异步发送机制。KafkaProducer.send方法仅仅把消息放入缓冲区中,由一个专属IO线程负责从缓冲区中提取消息并封装进消息 batch中,然后发送出去。显然,这个过程中存在着数据丢失的窗口;若I/O线程发送之前 Producer 崩溃,则存储缓冲区中的消息全部丢失了。问题2: Producer 消息乱序问题假设客户端依次执行下面的语句发送两条消息到相同的分区:producer.send(rec

2021-09-06 16:02:58 953

转载 git rebase

Git rebasehttps://www.jianshu.com/p/4a8f4af4e803https://www.cnblogs.com/cangqinglang/p/12419568.htmlrebase在git中是一个非常有魅力的命令,使用得当会极大提高自己的工作效率;相反,如果乱用,会给团队中其他人带来麻烦。它的作用简要概括为:可以对某一段线性提交历史进行编辑、删除、复制、粘贴;因此,合理使用rebase命令可以使我们的提交历史干净、简洁!前提:不要通过rebase对任何已经提交到公共仓

2021-08-13 13:58:49 119

原创 第11章 scala的继承关系

第11章 scala的继承关系1 scala的类继承关系scala继承关系的顶部是Any(源码位于src\library-aux\scala\Any.scala)类,定了如下方法final def ==(that: Any): Boolean = this equals thatfinal def != (that: Any): Boolean = !(this == that)def equals(that: Any): Booleanfinal def ##(): Int = sys.e

2021-06-07 16:10:25 216

原创 第10章 组合和继承

第10章 组合和继承组合的意思是一个类可以包含对另一个类的引用,利用这个被引用类来帮助他完成任务,而继承是超类/子类的关系1 一个二维的布局类库2 抽象类abstract class Element { def contents: Array[String];}一个方法只要没有实现,那么它就是抽象的,跟 Java 不同并不需要(也不能)在方法上加上 abstract 修饰符一个包含抽象成员的类本身也要声明为抽象的,做法是在 class 关键字前加上 abstract 修饰符3 定义

2021-06-07 16:09:48 107

原创 第09章 控制抽象

第09章 控制抽象1 减少代码重复import java.io.Fileobject FileMatcher { private def fileHere: Array[File] = new File(".").listFiles(); //以query结尾的文件或文件夹 def fileEndWidth(query: String) = { for {file <- fileHere if file.getName().endsWith(query)

2021-06-07 16:09:09 146

原创 第08章 函数和闭包

第08章 函数和闭包1 方法object LongLines { def main(args: Array[String]): Unit = { val width = args(0).toInt for (arg <- args.drop(1)) processFile(arg, width) } def processFile(filename: String, width: Int): Unit = { val source = scala.

2021-06-07 16:08:14 121

原创 第07章 内嵌的控制结构

第07章 内嵌的控制结构scala所有的控制结构都返回某种值作为结果,程序员可以通过这些返回值来简化代码,缺少了这个机制,程序员必须创建临时的变量,这些变量仅仅是用来保持那些在控制结构内部计算出来的结果,去掉这些临时变量不仅让代码变得更简单,同时还避免了很多由于在某个分支设置了变量而在另一个分支中忘记设置带来的bug1 if 表达式//指令式编程var filename = "default.txt"if (!args.isEmpty) filename = args(0)//函数式编程va

2021-06-07 16:07:40 97

原创 第06章 函数式对象

第06章 函数式对象1 Rational类的规则定义有理数用 n/d表示2 构建Rational//n,d为类参数class Rational(n: Int, d: Int)如果一个类没有定义体,并不需要给出空的花括号圆括号中的 n , d 称作类参数,scala 编译器将创建一个主构造方法,主构造方法也会接收这两个参数不可变对象的设计取舍,不可变对象可以安全的用作哈希表里的键。不可变对象的主要劣势是它们有时候会需要拷贝一个大的对象图,而实际上也许一个局部的更新就能满足要求。java中

2021-06-07 16:07:06 87

原创 第5章 基础类型和操作

第5章 基础类型和操作1 一些基础类型数值类型:Float,Double 整数类型:Byte,Short,Int,Long,Char除了位于java.lang的String,java的基本类型都有与之对应的scala的基础类型2 字面量scala不支持八进制字面量和以0开头的整数字面量。如031,将无法编译通过整数字面量以0x或0X开头为16进制整数字面量以L或 l 结尾,那么它就是Long类型,否则是Int类型浮点数字面量浮点数字面量由十进制的数字,可选的小数点,以及后续一个可选的E

2021-06-07 16:06:31 124

原创 第04章 类和对象

第04章 类和对象1 类、字段和方法class ChecksumAccumulator { //不加修饰符默认是public private var sum = 0; //b 是 val 类型 def add(b: Byte): Unit = sum += b; // def checksum(): Int = ~(sum & 0xFF) + 1}public 是 scala默认的访问级别scala方法参数都是val类型没有任何显式的return语句时,sca

2021-06-07 16:05:37 87

原创 第03章scala入门续

第03章scala入门续第7步 用类型参数化数组数组是内容是可变的当你用scala实例化对象时,可以用值和类型来对其参数化用值来参数化var big = new BigInteger("12345")用类型来参数化,用方括号括起来类型var greetStrings = new Array[String](3);//greetStrings.update(0, "Hello")greetStrings(0) = "Hello"greetStrings(1) = ","greetStr

2021-06-07 16:04:51 107

原创 第02章scala入门

第02章scala入门第1步 使用scala解释器所有的Java的基本类型在scala包中都有对应的类scala.Boolean对应Java的boolean,scala.Float对应Java的float,当scala代码编译成java字节码是,scala编译器会尽量使用java的基本类型第2步 定义变量var与val,val跟Java的final变量类型,变量名和类型直接用冒号(:)隔开var msg : java.lang.String = "hello world ";第3步 定义函数

2021-06-07 16:03:46 85

转载 calcite parser

https://blog.youkuaiyun.com/weixin_35297190/article/details/114489238https://www.jb51.net/article/210438.htmhttps://blog.youkuaiyun.com/u013516966/article/details/104191190https://www.shangmayuan.com/a/4f973e2ce7dc439e9eff2cf5.htmlSqlNode通过Parser, 可以将Sql转化成SqlNod

2021-05-11 10:56:42 438

空空如也

空空如也

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

TA关注的人

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