上一页 1 2 3 4 5 6 7 8 ··· 15 下一页
摘要: 剖析CAS Proxy的设计原理 由于CAS在开源社区的影响力,它逐渐被应用到各种复杂的SSO环境中。CAS的基本原理在广州UserGroup上有很多文章介绍,我不再做原理性的探讨,但CAS Proxy稍微复杂,值得对其作一个剖析,以便在日后的配置中减少配置上的失误。 1,CAS Proxy的目的 阅读全文
posted @ 2021-02-12 19:28 車輪の唄 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 给定范围 [m, n],其中 0 <= m <= n <= 2147483647,返回此范围内所有数字的按位与(包含 m, n 两端点)。 class Solution { public int rangeBitwiseAnd(int m, int n) { if(m==n) return m; i 阅读全文
posted @ 2021-02-08 11:41 車輪の唄 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 现象:容器运行1-2小时后,内存逐渐上升到100%,主进程被os kill, 随后容器被重新拉起, 内存再次上升... 配置信息, 容器设置的最大内存8G 分析过程: 1. jinfo pid打印出进程的配置信息, 进程堆内存设置为4G 2. jmap -heap pid 打印出堆内内存情况 jma 阅读全文
posted @ 2021-02-06 12:33 車輪の唄 阅读(11) 评论(0) 推荐(0) 编辑
摘要: JAAS 认证过程 如上图所示,JAAS 认证过程分如下几个步骤: 1. 实例化一个 javax.security.auth.login.LoginContext 对象,它负责协调认证过程。该过程可用如下代码描述: LoginContext lc = new LoginContext(name, n 阅读全文
posted @ 2021-01-22 17:27 車輪の唄 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 1.类加载器的父类(非父子继承关系) 启动类加载器,由C++实现,没有父类。 拓展类加载器(ExtClassLoader),由Java语言实现,父类加载器为null 系统类加载器(AppClassLoader),由Java语言实现,父类加载器为ExtClassLoader 自定义类加载器,父类加载器 阅读全文
posted @ 2021-01-01 13:04 車輪の唄 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 从Java 8开始,Java开始提供Lambda表达式,这里不再介绍Lambda表达式怎么用,只总结Lambda表达式的作用: 使用更清楚简洁的一个表达式代替一个函数式接口 减少代码量代码意图更突出对集合数据Collection的迭代,过滤,抽取更容易,代码也更简洁使用变量记住一段逻辑 任务逻辑传递 阅读全文
posted @ 2020-10-23 19:52 車輪の唄 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 因为各种三方库依赖的log4j实现不同,所以可能会出现找到多个log4j实现的警告,但是不影响程序(logback是会影响的),如下: SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:f 阅读全文
posted @ 2020-10-18 15:57 車輪の唄 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 1.HDFS写流程: 客户端要向HDFS写数据,首先要跟namenode通信以确认可以写文件并获得接收文件block的datanode,然后,客户端按顺序将文件逐个block传递给相应datanode,并由接收到block的datanode负责向其他datanode复制block的副本 如图: 写详 阅读全文
posted @ 2020-10-18 13:00 車輪の唄 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 首先抛出的异常如下: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.protocol.AlreadyBeingCreatedException): Failed to APPEND_FILE /binlogsync_test 阅读全文
posted @ 2020-10-18 12:58 車輪の唄 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 1. java类加载器 程序若想执行,必须加载到内存当中才能成功执行。java程序并不是可执行文件,由许多独立的类文件来完成。所以java中加载程序是以类为单外来完成的。这也就需要我们来简单了解一下java的class loader加载机制。 Java 中的类加载器大致可以分成两类,一类是系统提供的 阅读全文
posted @ 2020-10-07 14:02 車輪の唄 阅读(61) 评论(0) 推荐(0) 编辑
摘要: InputStream is = getClass().getClassLoader().getResourceAsStream("helloworld.properties"); getClass():取得当前对象所属的Class对象 getClassLoader():取得该Class对象的类装载 阅读全文
posted @ 2020-10-07 13:46 車輪の唄 阅读(94) 评论(0) 推荐(0) 编辑
摘要: Java Agent一点都不神秘,也是一个Jar包,只是启动方式和普通Jar包有所不同,对于普通的Jar包,通过指定类的main函数进行启动,但是Java Agent并不能单独启动,必须依附在一个Java应用程序运行,有点像寄生虫的感觉。 如何动手写一个Java Agent 因为Java Agent 阅读全文
posted @ 2020-10-04 12:52 車輪の唄 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 一直都不太理解中断异常的作用, 直到最近遇到容器内的进程莫名被kill掉, 并且执行完整的结束进程操作. 在这个执行的过程中, 定时任务中抛出中断异常 参见: https://segmentfault.com/a/1190000017480171 阅读全文
posted @ 2020-09-02 19:59 車輪の唄 阅读(9) 评论(0) 推荐(0) 编辑
摘要: CyclicBarrier用法 字面意思回环栅栏,通过它可以实现让一组线程等待至某个状态之后再全部同时执行。叫做回环是因为当所有等待线程都被释放以后,CyclicBarrier可以被重用。我们暂且把这个状态就叫做barrier,当调用await()方法之后,线程就处于barrier了。 Cyclic 阅读全文
posted @ 2020-07-03 21:26 車輪の唄 阅读(12) 评论(0) 推荐(0) 编辑
摘要: #!bin/bash export PATH=$PATH:/usr/lib/java/jre export PATH=$PATH:/usr/lib/java/bin path 结果发现直接运行./ path 没起到效果, 后来发现原来机制是这样: 类似于局部变量,从当前shell中运行脚本path, 阅读全文
posted @ 2020-07-03 21:22 車輪の唄 阅读(102) 评论(0) 推荐(0) 编辑
摘要: Exception in thread "main" java.lang.ExceptionInInitializerError at org.apache.lucene.index.LiveIndexWriterConfig.<init>(LiveIndexWriterConfig.java:12 阅读全文
posted @ 2020-06-05 19:42 車輪の唄 阅读(14) 评论(0) 推荐(0) 编辑
摘要: Pod亲和性与反亲和性 Pod 间的亲和性与反亲和性根据已经在 Node 上运行的 Pod 的标签来调度新的 Pod 到哪个 Node 上,这些规则的形式是: 如果 X 已经运行一个或多个符合规则 Y 的 Pod,那么这个 Pod 应该(如果是反亲和性,则不应该)运行在 X 上。 和 Node不同, 阅读全文
posted @ 2020-05-09 20:47 車輪の唄 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 一、交互shell 和 非交互shell 1、交互shell 交互式:顾名思义就是 shell 与用户存在交互, 用户登录后,在终端上输入命令,shell 立即执行用户提交的命令。 当用户退出后,shell 也终止了。 2、非交互shell 非交互式:即 shell 与用户不存在交互,而是以 she 阅读全文
posted @ 2020-04-19 08:59 車輪の唄 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 正常情况下,定时器我们都是用Timer和TimerTask这两个类就能完成定时任务,并且设置延长时间和循环时间间隔。 ScheduledThreadPoolExecutor也能完成Timer一样的定时任务,并且时间间隔更加准确。 误差说明: 在后台程序看看一下Timer执行程序是有可能延迟1、2毫秒 阅读全文
posted @ 2020-04-03 21:32 車輪の唄 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 第一:初始化的时候 object Sample { var name:String=_ def main (args: Array[String]){ name="hello world" println(name) } 在这里,name也可以声明为null,例:var name:String=nu 阅读全文
posted @ 2020-04-03 21:22 車輪の唄 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 一, 概述 控制器是Kafka的核心组件之一,它的主要作用是在 ZooKeeper 的帮助下协调和管理整个Kafka集群。Kafka 利用ZooKeeper 的领导者选举机制,每个Broker 都会参与竞选主控制器,但是最终只会有一个 Broker 可以成为主控制器。下面我们简单的看一下控制器主要的 阅读全文
posted @ 2020-04-01 21:41 車輪の唄 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 1、KafkaConsumer poll 详解 消息拉起主要入口为:KafkaConsumer#poll方法,其声明如下: public ConsumerRecords<K, V> poll(final Duration timeout) { // @1 return poll(time.timer 阅读全文
posted @ 2020-03-13 22:21 車輪の唄 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 1. 相关配置项 Consumer读取partition中的数据是通过调用发起一个fetch请求来执行的。而从Kafka Consumer来看,它有一个poll方法。但是这个poll方法只是可能会发起fetch请求。原因是:Consumer每次发起fetch请求时,读取到的数据是有限制的,通过配置项 阅读全文
posted @ 2020-03-13 21:10 車輪の唄 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 创建TCP连接 消费者端的主要程序入口是KafkaConsumer,但构建KafkaConsumer实例不会创建任何TCP连接 构建KafkaProducer实例时,会在后台默默地启动一个Sender线程,Sender线程负责Socket连接的创建在Java构造函数中启动线程,会造成this指针逃逸 阅读全文
posted @ 2020-03-12 21:46 車輪の唄 阅读(115) 评论(0) 推荐(0) 编辑
摘要: Java8的foreach循环,这个循环里面,break和continue都不管用. 需要使用return,这个只能跳过本次循环,还是会继续执行for循环的 package com.lxk.java8.lambdaTest; import java.util.Arrays; import java. 阅读全文
posted @ 2020-03-11 20:29 車輪の唄 阅读(53) 评论(0) 推荐(0) 编辑
摘要: Consumer Group 提及Consumer Group,最先想到的就是Group与Consumer Client的关联关系: 1,Consumer Group用group.id(String)作为全局唯一标识符2,每个Group可以有零个、一个或多个Consumer Client3,每个Gr 阅读全文
posted @ 2020-03-07 19:56 車輪の唄 阅读(52) 评论(0) 推荐(0) 编辑
摘要: kafka 在 0.10.1.1 版本增加了时间索引文件,因此我们可以根据时间戳来访问消息。 时间戳可否自定义, 如果自定义时间戳写入先后错乱, 索引怎么弄???? 具体原理 具体使用 如以下需求:从半个小时之前的offset处开始消费消息,代码示例如下: package com.bonc.rdpe 阅读全文
posted @ 2020-03-06 21:58 車輪の唄 阅读(145) 评论(0) 推荐(0) 编辑
摘要: SASL/PLAIN认证机制开启方法: 修改Kafka配置文件 server.properties 或者其它名字(CDH和Ambari的发行版可能文件名有所差异) sasl.enabled.mechanisms = PLAIN sasl.mechanism.inter.broker.protocol 阅读全文
posted @ 2020-02-28 22:20 車輪の唄 阅读(72) 评论(0) 推荐(0) 编辑
摘要: SASL - 简单认证和安全层 SASL是一种用来扩充C/S模式验证能力的机制认证机制, 全称Simple Authentication and Security Layer. 当你设定sasl时,你必须决定两件事;一是用于交换“标识信 息”(或称身份证书)的验证机制;一是决定标识信息存储方法的验证 阅读全文
posted @ 2020-02-26 22:07 車輪の唄 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 传统的JAVA安全机制没有提供必要的架构支持传统的认证和授权;在J2SE里的安全是基于公钥密码体系和代码签名。也就是说,认证是基于在JVM里执行代码的思想,并且没有对资源请求提供策略。而且授权也是基于这样的概念--代码试图去使用一个计算机资源。Java认证和授权服务(JAAS)也就被设计成去应付这些 阅读全文
posted @ 2020-02-26 21:47 車輪の唄 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 1、为什么要有浮动IP这个东西 现在有一个场景,在一台Linux上部署一个web应用,应用跑在tomcat里面,linux网卡上的ip是115.239.100.120 大致就是如下的部署关系: 用户通过输入IP地址就能访问这个应用了,但是天有不测风云,有时候因为一些原因,服务会挂掉。于是开发人员就 阅读全文
posted @ 2020-02-22 19:17 車輪の唄 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 当用户登录系统时,会加载各种bash配置文件,还会设置或清空一系列变量,有时还会执行一些自定义的命令。这些行为都算是启动bash时的过程。 另外,有些时候登录系统是可以交互的(如正常登录系统),有些时候是无交互的(如执行一个脚本),因此总的来说bash启动类型可分为交互式shell和非交互式shel 阅读全文
posted @ 2020-02-22 19:09 車輪の唄 阅读(13) 评论(0) 推荐(0) 编辑
摘要: ConfigMap是用来存储配置文件的kubernetes资源对象,所有的配置内容都存储在etcd中,下文主要是探究 ConfigMap 的创建和更新流程,以及对 ConfigMap 更新后容器内挂载的内容是否同步更新的测试。 测试示例 假设我们在 default namespace 下有一个名为  阅读全文
posted @ 2020-02-22 19:07 車輪の唄 阅读(29) 评论(0) 推荐(0) 编辑
摘要: Pod、ReplicaSet、Deployment、Service之间的关系如下图 Pod: Pod是一个或多个容器的组合,这些容器共享存储、网络和命名空间,以及如何运行的规范。Pod是Kubernetes的最小可部署单元。Pod的中文译词是豌豆荚,docker容器就像是豆子运行在豌豆荚内。 Rep 阅读全文
posted @ 2020-02-08 21:43 車輪の唄 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 方法的定义 有以下几点需要注意: 所有参数必须制定类型;递归方法,不能省略返回值类型,其他情况下可以忽略(方法可以通过=右侧的函数主体推断出返回值类型)单行方法主体,可以与方法写在一行并忽略{} 过程 在Scala中,定义方法时,如果方法体直接包裹在了花括号里面,而没有使用=连接,则方法的返回值类型 阅读全文
posted @ 2020-01-30 17:25 車輪の唄 阅读(8) 评论(0) 推荐(0) 编辑
摘要: kafka的每个topic都可以创建多个partition,partition的数量无上限,并不会像replica一样受限于broker的数量,因此partition的数量可以随心所欲的设置。那确定partition的数量就需要思考一些权衡因素。 越多的partition可以提供更高的吞吐量 在ka 阅读全文
posted @ 2020-01-28 15:53 車輪の唄 阅读(19) 评论(0) 推荐(0) 编辑
摘要: sh方式 使用$ sh script.sh执行脚本时,当前shell是父进程,生成一个子shell进程,在子shell中执行脚本。脚本执行完毕,退出子shell,回到当前shell。$ ./script.sh与$ sh script.sh等效。 例子 使用loop.sh脚本反复打印当前进程号。 $ 阅读全文
posted @ 2020-01-28 09:38 車輪の唄 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 一个例子 闭包,简单的理解就是:函数内部的变量不在其作用于时,仍然可以从外部进行访问,听上去有些抽象; 下面我们来通过一个简单的例子实现 Scala 中的闭包,代码如下: object Closures { def main(args: Array[String]): Unit = { val ad 阅读全文
posted @ 2020-01-27 21:14 車輪の唄 阅读(20) 评论(0) 推荐(0) 编辑
摘要: Kafka分布式的单位是partition,同一个partition用一个write ahead log组织,所以可以保证FIFO的顺序。不同partition之间不能保证顺序。 但是绝大多数用户都可以通过message key来定义,因为同一个key的message可以保证只发送到同一个parti 阅读全文
posted @ 2020-01-27 17:12 車輪の唄 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 先用一张图总结Sender线程的流程 在 KafkaProducer 中会启动一个单独的线程,其名称为 “kafka-producer-network-thread | clientID”,其中 clientID 为生产者的 id 1、Sender 线程详解 1.1 类图 我们先来看一下其各个属性的 阅读全文
posted @ 2020-01-22 19:31 車輪の唄 阅读(29) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 15 下一页