自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

morris

The earliest moment is when you think it's too late.

  • 博客(603)
  • 资源 (30)
  • 收藏
  • 关注

原创 【java9】java9新特性值之集合不可变实例工厂方法

Java9为集合接口List、Set、Map提供了创建不可变实例的工厂方法。这些工厂方法为便利而生,以简单的方式创建这些集合的不可变实例。

2024-03-29 15:40:00 834

原创 【java9】java9新特性之多版本共存JAR

多版本共存的JAR(Java Archive)文件是Java 9引入的一个新特性,它允许在同一个JAR文件中维护和使用不同版本的Java类或资源。这种特性使得开发者能够创建一个JAR包,该包可以在多个Java版本上运行,而无需为每个Java版本提供单独的JAR包。接下来这个示例,我们的多版本JAR中有三个版本的MultiJarDemo.java文件,一个用于JDK8,一个用于JDK9,最后一个用于 JDK10,并在可以在这些不同的JDK版本上运行。

2024-03-29 15:12:43 590

原创 【java9】java9新特性之命令行交互式解释器JShell

因为内部方法和内部类的关系,我们还可以在JShell中定义一个方法。

2024-02-27 15:41:28 1038 1

原创 【计算机网络】Socket的OOBInline选项与UrgentData

虽然在客户端并不是使用OutputStream向服务器发送数据,但在服务端程序中这个单字节的数据是和其它的普通数据混在一起的。如果设置了OOBInline为true,那么带外数据将与普通数据混合在一起,可以通过相应的方式进行处理。在这种情况下,接收方会把接收到的紧急数据与普通数据放在同样的队列中,从而可以通过套接字输入流来接收这些紧急数据。TCP的紧急指针,一般都不建议使用,而且不同的TCP/IP实现,也不同,一般说如果你有紧急数据宁愿再建立一个新的TCP/IP连接发送数据,让对方紧急处理。

2024-02-27 15:19:35 1282

原创 【计算机网络】Socket的SO_TIMEOUT与连接超时时间

SO_TIMEOUT选项是Socket的一个选项,用于设置读取数据的超时时间。它指定了在读取数据时等待的最长时间,如果在指定的时间内没有数据可读取,将抛出SocketTimeoutException异常。

2024-02-04 10:00:26 3233

原创 【操作系统】HeapByteBuffer和DirectByteBuffer的区别

DirectByteBuffer和HeapByteBuffer是Java NIO中ByteBuffer的两种实现方式。HeapByteBuffer是在Java堆上分配的字节缓冲区,它使用数组来存储数据。HeapByteBuffer的优点是它具有良好的兼容性和可移植性,且在大多数情况下性能表现良好。它适用于大部分的应用场景,并且在内存管理方面具有更好的可控性和可调优性。

2024-02-04 09:57:54 2421

原创 【计算机网络】Socket的SO_REUSEADDR选项与TIME_WAIT

SO_REUSEADDR用于设置套接字的地址重用。当一个套接字关闭后,它的端口可能会在一段时间内处于TIME_WAIT状态,此时无法立即再次绑定相同的地址和端口。使用SO_REUSEADDR选项可以允许新的套接字立即绑定到相同的地址和端口,即使之前的套接字仍处于TIME_WAIT状态。

2024-02-01 09:49:14 13860

原创 【操作系统】FileOutputStream的flush操作有时不生效

Page Cache是Linux内核中用于提高文件读写性能的缓存机制,但是它也可能会导致数据丢失。Page Cache在计算机故障时可能会丢失数据,这是因为它的设计目标是在内存中缓存文件数据,而不是持久化存储数据。当计算机发生故障时,如断电或系统崩溃,Page Cache中的数据可能会丢失,因为这些数据还没有被写入到磁盘上。此外,Page Cache的刷盘策略也会导致数据丢失。当Page Cache中的数据太多或太脏时,内核会将一些数据写入磁盘,但如果此时系统崩溃,尚未写入磁盘的数据可能会丢失。

2024-02-01 09:45:38 13115

原创 【计算机网络】Socket的TCP_NODELAY选项与Nagle算法

TCP_NODELAY是一个套接字选项,用于控制TCP套接字的延迟行为。当TCP_NODELAY选项被启用时,即设置为true,就会禁用Nagle算法,从而实现TCP套接字的无延迟传输。这意味着每次发送数据时都会立即发送,不会等待缓冲区的填充或等待确认。

2024-01-19 09:44:36 18743

原创 【linux】NIO中的FileChannel与mmap

FileChannel是Java NIO库中的一个类,用于对文件进行读写操作。它提供了一种高效的方式来读取、写入和操作文件。

2024-01-12 15:50:02 13407

原创 【Linux】Java文件IO之普通IO与Buffer IO

在Java中,输入输出(IO)操作是编程中一项重要的任务。无论是从外部文件中读取数据,还是向文件写入数据,或者是与用户进行交互,都需要用到IO操作。

2024-01-05 17:20:59 46521

原创 【Linux】Linux Page Cache页面缓存的原理

Page cache(页面缓存)是计算机操作系统中的一种机制,用于将频繁访问的数据从磁盘存储到内存中,以便更快地访问。当程序从磁盘请求数据时,操作系统会检查该数据是否已经存在于页面缓存中。如果存在,数据可以直接从内存中获取,这比从磁盘访问要快得多。如果数据不在页面缓存中,它将从磁盘中获取并存储在缓存中供将来使用。

2024-01-04 15:57:39 48395 16

原创 【linux】Linux管道的原理与使用场景

总的来说,Linux管道是一个非常强大的工具,它可以帮助我们在处理数据时提供极大的灵活性。通过学习和掌握管道的使用,我们可以更有效地使用Linux命令行,更好地完成各种复杂的数据处理任务。

2023-12-26 16:35:35 42965

原创 【linux】Linux重定向

在Linux操作系统中,命令行界面是一个强大的工具,它允许用户与系统进行高效的交互。重定向是命令行中一个非常重要的概念,它可以改变命令输入和输出的默认路径。通过重定向,用户可以将数据从一个程序传递到另一个程序,或者保存到文件中,这使得数据处理变得更加灵活和高效。重定向是一种改变命令输入输出流的机制。默认情况下,大多数命令从标准输入(stdin,通常是键盘)读取数据,将结果输出到标准输出(stdout,通常是屏幕),并将错误消息输出到标准错误(stderr,也通常是屏幕)。

2023-12-26 16:34:13 39028

原创 【Linux】Linux常见文件类型

这些文件类型在Linux系统中都有各自的标识符和权限设置,下面分别演示各种文件类型的特性。

2023-12-21 15:29:22 33014

原创 【Linux】Linux虚拟文件系统VFS

在Linux中,所有内容都是以文件的形式保存和管理的,即一切皆文件,普通文件是文件,目录(Windows下称为文件夹)是文件,硬件设备(键盘、监视器、硬盘、打印机等)都是文件,就连套接字(socket)、网络通信等资源也都是文件。Linux为应用程序访问文件提供了统一的接口,如read、write、open等,也称为虚拟文件系统(VFS,Virtual File System)。

2023-12-21 15:28:06 31116

原创 【Docker】swarm stack部署多service应用

前面我们已经学习过了Docker Compose,它可以用来进行一个完整的应用程序相互依赖的多个容器的编排的,但是缺点是只能在单机模式使用,不能在分布式多机器上使用;前面我们也学习了Docker swarm,它可以将单个服务部署为多个容器,并运行在不同集群节点上,构成服务集群,缺点是只能部署单个服务,不能同时编排多个服务。

2023-12-09 18:24:05 34723

原创 【Docker】vxlan的原理与实验

VXLAN是在底层物理网络(underlay)之上使用隧道技术,借助UDP层构建的Overlay的逻辑网络,使逻辑网络与物理网络解耦,实现灵活的组网需求。它对原有的网络架构几乎没有影响,不需要对原网络做任何改动,即可架设一层新的网络。也正是因为这个特性,很多容器的网络才会选择VXLAN作为通信网络。VXLAN不仅支持一对一,也支持一对多,一个VXLAN设备能通过像网桥一样的学习方式学习到其他对端的IP地址,还可以直接配置静态转发表。

2023-12-09 18:20:43 35444

原创 【Docker】Swarm内部的负载均衡与VIP

在Docker Swarm中,有两种方式可以实现内部的负载均衡:Service VIP和Routing Mesh。

2023-11-30 11:08:07 52537 1

原创 【Docker】Swarm的ingress网络

Docker Swarm Ingress网络是Docker集群中的一种网络模式,它允许在Swarm集群中运行的服务通过一个公共的入口点进行访问。Ingress网络将外部流量路由到Swarm集群中的适当服务,并提供负载均衡和服务发现功能。在Docker Swarm中,Ingress网络使用了一种称为"Routing Mesh"的技术。Routing Mesh通过在Swarm集群的每个节点上创建一组代理来实现负载均衡和服务发现。这些代理将外部流量路由到适当的服务,并自动处理服务的扩展和缩减。

2023-11-30 10:37:46 41336

原创 【Docker】Swarm的overlay网络

对于理解swarm的网络来讲,个人认为最重要的两个点:第一是外部如何访问部署运行在swarm集群内的服务,可以称之为入方向流量,在swarm里我们通过ingress来解决。这里主要了解下不同swarm节点上的容器之间如何通过overlay网络进行通信。

2023-11-30 10:36:03 37921

原创 【docker】Docker网络与iptables

Docker能为我们提供很强大和灵活的网络能力,很大程度上要归功于与iptables的结合。在使用时,你可能没有太关注到 iptables在其中产生的作用,这是因为Docker已经帮我们自动的完成了相关的配置。iptables在Docker中的应用主要是用于网络流量控制和安全控制。可以使用iptables规则来限制Docker容器的网络访问,以及将外部流量重定向到Docker容器。docker的daemon进程有个--iptables的参数,可以使用它来控制是否要自动启用iptables。

2023-11-18 10:52:13 34924

原创 【docker】iptables实现NAT

iptables是一个Linux内核中的防火墙工具,可以被用来执行各种网络相关的任务,如过滤、NAT和端口转发等,可以监控、过滤和重定向网络流量。

2023-11-18 10:39:15 30606

原创 【Docker】iptables命令的使用

在iptables中,可以创建自定义链(Custom Chains)来组织和管理防火墙规则。自定义链可以以更高层次和更好的可读性来管理规则,使配置和维护更加简单。创建链mychain此时filter表中多了一条MYCHAIN链。禁止的网段访问本机,丢弃源地址的流量。将所有传入TCP端口80的流量传递到MYCHAIN自定义链进行处理。如果不调用自定义的规则链,则自定义的规则链无效。

2023-11-09 09:28:27 40490

原创 【Docker】iptables基本原理

通过iptables,可以对本机提供的网络服务 (FTP、WEB、EMAIL、DB…) 进行保护,通过规则进行过滤。iptables并不是真正的防火墙,可以理解为一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的安全框架中,这个安全框架才是真正的防火墙,这个框架的名字叫netfilter。netfilter位于内核空间,而iptables其实是一个命令行工具,位于用户空间。netfilter/iptables组成Linux平台下的包过滤防火墙。

2023-11-09 09:25:31 39235

原创 【Docker】从命名空间和路由角度探究Docker的bridge网络

桥接网络是Docker的默认网络模式。在桥接网络中,Docker会为每个容器创建一个虚拟网络接口,并为容器分配一个IP地址。容器可以通过桥接网络与主机和其他容器进行通信,也能暴露端口供外部访问。

2023-10-31 15:30:44 35186

原创 【Docker】Linux路由连接两个不同网段namespace,连接namespace与主机

如果两个namespace处于不同的子网中,那么就不能通过bridge进行连接了,而是需要通过路由器进行三层转发。然而Linux并未像提供虚拟网桥一样也提供一个虚拟路由器设备,原因是Linux自身就具备有路由器功能。路由器的工作原理是这样的:路由器上有2到多个网络接口,每个网络接口处于不同的三层子网上。路由器会根据内部的路由转发表将从一个网络接口中收到的数据包转发到另一个网络接口,这样就实现了不同三层子网之间的互通。

2023-10-31 10:05:50 32311 3

原创 【Docker】Linux网桥连接多个命名空间

veth实现了点对点的虚拟连接,可以通过veth连接两个namespace,如果我们需要将3个或者多个namespace接入同一个二层网络时,就不能只使用veth了。在物理网络中,如果需要连接多个主机,我们会使用bridge(网桥),或者又称为交换机。Linux也提供了网桥的虚拟实现。下面我们试验通过Linux bridge来连接三个namespace。

2023-10-27 09:40:03 43436

原创 【Docker】Linux网络命名空间

Namespace是Linux提供的一种对于系统全局资源的隔离机制;从进程的视角来看,同一个namespace中的进程看到的是该namespace自己独立的一份全局资源,这些资源的变化只在本namespace中可见,对其他namespace没有影响。容器就是采用namespace机制实现了对网络,进程空间等的隔离。不同的Container(在K8S中是以Pod为单位)属于不同namespace,实现了Container或Pod之间的资源互相隔离,互不影响。

2023-10-27 09:37:17 45647 3

原创 【Docker】Docker Swarm介绍与环境搭建

Docker Swarm是Docker官方推出的容器集群管理工具,基于Go语言实现。使用它可以将多个Docker主机封装为单个大型的虚拟Docker主机,快速打造一套容器云平台。Docker Swarm是生产环境中运行Docker应用程序最简单的方法。作为容器集群管理器,Swarm最大的优势之一就是100%支持标准的Docker API。各种基于标准API的工具比如Compose、docker-py、各种管理软件,甚至 Docker本身等都可以很容易的与Swarm进行集成。

2023-10-24 10:41:20 30691

原创 【Docker】Docker-Compose内置DNS负载均衡失效问题

还是对前面的例子主要是修改flask-demo启动3个容器。nginx.conf从运行结果可以发现我们可以根据service的名称访问容器,Docker会使用内置的DNS服务器将service的名称解析成IP,如果service对应的容器有多个,nginx会进行负载均衡。Docker带有一个内置的DNS服务器。默认情况下,可以通过127.0.0.11:53访问服务器。这个DNS的IP可以通过进入容器内部查看。

2023-10-24 10:32:53 34019

原创 【Docker】Docker Compose服务依赖与健康检查

Docker Compose服务依赖与健康检查

2023-10-24 10:27:21 28950

原创 【Docker】Docker Compose的使用

我们知道使用一个Dockerfile模板文件,可以让用户很方便的定义⼀个单独的应用容器。然而,在日常工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个Web项目,除了Web服务容器本身,往往还需要再加上后端的数据库服务容器,甚至还包括负载均衡容器等,我们只能一个一个写dockerfile文件,然后bulid构建和run,手动操作单个容器。Docker Compose恰好满足了这样的需求。它允许⽤户通过⼀个单独的。

2023-10-24 10:24:21 36604

原创 【Docker】Docker的网络

创建一个网络名称为mynetworkdone"done"。。。。。。],^C从Docker 1.10版本开始,docker daemon实现了一个内嵌的DNS server,使容器可以直接通过容器名称通信。这样,容器1和容器2可以通过它们的容器名称 “container1” 和 “container2” 进行通信,而不必记住它们的IP地址。

2023-10-24 10:13:50 42303

原创 【Docker】Docker数据的存储

默认情况下,在运行中的容器里创建的文件,被保存在一个可写的容器层里,如果容器被删除了,则对应的数据也随之删除了。这个可写的容器层是和特定的容器绑定的,也就是这些数据无法方便的和其它容器共享。

2023-10-24 10:11:33 6678

原创 【Docker】Dockerfile使用技巧

BuildKit是Docker官方社区推出的下一代镜像构建神器,可以更加快速,有效,安全地构建docker镜像。尽管目前BuildKit不是Docker的默认构建工具,但是完全可以考虑将其作为Docker(v18.09+)的首选构建工具。官方文档:https://docs.docker.com/build/buildkit/下面介绍一下怎么开启BuildKit。在里添加(如果没有这个文件,则新建), 然后重启docker或者在执行docker build命令时设置。

2023-10-24 10:10:20 404

原创 【Docker】Dockerfile常用指令

参考官方文档:https://docs.docker.com/engine/reference/builder/

2023-10-24 10:08:22 395

原创 【Docker】镜像的创建、管理与发布

查看hello执行文件的大小为872KB,发现镜像的大小和hello执行文件的大小是一样的,这样可以证明Scratch是一个空的Docker镜像。在这个列表中的镜像都是“使用过的镜像”,而不在这个列表的镜像就是未使用镜像。镜像的清理:主要用于资源的释放,不需要指定镜像的ID或者仓库+标签,可以清理中间的镜像层、缓存等系统存储空间。镜像的删除:删除某个镜像时,需要指定镜像的ID或者仓库+标签。根据镜像名称或者镜像ID删除一个或多个镜像。显示镜像的历史记录,应该是镜像的分层结构。

2023-09-07 09:48:53 8402 2

原创 【docker】容器的运行、停止、查看等基本操作

Docker image是一个`read-only`文件,位于磁盘上- 这个文件包含文件系统,源码,库文件,依赖,工具等一些运行application所需要的文件- 可以理解成一个模板- docker image具有分层的概念

2023-08-30 10:42:47 6204

原创 【OpenFeign】OpenFeign结合Hystrix和Sentinel实现熔断降级

OpenFeign可以配置一个全局异常,来对请求过程中的其他异常进行包装,这样在fallbackFactory中获取到的是自定义的全局异常,而不是原始的异常。Response;Util;try {return new RuntimeException(MessageFormat . format("自定义Feign错误信息出错:{0}" , e . getMessage()));if(null!

2023-08-28 16:34:29 1620

老K说中台_技术领导力_老K(全网200w+阅读量文章合集).pdf

老K说中台_技术领导力_老K(全网200w+阅读量文章合集)

2021-02-26

安全认证框架-Apache_Shiro研究心得

安全认证框架-Apache_Shiro研究心得

2015-03-06

Apache_Shiro_使用手册(一)Shiro架构介绍

Apache_Shiro_使用手册(一)Shiro架构介绍

2015-03-06

Apache_Shiro_使用手册(四)Realm_实现

Apache_Shiro_使用手册(四)Realm_实现

2015-03-06

Apache_Shiro中文帮助文档

Apache_Shiro中文帮助文档

2015-03-06

使用jackson完成json与java对象的互相转换实例

使用jackson完成json与java对象的互相转换实例

2015-02-01

java map实例,排序

java map排序,hashmap,linkedmap,treemap,hashtable

2015-01-31

对Map的key和value进行排序

对Map的key和value进行排序

2015-01-31

HashMap,HashTable,LinkedHashMap,TreeMap的区别

HashMap,HashTable,LinkedHashMap,TreeMap的区别

2015-01-31

java操作json实例

java操作json实例,java对象与json对象的互相转换

2015-01-27

json-lib.jar

json-lib.jar java 操作json的jar包

2015-01-27

js操作json

js操作json

2015-01-27

java利用json-lib操作json

java利用json-lib操作json

2015-01-27

java对properties配置文件的读和写

java对properties配置文件的读和写

2015-01-27

bootstrap日期插件datetimepicker的使用

bootstrap日期插件datetimepicker的使用

2015-01-26

jpa对表的crud操作

jpa对表的crud操作

2015-01-16

jpa查询详解

jpa查询 jpql 本地查询 命名查询

2015-01-16

Spring集成Hessian案例

Spring集成Hessian案例

2014-12-29

Hessian入门案例源代码

Hessian入门案例源代码

2014-12-29

mybatis入门案例

mybatis入门案例 内附详细教程 jar包

2014-12-23

mybatis-3.2.7

mybatis-3.2.7

2014-12-23

spring与hibernate的整合

spring与hibernate的整合 spring事务的配置

2014-11-07

Hibernate的配置

hibernate.cfg.xml的配置

2014-11-05

调用QQ webservice查看QQ在线状态源代码

调用QQ webservice查看QQ在线状态 java源代码

2014-11-03

调用QQ webservice查看QQ在线状态

调用QQ webservice查看QQ在线状态

2014-11-03

spring入门案例

spring开发入门案例,非常适合初学者,注释很详细

2014-11-03

spring简介

spring简介,aop,ioc,spring入门

2014-11-03

hibernate入门案例

hibernate入门案例,使用orm实现代码生成数据库中的表

2014-11-03

hibernate简介

hibernate简介,hibernate能干什么,为什么要用hibernate,怎么使用

2014-11-03

空空如也

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

TA关注的人

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