自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 资源 (3)
  • 收藏
  • 关注

转载 Docker基础学习(八)-Docker容器的跨主机连接

Docker网桥实现跨主机容器连接docker网桥实现跨主机连接的网络拓扑图如下:在同一个docker主机中,docker容器通过虚拟网桥连接(docker0),如果将连接容器的网桥docker0也桥接到宿主机提供的网卡上,将docker0分配的IP地址和宿主机的IP地址设置为同一个网段,就相当于将docker容器和宿主机连接到了一起,这样就可以实现跨主机的docker容器通信。修...

2018-08-14 09:23:20 3183

原创 Docker基础学习(七)-Docker容器的数据管理

一,数据卷定义:数据卷使经过特殊设计的目录,可以绕过联合文件系统,为一个或多个容器提供服务。数据卷设计的目的,在于数据的持久化,他完全独立于与容器的生命周期,因此,Docker不会在容器删除的同时删除其挂载的数据卷,也不会存在类似的垃圾收集机制,对容器引用的数据卷进行处理。数据卷的架构理解:1.独立于docker的存在。存在与宿主机中。与docker容器的生存在周期是分离的。2...

2018-08-14 09:19:07 491

转载 Docker基础学习(六)-Docker容器的网络连接

一.Docker容器的网络基础通过ifconfig查看docker0的网络设备,docker守护进程就是通过docker0为docker的容器提供网络连接的各种服务。docker0是Linux虚拟网桥。Linux虚拟网桥的特点:可以设置IP地址 相当于拥有一个隐藏的虚拟网卡docker0的地址划分:IP:172.17.42.1 子网掩码: 255.255.0.0 MA...

2018-08-14 09:18:04 1032

转载 Docker基础学习(五)-Dockerfile命令详解(超全版本)

制作Dockerfile为Docker入门学习的第一步(当然,除了环境搭建)。本文收集、整理了官网关于制作Dockerfile的全部命令(除SHELL没整理,这个就不弄了),可帮助大家快速进入Dockfile制作的学习。以下为正文,下面进入学习姿势吧!     FROM 功能为指定基础镜像,并且必须是第一条指令。如果不以任何镜像为基础,那么写法为:FROM sc...

2018-08-14 09:14:43 397

原创 Docker基础学习(四)-Docker镜像与仓库

一,查看和删除镜像1,列出docker镜像$ docker images [OPTSIONS] [REPOSITORY]-a,--all=false  //显示所有镜像,默认是不显示中间层镜像-f,--filter=[]     //过滤条件--no-trunc=false  //指定是否截断镜像id-q,-quiet=false  //只显示镜像的唯一id例如:...

2018-08-14 09:12:59 436

原创 Docker基础学习(三)-Docker容器

一,容器的基本操作1,启动容器:$ docker run IMAGE[COMMAND] [AEG...]IMAGE:指定容器运行的镜像COMMAND:指定运行的命令ARG:运行的参数例如:$ docker run ubuntu echo "Hello World"这一个执行单次命令的容器,输出“Hello World”之后,容器就停止了2,启动交互式容器:...

2018-08-14 09:04:21 438

原创 Docker基础学习(二)-Docker的安装和部署

一,在Windows中安装 Docker1,Docker的运行环境(1)Linux容器技术(2)操作系统级别的虚拟化(3)依赖于Linux内核的Namespace和Cgroups下面将结束两种docker在Windows环境安装的方式 二,使用docker toolbox安装docker对于Windows用户来说,使用docker toolbox来安装docker是...

2018-08-14 08:57:01 488

原创 Docker基础学习(一)-基本概念和框架

一,Docker简介1,什么是容器(1)一种虚拟化的方案(2)操作系统级别的虚拟化(3)只能运行相同或相似内核的操作系统(4)依赖于Linux内核特性:Namespace和CGroups(Control Group)2,虚拟机与容器对比        与虚拟相比,容器占用的磁盘空间更少,如下图,使用虚拟机部署应用需要包含应用,依赖的类库和完整的操作系统,但是容器只需要应...

2018-08-14 08:52:51 459

原创 Git分布式版本控制系统(四)-远程仓库

一,注册gitthub账号Step1、注册一个GitHub账户百度搜索GitHub或者直接点击https://github.com/ 进入GitHub官网。进入之后我们开始注册,这里需要填写昵称(用户名)、注册邮箱和密码,这里有几点需要注意的地方:昵称一栏:每次在你输入昵称之后,都会检查是否已经被注册。如果被注册了,那么会提示Username is already taken。此时...

2018-08-06 21:37:05 375

原创 Git分布式版本控制系统(三)-理解工作区与暂存区的区别

一,理解工作区与暂存区的区别?工作区:就是你在电脑上看到的目录,比如目录下testgit里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。版本库(Repository):工作区有一个隐藏目录.git,这个不属于工作区,这是版本库。其中版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有Git为我们自动创建了第一个分支master,以及指...

2018-08-06 21:32:07 481

原创 Git分布式版本控制系统(二)-基本操作

一,Git环境变量    创建版本库之前需要设置Git的环境变量:1,设置一些Git别名,以便可以使用更为简洁的子命令。 git config --global alias.co checkoutgit config --global alias.br branchgit config --global alias.ci "commit -s"git config --glob...

2018-08-06 21:27:28 264

原创 Git分布式版本控制系统(一)-Git概念和windows下Git BASH安装

一,首先了解Git是什么?Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。二:SVN与Git的最主要的区别?SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最...

2018-08-06 21:19:37 348

原创 基于Netty的RPC架构实战演练(六)-protocol buff学习使用

一,protocolbuffer简介protocolbuffer(以下简称PB)是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了多种语言的实现:java、c#、c++、go 和 python,每一种实现都包含了相应语言的编译器以及库文件。它是一种协议,是谷歌推出的一种序列化协议,由于它是一种二进制的格式,比使用 xml 进行数据交换快许多。可以把它用于分布式...

2018-07-31 21:47:51 545

原创 基于Netty的RPC架构实战演练(五)-Netty心跳

一,Netty心跳心跳其实就是一个普通的请求,特点数据简单,业务也简单心跳对于服务端来说,定时清除闲置会话inactive(netty5) channelclose(netty3)心跳对客户端来说,用来检测会话是否断开,是否重连! 用来检测网络延时!二,netty3心跳代码示例package com.heart;import java.net.InetSocketAddr...

2018-07-31 21:11:49 543

原创 基于Netty的RPC架构实战演练(四)-netty5服务端和客户端

一,netty5服务端入门案例package com.server;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.Channel;import io.netty.channel.ChannelFuture;import io.netty.channel.ChannelInitializer;im...

2018-07-31 21:09:57 854 2

原创 基于Netty的RPC架构实战演练(三)-netty3线程模型源码分析

package com.cn;import java.io.IOException;import java.nio.ByteBuffer;import java.nio.channels.ClosedChannelException;import java.nio.channels.SelectionKey;import java.nio.channels.Selector;imp...

2018-07-31 21:06:23 317

原创 基于Netty的RPC架构实战演练(二)-netty3服务端和客户端

一,Netty (1)Netty 是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。也就是说,Netty 是一个基于NIO的客户、服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户、服务端应用。Netty相当于简化和流线化了网络应用的编程开...

2018-07-31 21:00:36 1161

原创 基于Netty的RPC架构实战演练(一)-NIO

一,传统IO与NIO比较1,传统IO代码示例:package OIO;import java.io.IOException;import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;import java.util.concurrent.ExecutorService;impo...

2018-07-31 20:58:39 711

转载 web前后端漏洞分析与防御(五)-接入层sql注入

一、什么是sql注入?1、什么是sql注入呢?        所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击.当应用程序使用输入内容来构造动态sql语句以访问数据库时,会发生sql注入攻击。...

2018-07-29 10:41:07 828

原创 web前后端漏洞分析与防御(四)-密码安全

需求:NodeJS->接入层->密码管理,加密密码作用 信息摘要算法(哈希算法)这种函数是一种摘要算法,你给他输入一个任意长的数据A他给你返回固定长度的数据B,也称B为“指纹”。明文 -> 密文 雪崩效应(密码混乱) 不可逆性 密文固定长度 md5 sha1 sha256md5单向变换  密码传输安全性(明文)前端加密只能...

2018-07-29 10:32:46 831

原创 web前后端漏洞分析与防御(三)-点击劫持,传输安全

点击劫持,clickjacking,也被称为UI-覆盖攻击。 防止点击劫持JavaScript禁止内嵌 没有带frame的页面 带frame的页面   不过H5新增属性,sandbox可以金庸脚本的运行sandbox="allow-forms"X-FRAME-OPTIONS禁止内嵌头设置ctx.set('X-F...

2018-07-29 10:31:11 797

原创 web前后端漏洞分析与防御(二)-CSRF

跨站请求伪造攻击CSRF(Cross Site Request Forgy)SRF跨站点请求伪造(Cross—Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解:       攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统...

2018-07-29 10:28:48 509

原创 web前后端漏洞分析与防御(一)-XSS

所谓的安全,其实是指两个方面私密性:不被非法获取和利用(Get) 代码层面 架构层面 运维层面 问题 用户身份被盗用 用户密码泄露 用户资料被盗取 网站数据库泄露 其他 可靠性:不丢失不损坏不被篡改跨站脚本攻击XSS(Cross Site Scripting)跨站脚本攻击(Cross Site Scripting),缩写为XSS。恶意...

2018-07-29 10:26:27 1309

原创 Java8新特性(五)-其他新特性

一,接口中的默认方法与静态方法1,接口中的默认方法Java 8中允许接口中包含具有具体实现的方法,该方法称为 “默认方法”,默认方法使用 default 关键字修饰。 接口默认方法的” 类优先” 原则若一个接口中定义了一个默认方法,而另外一个父类或接口中 又定义了一个同名的方法时  选择父类中的方法。如果一个父类提供了具体的实现,那么 接口中具有相同名称和参数的默认方法会...

2018-07-23 16:12:43 295

原创 Java8新特性(四)-新时间日期API

1,LocalDate、 LocalTime、 LocalDateTime  LocalDate、 LocalTime、 LocalDateTime 类的实 例是不可变的对象,分别表示使用 ISO-8601日 历系统的日期、时间、日期和时间。它们提供 了简单的日期或时间,并不包含当前的时间信 息。也不包含与时区相关的信息。2,Instant 时间戳   用于“时间戳”的运算。它是以...

2018-07-23 16:11:27 364

原创 Java8新特性(三)-Fork/Join 框架和Optional 类

一,Fork/Join 框架    就是在必要的情况下,将一个大任务,进行拆分(fork)成若干个 小任务(拆到不可再拆时),再将一个个的小任务运算的结果进行 join 汇总.实现原理图:1,Fork/Join 框架与传统线程池的区别     采用 “工作窃取”模式(work-stealing): 当执行新的任务时它可以将其拆分分成更小的任务执行,并将小任务加到线 程队列中,然...

2018-07-23 16:08:59 587

原创 Java8新特性(二)-强大的Stream API

一,Stream说明     Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对 集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。 使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数 据库查询。也可以使用 Stream API 来并行执行操作。简而言之, Stream API 提供了一种高效且易于使用的处理数据的方式。 1...

2018-07-23 15:55:56 588

原创 Java8新特性(一)-Lambda表达式

一,Java8新特性简介1,速度更快2,代码更少(增加了新的语法Lambda表达式)3,强大的Stream API4,便于并行5,最大化减少空指针异常Optional 二,Lambda表达式1,为什么使用Lambda表达式 Lambda 是一个匿名函数,我们可以把 Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的...

2018-07-23 15:52:07 21173 2

原创 Jvm知识学习(九)-锁

一,线程安全1,示例说明:多线程网站统计访问人数 使用锁,维护计数器的串行访问与安全性多线程访问ArrayList代码:public static List<Integer> numberList =new ArrayList<Integer>();public static class AddToList implements Runnable{  int startnu...

2018-07-09 09:00:56 254

原创 Jvm知识学习(八)-Java堆分析

一,内存溢出(OOM)的原因1,JVM内存区间可以简单的分为:堆,永久区,线程栈,直接内存2,内存溢出的几种:(1)堆内存溢出:(2)永久区内存溢出:(3)Java栈内存溢出:(4)直接内存溢出:备注说明:直接内存需要GC回收,但是直接内存无法引起GC。直接内存使用满时,无法触发GC。如果堆空间很富余,无法触发GC,直接内存可能就会溢出。如果堆空间触发GC,直接内存可以回收二,MAT使用基础支配树...

2018-07-06 14:45:41 265

原创 Jvm知识学习(七)-性能监控工具

1,linux命令(1)uptime系统时间 ,运行时间 (例子中为7分钟) ,连接数 (每一个终端算一个连接) ,1,5,15分钟内的系统平均负载 (运行队列中的平均进程数) (2)top(3)vmstat可以统计系统的CPU,内存,swap,io等情况 (1,4分别代表采样频率和采样次数)       CPU占用率很高,上下文切换频繁,说明系统有线程正在频繁切换(4)pidstat可以细致观察...

2018-07-05 15:28:51 355

转载 Jvm知识学习(六)-类装载器

类加载的机制的层次结构每个编写的”.java”拓展名类文件都存储着需要执行的程序逻辑,这些”.java”文件经过Java编译器编译成拓展名为”.class”的文件,”.class”文件中保存着Java代码经转换后的虚拟机指令,当需要使用某个类时,虚拟机将会加载它的”.class”文件,并创建对应的class对象,将class文件加载到虚拟机的内存,这个过程称为类加载,这里我们需要了解一下类加载的过...

2018-07-04 09:11:07 289

原创 Jvm知识学习(五)-GC参数

一,JAVA堆Java 堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。这个区域是用来存放对象实例的,几乎所有对象实例都会在这里分配内存。堆是Java垃圾收集器管理的主要区域(GC堆),垃圾收集器实现了对象的自动销毁。Java堆可以细分为:新生代和老年代;再细致一点的有Eden空间,From Survivor空间,To Survivor空间等。Java堆可以处于物理上不连续的内存空间中,只要...

2018-07-04 09:04:13 381

原创 Jvm知识学习(四)-GC算法与种类

一,GC的概念Garbage Collection 垃圾收集1960年 List 使用了GCJava中,GC的对象是堆空间和永久区二,GC算法根 对象:(1)栈中引用的对象(2)方法区中静态成员或者常量引用的对象(全局对象)(3)JNI方法栈中引用对象1,引用计数法老牌垃圾回收算法通过引用计算来回收垃圾使用者 :COM,ActionScript3,Python 原理:引用计数器的实现很简单,对于一...

2018-07-03 09:00:48 305

原创 Jvm知识学习(三)-常用JVM配置参数

一,Trace跟踪参数-verbose:gc-XX:+printGC可以打印GC的简要信息[GC 4790K->374K(15872K), 0.0001606 secs][GC 4790K->374K(15872K), 0.0001474 secs][GC 4790K->374K(15872K), 0.0001563 secs][GC 4790K->374K(15872K)...

2018-07-02 13:51:41 266

原创 Jvm知识学习(二)-Jvm运行机制

一,JVM启动流程二,JVM基本结构PC寄存器 :每个线程拥有一个PC寄存器在线程创建时 创建指向下一条指令的地址执行本地方法时,PC的值为undefined方法区:保存装载的类信息类型的常量池字段,方法信息方法字节码通常和永久区(Perm)关联在一起Java堆 :和程序开发密切相关应用系统对象都保存在Java堆中所有线程共享Java堆对分代GC来说,堆也是分代的GC的主要工作区间Java栈 :线...

2018-06-30 18:44:20 217

原创 Jvm知识学习(一)-初识Jvm

一,JVM的概念JVM是Java Virtual Machine的简称。意为Java虚拟机虚拟机 :指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统 有哪些虚拟机 :VMWareVisual BoxJVMVMWare或者Visual Box都是使用软件模拟物理CPU的指令集JVM使用软件模拟Java 字节码的指令集二,Java和Jvm的历史三,规范Java语言规范–...

2018-06-30 18:33:17 294

转载 Java高并发程序设计(三)-java内存模型

在并发编程中,多个线程之间采取什么机制进行通信(信息交换),什么机制进行数据的同步?  在Java语言中,采用的是共享内存模型来实现多线程之间的信息交换和数据同步的。  线程之间通过共享程序公共的状态,通过读-写内存中公共状态的方式来进行隐式的通信。同步指的是程序在控制多个线程之间执行程序的相对顺序的机制,在共享内存模型中,同步是显式的,程序员必须显式指定某个方法/代码块需要在多线程之间互斥执行。...

2018-06-29 08:50:16 284

原创 Java高并发程序设计(二)-多线程基础

一,什么是线程要解释线程,就必须明白什么是进程。    进程是指运行中的应用程序,每个进程都有自己独立的地址空间(内存空间),比如用户点击桌面的IE浏览器,就启动了一个进程,操作系统就会为该进程分配独立的地址空间。当用户再次点击左面的IE浏览器,又启动了一个进程,操作系统将为新的进程分配新的独立的地址空间。目前操作系统都支持多进程。要点:用户每启动一个进程,操作系统就会为该进程分配一个独立的内存空...

2018-06-29 08:48:54 539

原创 Java高并发程序设计(一)-前言

一,为什么需要并行?(1)业务要求:并行计算还出于业务模型的需要– 并不是为了提高系统性能,而是确实在业务上需要多个执行单元。– 比如HTTP服务器,为每一个Socket连接新建一个处理线程– 让不同线程承担不同的业务工作– 简化任务调度(2)性能需要并行的原因和说法:Linus Torvalds :并行计算只有在图像处理和服务端编程2个领域可以使用,并且它在这2个领域确实有着大量广泛的使用。但是...

2018-06-29 08:41:19 404

apache-maven-3.3.9

apache-maven-3.3.9版本,用于jar包管理,解压该文件即可用。

2018-04-09

gson-2.2.4.jar

GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。可以将一个Json字符转成一个Java对象,或者将一个Java转化为Json字符串。Gson提供了fromJson() 和toJson() 两个直接用于解析和生成的方法,前者实现反序列化,后者实现了序列化。

2017-07-25

fastjson-1.2.2.jar

Fastjson是一个Java语言编写的JSON处理器,由阿里巴巴公司开发。 1、遵循http://json.org标准,为其官方网站收录的参考实现之一。 2、支持JDK的各种类型,包括基本的JavaBean、Collection、Map、Date、Enum、泛型。 3、无依赖,不需要例外额外的jar,能够直接跑在JDK上。 4、开源,使用Apache License 2.0协议开源。 5、具有超高的性能,java世界里没有其他的json库能够和fastjson可相比了

2017-07-25

空空如也

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

TA关注的人

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