- 博客(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关注的人