DevOps社区中的人应该都听过Docker,有很多系统管理员会告诉你Docker是怎样令他们的生活变得更轻松,自动化部署是多么好用,容器是多么轻量…Docker实际上解决了什么问题呢?首先,Docker会把应用连同所有依赖打包进一个完整的文件系统,这样构成一个Docker镜像;其次,下一步就是把容器部署到生产环境的设施上,例如说AWS,Heroku或者其他云服务。在Docker出现以前,很多系统
转载
2023-07-18 16:28:06
45阅读
Java 如何隔离线程池
在现代Java应用中,线程池是一个重要的组件。正确使用线程池可以显著提高应用的性能,可扩展性,但在复杂的系统中,很容易因为错误的配置或实现导致线程池交叉干扰,引发性能问题。因此,如何隔离线程池,确保各个线程池互不干扰,成为了开发人员面临的一个重要问题。
### 问题背景
设想一下,我们的应用需要处理来自多个不同来源的任务,例如:
- 用户请求
- 数据处理
- 后台
像ARM7TDMI这样经典的ARM处理器会按照程序的顺序来执行指令或访问数据。而最新的ARM处理器会对执行指令和访问数据的顺序进行优化。举个例子,ARM v6/v7的处理器会对以下指令顺序进行优化。
[cpp]
view plain
copy
1. LDR r0, [r1] ; 从普通/可Cache的内存
转载
2023-12-07 09:49:44
21阅读
线程池实现服务隔离 问题分析# 在微服务架构中,我们将业务拆分成一个个的服务,服务与服务之间可以相互调用,由于网络原因或者自身的原因,服务并不能保证服务的100%可用,如果单个服务出现问题,调用这个服务就会出现网络延迟,此时若有大量的网络涌入,会形成任务累计,导致服务瘫痪。 在SpringBoot程
原创
2022-12-14 17:31:31
427阅读
前言不多bb了,直接上代码和注释,看不懂的找博主数据库初始状态 //数据库中 id = 1 name = 0000 balance = 2222 //数据库中 id = 2 name = aaaa balance = null //other id = 1 name = AAAA //other id = 2 name = BBBB 总结:1、事...
原创
2022-09-01 05:23:13
81阅读
说明本文只讲述docker离线安装及清理的步骤,关于docker本身的含义、技术特性等不再描述。根据官网的介绍,在Linux系统中安装docker,可通过在线安装(centos的yum,ubuntu的apt-get等),离线rpm包安装,二进制文件安装等。基于一些环境因素的限制,不能通过在线安装,或rpm离线安装包依赖的问题,二进制文件安装docker显得简单且快速,本文介绍通过二进制文件安装do
转载
2023-07-29 23:00:09
67阅读
介绍 相信很多开发者都默认Docker这样的容器是一种沙盒(sandbox)应用,也就是说他们可以用root权限在Docker中运行随便什么应用,而Docker有安全机制能保护宿主系统。比如,有些人觉得Docker容器里面的进程跟虚拟机里面的进程一样安全;还有的人随便找个源就下载没有验证过的Docker镜像,看都不看内容就
转载
2023-12-29 22:06:35
21阅读
关于docker的核心技术,就是以下的三大技术:1.namespaces 【命名空间】使用linux的命名空间实现的进程间隔离。Docker 容器内部的任意进程都对宿主机器的进程一无所知。
除了进程相关的命名空间,还会设置与用户、网络、IPC 以及 UTS 相关的命名空间。
Docker 通过命名空间成功完成了与宿主机进程和网络的隔离。
虽然docker通过命名空间创建了网络隔离,但依旧需要与
转载
2023-09-20 16:15:36
101阅读
这个链接主要介绍了cgroup中使用的三种cpu资源限制方式cpuset隔离方式是以分配核心的方式进行资源隔离,可以提供的资源分配最小粒度是核心,不能提供更细粒度的资源隔离,但是隔离之后运算的相互影响最低。需要注意的是在服务器开启了超线程的情况下,要小心选择分配的核心,否则不同cgroup间的性能差距会比较大。cpuquota给我们提供了一种比cpuset可以更细粒度的分配资源的方式,
转载
2024-02-20 20:18:05
158阅读
Docker具有隔离性、可配额、安全性、便携性的特点,此篇博客将从资源隔离、资源配额控制、存储、网络四个方面来认识docker。在了解隔离实现原理前,先了解Docker中容器的定义,基于Linux内核的Cgroup,Namespace,以及Union FS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术,由于隔离的进程独立于宿主和其它的隔离进程,因此也称其为容器。Docker在容器的基础上
转载
2023-08-18 11:58:38
114阅读
Docker的隔离性主要运用Namespace 技术。传统上Linux中的PID是唯一且独立的,在正常情况下,用户不会看见重复的PID。然而在Docker采用了Namespace,从而令相同的PID可于不同的Namespace中独立存在。如,A Container 之中PID=1是A程序,而B Container之中的PID=1同样可以是A程序。虽然Docker可透过Namespace的方式分隔出
转载
2024-01-24 09:44:02
25阅读
一、什么情况下会发生栈内存溢出?1、栈是线程私有的,栈的生命周期和线程一样,每个方法在执行的时候就会创建一个栈帧,它包含局部变量表、操作数栈、动态链接、方法出口等信息,局部变量表又包括基本数据类型和对象的引用; 2、当线程请求的栈深度超过了虚拟机允许的最大深度时,会抛出StackOverFlowError异常,方法递归调用肯可能会出现该问题;3、调整参数-xss去调整jvm栈的大小二、详解JVM内
转载
2024-08-16 11:05:34
33阅读
Docker作为最重视安全的容器技术之一,在很多方面都提供了强安全性的默认配置,其中包括:容器root用户的Capability能力限制、Seccomp系统调用过滤、Apparmor的 MAC 访问控制、ulimit限制、pid-limits的支持,镜像签名机制等。这篇文章我们就带大家详细了解一下。Docker利用Namespace实现了6项隔离,看似完整,实际上依旧没有完全隔离Linux资源,比
转载
2024-03-14 21:19:24
13阅读
ThreadLocal介绍ThreadLocal可以创建只能由同一线程读取和写入的变量。ThreadLocal保证了各个线程的数据互不干扰,实现了线程间的数据隔离。实际上ThreadLocal的值是放入了当前线程的一个ThreadLocalMap实例中,所以只能在本线程中访问,其他线程无法访问。可以创建一个指定泛型类型的ThreadLocal对象,这样我们就不需要每次使用get()方法返回的值做强
转载
2023-11-24 09:46:14
96阅读
我们知道docker安装完之后,每个docker容器里面都有自己单独的网络,那么docker的网络是怎么工作的呢 ? 首先我们需要了解的是Linux提供了基于NameSpace的隔离机制,主要包含如下NameSpace隔离:Mount Namespace隔离了一组进程所看到的文件系统挂载点的集合,因此,在不同Mount Namespace的进程看到的文件系统层次结构也不同。UTS Namespac
转载
2023-07-11 13:08:52
135阅读
# Docker隔离:让应用安全可靠运行
在当今的互联网时代,随着软件开发的不断发展,容器技术也日益成熟。Docker作为容器技术的代表之一,被广泛应用于软件开发、测试和部署等各个阶段。其中,Docker的一个重要特性就是隔离性,它可以为每个容器提供独立的运行环境,确保单个应用之间互相独立、不会相互影响,从而保证了应用的安全性和可靠性。
## Docker隔离的实现
Docker的隔离性是通
原创
2024-07-01 05:20:34
30阅读
当完成docker安装后,它会自动创建3个网络:bridge、host、none。test@Kylin:~$ docker network ls
NETWORK ID NAME DRIVER SCOPE
3d8b366a7166 bridge bridge l
转载
2024-02-20 21:09:26
46阅读
目录1.什么是 Docker2.为什么要用 Docker3.基本概念1.什么是 DockerDocker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 OverlayFS 类的 Union FS 等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。&nb
转载
2023-09-20 12:02:14
38阅读
Linux 命名空间为运行中的进程提供了隔离,限制他们对系统资源的访问,而进程没有意识到这些限制。有关 Linux 命名空间的更多信息,请参阅 Linux 命名空间。防止容器内的特权升级攻击的最佳方法是将容器的应用程序配置为作为非特权用户运行。对于其进程必须作为容器中的 root 用户运行的容器,可以将此用户重新映射到 Docker 主机上权限较低的用户。映射的用户被分配了一系列 UID,这些 U
转载
2023-09-13 22:38:55
6阅读
在上一篇文章,我们实现了ns和他们网络中其它ns通信,但是最后发现无法和宿主机通信甚至也无法和其他的外部网络通信,这个显然是不行了,因为docker创建的容器能实现本网段的通信,也能实现宿主机以及外部网络的通信。[root@localhost ~]# docker run -it --rm busybox
/ # ping -c 2 192.168.159.14
PING 192.168.15
转载
2023-09-04 23:33:14
45阅读