- 博客(34)
- 收藏
- 关注
原创 细谈容器化技术实现原理--以Docker为例
一个“容器”,实际上是一个由 Linux Namespace、Linux Cgroups 和 rootfs 三种技术构建出来的进程的隔离环境。一个正在运行的 Linux 容器,其实可以被“一分为二”地看待:一组联合挂载在 /var/lib/docker/aufs/mnt 上的 rootfs,这一部分我们称为“容器镜像”(Container Image),是容器的静态视图;一个由 Namespace+Cgroups 构成的隔离环境,这一部分我们称为“容器运行时。
2023-06-15 22:29:53
7057
13
原创 kubernetes新版本使用kubeadm init的超全问题解决和建议
能节省你在kubeadm init 时遇到问题的排错时间⌚️。整合了网上大佬🧍♂️和官方建议⚠️。个人被这个问题折磨了好久😭,希望总结出来能帮助到大家~
2023-03-25 12:42:46
24652
25
原创 【Kubernetes1.26.x:container runtime is not running问题详细排查】
一篇很细的排错记录,你在安装1.26.3kuberneters或者以后新版本出现的问题都可以安装这个思路进行排错。
2023-03-24 22:00:28
20776
11
原创 服务注册与发现的实现原理【大白话通俗讲解】
现在每个微服务都向服务发现组件发送请求,类比这里便是更新数据库last_heartbeat为最新时间,这个请求就是心跳。如果服务发现组件发现某个微服务很久没有发送请求了,则认为该实例下线了,会将 status的值改为 down。1. 微服务很多的时候会频繁调用服务发现组件,会给服务发现组件带来很大压力。这样其他微服务的如果更新了缓存(重新发送查询请求)就不会去调用下线的实例了。了解了服务注册与发现的实现原理之后,我们使用不同的组件就可以快速入门了!2. 服务发现组件如果宕机了,微服务之间就无法互相调用了。
2023-03-22 23:45:32
806
2
原创 【分布式系统中调用链监控实现原理】
通过调用链监控,我们可以追踪请求在整个系统中的路径,并且识别出潜在的性能问题。了解原理后可以帮助我们快速上手不同的监控工具,甚至自定义监控工具
2023-03-22 16:39:21
1617
原创 【自定义注解+AOP实现登录校验+全局异常处理返回友好提示】
*** 校验登录的注解/*** 登录拦截切面/*** 校验token的工具类try {// 1. 从header里面获取token HttpServletRequest request = getHttpServletRequest();// 2. 校验token是否合法&是否过期;如果不合法或已过期直接抛异常;如果合法放行 Boolean isValid = jwtOperator . validateToken(token);if(!isValid) {
2023-03-22 14:09:35
2251
原创 SpringDataMongoDB的@Document注解
例如,@Document(collation = "en_US") 可以将校对规则设置为 "en_US"。mongdb4.4及以上版本。例如,@Document(collection = "my_collection") 和 @Document(value = "my_collection") 的作用是相同的。:用于指定集合名称,它默认为实体类名的小写字母形式。例如,@Document(value = "my_collection") 可以将集合名称设置为 "my_collection"。
2023-03-20 22:26:13
2301
原创 【消息通过rabbitTemplate.converAndSend发送后请求头丢失】
1. 对象用混了, rabbitTemplate是org.springframework.amqp.core包下的,所以使用org.springframework.amqp.core包下的Message对象就不会有问题,而使用org.springframework.messaging包下的Message对象就会有请求头丢失问题。由于不同的应用程序和场景需要的消息头可能不同,因此 RabbitMQ 采用了一种灵活的方式,即让发送方在发送消息时自己设置消息头。方法发送消息时,默认情况下不会设置消息头信息。
2023-03-20 18:37:59
2184
原创 【系统学习RabbitMQ】java入门及Spring系列(每个API附带项目示例)
一般是在监听中编写while循环通过consumer.nextDelivery获取下一条消息进行消费。使用自定义的Consumer更加方便,解耦合[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o30WgiHA-1679235160541)(https://foruda.gitee.com/images/1679224992765938751/6f8811a4_9519077.png “屏幕截图”)]
2023-03-19 22:26:00
2363
1
原创 docker指定配置文件启动本地redis镜像 Unable to find image ‘redis-server:latest‘ locally
目录问题复现 1.启动命令:2.报错信息: 解决1.排除网络问题2.查看docker官方文档指定conf的示例3.调整命令顺序运行成功!总结:docker官网没有明确写出原因,但不难推断只有先获取到镜像才能根据指定的配置文件启动,redis是如此,其他需要指定配置文件的容器也是如此2.报错信息: 解决1.排除网络问题先测试用 docker pull redis 拉取镜像能不能成功,成功则说明网络无问题 拉取失败则 配置文件/etc/docker/daemon.json,添加阿里云镜
2023-03-16 17:59:04
9342
2
原创 手撕源码手写框架的必备知识
/ 目标类 public class OrderService {// 目标方法 public void generate() {System . out . println("订单已生成!");} }// 切面类 @Aspect public class MyAspect {
2023-03-15 11:20:03
197
原创 一个例子带你理解docker数据卷挂载的含义
2.将根路径下的 demo文件夹作为运行容器的映射文件夹(进入容器可以通过容器的根路径下的demo访问到服务器根路径下的demo文件夹)1.我在centos7服务器的根路径上传了一个文件夹demo ,现在要用docker运行起来。6.进入容器 再次进入demo查看文件列表 发现a.txt文件存在。4.进入容器默认位于容器根路径 进入demo查看文件列表。5.在服务器的demo文件夹内生成一个文件 a.txt。2.1.查看当前服务器demo文件夹下的文件。
2023-03-15 10:54:55
1038
原创 Linux系统学习 超详细常见实用命令
• Shell 是命令解释器,用于解释用户对操作系统的操作• Shell 有很多• CentOS 7 默认使用的 Shell 是 bash• 变量名的命名规则• 字母、数字、下划线• 不以数字开头• 函数用于“包含”重复使用的命令集合• 自定义函数命令• 函数的执行fname• 函数作用范围的变量local 函数名• 函数的参数Vim 和 sed、AWK 的区别Vim 是整个文本编辑器 是交互式的Sed 、AWK 是行编辑器 非交互的。
2023-03-15 10:15:03
288
原创 【java实现二维码的生成(源码)】
目录【复制即用】实现通过扫描生成的二维码跳转到指定网页,也可实现扫描二维码显示文本或图片1.0.导入依赖坐标1.1.工具类1.2.入参类1.3.controller层1.4.service层1.5.业务逻辑处理层1.6测试示例【复制即用】实现通过扫描生成的二维码跳转到指定网页,也可实现扫描二维码显示文本或图片1.0.导入依赖坐标<dependency> <groupId>com.google.zxing</group..
2022-02-24 13:44:01
2758
原创 Java 集成高德地图(源码复制即用)实现地址转经纬度,经纬度转地址,计算两点间距离
Java 集成高德地图 实现地址转经纬度,经纬度转地址,计算两点间距离,很基础的方法但是可以衍生出诸如诸如根据企业微信定位打卡签到等功能
2022-01-26 13:45:57
11756
21
原创 Java 返回值规范(封装返回对象)
枚举类public enum CodeEnum { SUCCESS(0), ERROR(1); private Integer code; private CodeEnum(Integer code) { this.code = code; } public Integer getCode() { return this.code; }}
2022-01-26 09:34:24
2977
原创 【docker 环境下配置并安装 rabbitmq】
docker 配置并安装 rabbitmq1.运行容器docker run -d --hostname myrabbit --name rabbit -v /data/rabbitmq:/var/lib/rabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 rabbitmq参数解释-d 后台运行容器;--hostname 主机名(RabbitMQ的一个
2022-01-24 11:48:27
465
原创 docker 环境下配置并安装 redis
docker 配置并启动 redis1.配置 redis.conf 文件(文末有原生reids.conf文件)# 注释掉这部分,使redis可以外部访问bind 127.0.0.1 # 用守护线程的方式启动daemonize no # 给redis设置密码requirepass 你的密码 (xinwangda)# redis持久化 默认是noappendonly yes# 防止出现远程主机强迫关闭了一个现有的连接的错误 默认是300tcp-keepalive 300 2.将redi
2022-01-24 11:45:26
516
原创 java中多种方法实现数组转list,数组转set
1. 数组->list1.1 Arrays.asList()tips: 该方法返回的是基于数组的List视图(List view)。对Arrays.asList()返回的List进行添加、删除操作会报错,可以使用set(修改)方法String[] strArray = {"isy", "mi", "ka", "sa"};List strList = Arrays.asList(strArray);1.2 Collections.addAll()tips: 该方法实际上是将数组的内容复制到
2022-01-21 17:40:18
920
原创 centos8 安装 docker
centos8 安装 dockercentos8 默认使用 podman 代替 docker ,如果安装podman会和docker有冲突1. 查看是否安装 Podman:rpm -q podman 1.1已安装则删除 dnf remove podman2. 更新 yum包yum -y update3. 安装依赖sudo yum install -y yum-utils device-mapper-persistent-data lvm2sudo yum-config-ma
2022-01-21 11:39:02
795
原创 用docker 部署 minio(minio无法访问解决方案)
利用docker 部署 minio(minio无法访问解决)今天使用云服务器部署minio但是一直无法访问,查看访问端口一直在变化,想到minio的默认启动是动态端口,踩坑记录。操作拉取镜像docker pull minio/minio创建容器docker run # 映射端口-p 9000:9000 # 容器名--name minio # 自启动-d --restart=always # 登录的用户名-e "MINIO_ACCESS_KEY=minio" # 登录的密码-
2021-11-19 20:39:53
12151
1
原创 Redis持久化RDB、AOF原理及对比
Redis 持久化1.RDB1.1.概念RDB全称 redis database Backup file 即redis数据备份文件。相当于把redis内存中的所有数据拷贝到磁盘保存起来。保存的文件称为快照文件也叫RDB文件(默认保存在当前运行目录Redis发生故障重启后能够从磁盘中读取快照文件恢复数据,保障其数据不丢失。1.2.持久化方式redis-cli 建立连接save 主进程执行(会阻塞其他所有命令)bgsave 后台开启子进程执行(异步持久化bgsave基本流程:Fork 主
2021-11-17 19:49:52
3714
原创 Docker是什么及Docker怎么用(命令大全)超详细
1、Dokcer 是什么 1.1概念: 1.1.1官方来讲,Docker是一个基于轻量级虚拟化技术的容器,容器内包含了应用程序的代码(即应用本身)和其运行所需要的依赖、函数库、配置和运行环境,通过容器可以实现方便快速并且与平台结耦的自动化部署方式,并且容器中的应用程序始终运行在同一环境下。1.1.2 通俗解释:Docker的思想来自于集装箱,集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来。并且各种各样的......
2021-10-18 21:30:56
11936
原创 Docker及Compose安装,Docker镜像搭建
Docker,DockerCompose,Docker镜像搭建0.安装DockerDocker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。Docker CE 分为 stable test 和 nightly 三个更新频道。官方网站上有各种环境下的 安装指南,这里主要介绍 Docker CE 在 CentOS上的安装。1.CentOS安装DockerDocker CE 支持 64 位版本 CentOS 7,
2021-10-18 21:20:17
3318
2
原创 Synchronized学习记录(超详解)
目录1. 定义及作用2. 使用方式2.1 常见的三种使用方式如下:2.2 锁的使用规则2.3 锁的类型3. 特点4.缺点及使用synchronized的注意事项 4.1 缺陷 4.2 注意事项5. synchronized 优化(偏向锁、轻量级锁及重量级锁)5.1 自旋锁5.2 偏向锁5.3 轻量级锁5.4锁分配和膨胀过程1. 定义及作用定义:synchronized是Java中的一个关键字作用:synchro...
2021-10-16 16:35:01
3929
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人