- 浏览: 194746 次
- 性别:
- 来自: 南京
最新评论
文章列表
具体过程总结:
1.Client 发送用户名 username 到 kerberos 以向 AS (Authentication Service)请求 TGT 票据信息。
2.kerberos收到请求后,生成随机字符串 Session Key,再使用AS服务的密码对Session Key 、 请求客户端地址、用户名、 创建时间、有效期信息加密得到 TGT,并用用户密码对Session Key加密后和TGT 一起返回给客户端。
3.客户端收到请求后,使用自身的密码解密A得到 Session Key,然后使用 Session Key 对 客户端地址信息、用户名、时间信息 加密得到认证对象,加上 ...
1.系统信息
角色系统CPUCoremaster18.04.1-Ubuntu48Gslave18.04.1-Ubuntu44G
2.安装前准备(主节点和从节点都需要执行)
2.1 关闭swap
sudo swapoff -a
2.2 配置系统安装源和kubernetes安装源
在/etc/apt/sources.list.d/ 追加以下两个文件
deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main
deb http://mirrors.aliyun.com/ubuntu/ bionic ...
[TOC]
目的
解决spring boot应用以docker容器方式启动后,进程ID是1而导致的jstack和jmap等命令不可用的现象
默认将spring boot工程打包成镜像的方式
1. 当我们把spring boot打包成一个可执行jar
2. 编写Dockerfile 将jarcopy到容器中,在cmd 中执行java -jar ***.jar 启动,Dockerfile文件如下
#基础镜像基于openjdk,利用alpine
FROM openjdk:8u212-jdk-alpine
#所属团队
MAINTAINER chengf
ENV JAVA_OPT ...
原文地址
Bill Bryant,首次写与1988年2月
Theodore Ts'o与1997年2月整理并转换成HTML,并且追加了 afterword 章节来描述V5版本的一些变化
Abstract
本文虚构了一个关于公网认证系统--Charon构建过程的对话,随着对话的进行,Athena和Euripides探讨了公共网络环境里普遍存在安全问题,并在Charon系统设计之初就考虑好了这些问题的解决方式。所以直到对话完成,Athena和Euripides才算真正的把系统设计好。
当系统设计好后,Athena把系统的名字从Charon改成了Kerberos。非常巧合的是,在MIT的 ...
1.实现原理
1.1 得益于HttpSession和HttpServletRequest都是接口,这意味着我们可以提供自己的实现类来重写其中的方法,Spring session正是利用这个特性实现的。
首先是实现了HttpServletRequest的SessionRepositoryRequestWrapper类,伪代码如下
public class SessionRepositoryRequestWrapper extends HttpServletRequestWrapper {
public SessionRepositoryRequestWrapper(HttpServle ...
1.环境信息
大数据集群利用CHD5.7.0搭建,包括master节点、worker节点、name节点、secondary name节点等总共10个节点,集群通过Kerberos进行认证权限管理。
2.导入步骤
2.1 认证,执行如下命令进行kerberos认证,如果还没有kerberos用户,则需要利用kerberos 管理员创建用户
kinit -kt /keytab/testuser.keytab testuser
2.1 将数据放到hdfs上
hdfs fs -put 服务器上文件路径(如:/home/me/data) hdfs上文件路径(如 /user/me/data)
...
增加10秒
#now=`date`; date -s "$now 10 second"
减少10秒
#now=`date`; date -s "$now -10 second"
增加10分钟
#now=`date`; date -s "$now 10 minute"
减少10分钟
#now=`date`; date -s "$now -10 minute"
增加10小时
#now=`date`; date -s "$now 10 hour"
减少10小时
#now=`date`; date - ...
1.首先我们通过下面的一个示例代码产生一个OutOfMemoryError时对应的dump文件
/**
*
*/
package simple.test;
import java.util.ArrayList;
import java.util.List;
/**
* @author: 作者: chengaofeng
* @date: 创建时间:2018-09-11 16:50:59
* @Description: TODO ...
1.获取出现OutOfMemoryError时对应的heap dump
通过在启动命令中追加如下jvm参数
-XX:+HeapDumpOnOutOfMemoryError
此时当应用程序出现OutOfMemoryError会在当前的工作目录下生成dump文件。可以追加如下jvm参数修改dump文件的路径
-XX:HeapDumpPath=/Users/chengaofeng/Downloads/dump
例如在eclipse中,通过如下方式追加
通过命令行启动程序时,在命令行中追加
java -server -Xmx40m -XX:+HeapDumpOnOutOfMemoryErro ...
1.Heap Dump(java 堆dump文件)
Heap Dump代表的是java处理器(jvm)在特定时间点对应的内存快照(如出现OutOfMemoryError的时候)。根据生成dump文件时指定的格式以及采用的jvm类型,dump文件中可能会包含着不同的信息,但通常来说,里 ...
1.简介
Eclipse 内存分析器(MAT)是由IBM开发的一个功能丰富、高效的java堆分析器,可以帮助java开发者发现内存泄漏和减少内存消耗。
用MAT可以分析包含成千上万个对象生产环境对应的java heap dump,能够快速计算出常驻对象的 ...
一、Gitlab 备份及还原
在原机器上执行 docker exec –it {containerId} git-rake gitlab:backup:create
执行后会在 /var/opt/gitlab/backups目录下创建一个压缩包 1535564046_gitlab_backup.tar
2.还原
在目标机器上先启动一个空的gitlab容器
执行 docker exec –it {containerId} git-rake gitlab:backup:restore BACKUP=1535564046(上一步备份对应的数字部分)
执行过程中会有两次确认,1次是要清除原表重建,1 ...
一、MongoDB 是一个基于分布式文件存储的NoSQL数据库,在应用开发中使用非常普遍,因为mongo是由 C++ 语言编写,真实的mongodb只能以server模式独立运行,这样就使得基于mongo应用的junit无法真正的独立运行,除非我们将所有mongo相关的操作都mock,本文将介绍一种为了针对mongo应用的junit而独立开发的内存库fakemongo,简称fongo,官网地址 fongo 。
在spring boot的官方文档中,Embedded Mongo采用的是de.flapdoodle.embed:de.flapdoodle.embed.mongo,地址embed.m ...
在应用开发过程中,利用内存数据库暂时代替实体数据库是很方便的一件事,既可以保证Juint的独立性,也能够让我们在开发前期方便的展示、模拟应用。
本篇文章我们通过一个简单的应用程序一起来了解下H2在spring boot应用、以及在junit中如何使用(其他类似的数据库还有HSQL、Derby)
1.H2的特性
速度快、完全开源、支持JDBC API
同时提供内嵌和server两种模式
提供基于浏览器的控制台
非常轻量,jar只有1.5M左右
2.和其他数据库的对比
H2 Derby HSQLDB MySQL PostgreSQLPure Java Yes Yes Yes ...
1.前言
curator由Netflix的工程师开发,主要目的为了基于zookeeper的应用变得简单可靠,在2013年成为apache的顶级项目。curator基于zookeeper,但提供了更高级别的
API抽象以及工具集,并对zookeeper提供的常用功能进行了封装和扩充,例如leader选举、分布式锁、服务发现、缓存等功能,从而使开发者在实现这些功能时不用在实现
哪些无聊的程式化代码段,也减少出错的可能性。
2.本文主要讲解如何利用curator实现leader选举,并对curator提供的两种实现形式进行对比
2.1 通过LeaderSelector进行leader选举
建议通过L ...