自定义博客皮肤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.

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

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

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

2024-02-04 10:00:26 2161

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

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

2024-02-04 09:57:54 1813

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

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

2024-02-01 09:49:14 8978

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

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

2024-02-01 09:45:38 8853

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

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

2024-01-19 09:44:36 14985

原创 【linux】NIO中的FileChannel与mmap

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

2024-01-12 15:50:02 13376

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

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

2024-01-05 17:20:59 46505

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

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

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

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

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

2023-12-26 16:35:35 42775

原创 【linux】Linux重定向

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

2023-12-26 16:34:13 38971

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

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

2023-12-21 15:29:22 32962

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

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

2023-12-21 15:28:06 31090

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

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

2023-12-09 18:24:05 34680

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

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

2023-12-09 18:20:43 35224

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

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

2023-11-30 11:08:07 52360 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 41111

原创 【Docker】Swarm的overlay网络

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

2023-11-30 10:36:03 37774

原创 【docker】Docker网络与iptables

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

2023-11-18 10:52:13 34214

原创 【docker】iptables实现NAT

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

2023-11-18 10:39:15 30311

原创 【Docker】iptables命令的使用

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

2023-11-09 09:28:27 40206

原创 【Docker】iptables基本原理

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

2023-11-09 09:25:31 38920

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

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

2023-10-31 15:30:44 35160

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

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

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

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

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

2023-10-27 09:40:03 43360

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

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

2023-10-27 09:37:17 45441 2

原创 【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 30467

原创 【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 33977

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

Docker Compose服务依赖与健康检查

2023-10-24 10:27:21 28907

原创 【Docker】Docker Compose的使用

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

2023-10-24 10:24:21 36516

原创 【Docker】Docker的网络

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

2023-10-24 10:13:50 42277

原创 【Docker】Docker数据的存储

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

2023-10-24 10:11:33 6642

原创 【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 388

原创 【Docker】Dockerfile常用指令

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

2023-10-24 10:08:22 387

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

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

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

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

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

2023-08-30 10:42:47 5350

原创 【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 1509

原创 【openfeign】OpenFeign的扩展、日志、超时时间、拦截器、客户端组件、压缩

有时候我们遇到Bug,比如接口调用失败、参数没收到等问题,或者想看看调用性能,就需要配置Feign的日志了,以此让Feign把请求信息输出来。

2023-08-21 14:10:45 404

原创 【openfeign】OpenFeign的使用、GET请求和POST请求

Feign是Netflix开发的声明式、模板化的HTTP客户端,Feign可帮助我们更加便捷、优雅地调用HTTP API。Feign可以做到使用HTTP请求远程服务时就像调用本地方法一样的体验,开发者完全感知不到这是远程方法,更感知不到这是个 HTTP请求。它像Dubbo一样,consumer直接调用接口方法调用provider,而不需要通过常规的Http Client构造请求再解析返回数据。它解决了让开发者调用远程接口就跟调用本地方法一样,无需关注与远程的交互细节,更无需关注分布式环境开发。

2023-08-21 14:08:08 846

原创 【resttemplate】RestTemplate返回值乱码问题分析与解决

最后来学习一下MappingJackson2HttpMessageConverter,只有MappingJackson2HttpMessageConverter是GenericHttpMessageConverter类型,只有Response的header中的。这个问题我首先想到的是RestTemplate的MessageConverter消息转换器,首先找到RestTemplate解析response的地方。方式三:将所有的消息转换器的编码都修改为。,这就是乱码的根本原因。

2023-08-17 11:21:45 2866

原创 【loadbalancer】还在用Ribbon?试试Spring自带的LoadBalancer吧

Spring Cloud LoadBalancer是Spring Cloud官方自己提供的客户端负载均衡器, 用来替代Ribbon。

2023-08-12 21:06:25 1172

老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关注的人

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