自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(105)
  • 资源 (5)
  • 问答 (2)
  • 收藏
  • 关注

原创 Kubernetes CI/CD 实战:5分钟部署你的第一个应用

持续集成是一种软件开发实践,它鼓励开发人员频繁地将代码更改集成到共享代码存储库中。在每次提交后,都会自动触发一系列构建、测试和部署任务,以确保代码质量和快速交付。持续交付是一种软件开发实践,它将持续集成与部署过程相结合,以确保代码更改能够快速、可靠地交付到生产环境。Kubernetes CI/CD流程是指将代码更改从开发环境自动部署到生产环境的过程。该流程通常包括以下步骤:代码提交: 开发人员将代码提交到版本控制系统。构建: 构建系统将代码编译、测试和打包成镜像。推送镜像: 镜像推送到镜像仓库。

2024-03-20 18:21:32 1059

原创 Kubernetes 多集群管理

多集群管理是指在多个 Kubernetes 集群上统一部署、调度、监控和管理应用程序的过程。它旨在提高应用程序的可用性、可扩展性和安全性,满足不同场景下的复杂需求。

2024-03-20 15:06:01 638

原创 Ingress 实战:从零到一构建高可用服务

Ingress 是 Kubernetes 中一种用于控制流量进入集群的资源。它可以为集群内的服务提供统一的访问入口,并提供一些额外的功能,例如:路由流量到不同的服务提供基于路径的路由提供基于主机的路由提供 TLS 加密使用身份验证和授权。

2024-03-13 11:36:50 818

原创 一文读懂 Service,助你成为 Kubernetes 高手!

在 Kubernetes 中,Service 是一种抽象的概念,它代表了一组 Pod 的逻辑集合,为 Pod 提供了一个统一的访问地址和端口。Service 可以将 Pod 的 IP 地址和端口号隐藏起来,对外暴露一个稳定的虚拟 IP 地址和端口号,方便外部应用访问。

2024-03-13 11:18:52 844

原创 掌握 Pod 网络安全,纵横 Kubernetes 江湖

Pod 网络是 Kubernetes 中为 Pod 提供网络连接和通信能力的虚拟网络。每个 Pod 都有自己的 IP 地址,可以通过该 IP 地址与其他 Pod 通信。Pod 网络是虚拟的,Pod 之间的通信不会占用宿主机网络资源。Pod 网络配置可以通过 YAML 文件或 kubectl 命令进行。Pod 网络配置包括以下内容:Pod 网段: Pod 网络的 IP 地址范围。Pod IP 地址分配方式: Pod IP 地址可以由 Kubernetes 自动分配,也可以手动指定。

2024-03-13 10:50:54 865

原创 揭秘 Kubernetes Secret:安全存储敏感信息的秘密武器

Secret 是 Kubernetes 中用于存储敏感信息的资源,例如密码、API 密钥和 SSH 密钥。通过选择合适的 Secret 类型并使用安全实践,可以保护您的敏感信息并确保您的应用程序安全可靠。如果您要存储 Docker 镜像仓库的认证信息,请使用 DockerConfig Secret。Opaque Secret: 用于存储任意类型的数据,例如密码和 API 密钥。如果您要存储任意类型的数据,请使用 Opaque Secret。如果您要存储 TLS 证书和密钥,请使用 TLS Secret。

2024-03-13 10:45:40 933

原创 Kubernetes 安全秘籍:5 个你必须知道的知识点

Kubernetes 安全和身份验证是确保集群和应用安全的关键。今天将深入探讨 Service Account、身份验证和RBAC的关键概念和实践,帮助您构建安全可靠的应用。今天本文将着重于安全相关的内容,并提供更详细的示例和配置说明,帮助兄弟们更深入地理解和应用 Kubernetes 安全和身份验证机制。

2024-03-09 22:53:28 793

原创 洞悉 Kubernetes 高阶奥秘:掌控资源、网络、存储,玩转容器化应用!

自定义控制器是一种扩展 Kubernetes 功能的机制。它可以监视自定义资源,并根据资源的状态执行相应的操作。

2024-03-09 22:40:10 743

原创 10分钟带你快速入门K8S

阅读完上述的文章内容,大家可以快速的掌握Kubernetes核心概念和实践技能,可以完美的胜任日常中的一些基本使用,K8S是每一位开发人员必须要学习的技能,可能我们不需要像运维一样掌握的非常深入和精通,但是必要的架构了解以及部署实施方案还是要懂得。否则工作中会遇到各种各样的问题,如果回回请教运维老哥,很影响工作效率。关注我,我们一起学习更多知识,带你了解更多职场信息内容.想要了解更多技术文章请关注公众号“职谷智享”,关注后回复关键字【秒杀】可以领取秒杀系统学习资料。

2024-03-07 17:17:20 885

原创 1w字带你快速入门Docker

1. 什么是容器容器是一种轻量级的、可移植的、自包含的软件单元,它包含运行应用程序所需的所有内容,包括代码、运行时、系统工具、系统库和设置。容器与虚拟机类似,但它们更加轻量级,并且依赖于宿主内核。容器可以使用 Docker 等工具进行创建、管理和部署。容器的优势:轻量级: 容器比虚拟机更轻量级,因为它们不需要包含完整的操作系统。可移植: 容器可以在任何支持 Docker 的平台上运行,而无需进行修改。快速启动: 容器启动速度比虚拟机快得多。资源隔离: 容器可以相互隔离,并限制其使用的资源。

2024-03-07 17:09:51 912

原创 JVM常用排查命令

pidstat 是 Sysstat 中的一个组件,也是一款功能强大的性能监测工具,top 和 vmstat 两个命令都是监测进程的内存、CPU 以及 I/O 使用情况,而 pidstat 命令可以检测到线程级别的。top命令是我们最常用的Linux命令之一,它可以实时的显示当前正在执行的进程的CPU使用率,内存使用率等系统信息。vmstat是一个指定周期和采集次数的虚拟内存检测工具,可以统计内存,CPU,swap的使用情况,它还有一个重要的常用功能,用来观察进程的上下文切换。dump : 生成堆转储快照。

2024-03-04 17:40:43 880

原创 Java的四大引用详解-冲击金三银四

像“Object obj = new Object()”这类的引用均为强引用,当一个对象被强引用变量引用时,它处于可达状态,是不可能被垃圾回收器回收的,即使该对象永远不会被用到也不会被回收。当JVM出现内存不足时,JVM进行垃圾回收,对于强引用的对象,就算是出现了 OOM 也不会对该对象进行回收,打死都不收。因此强引用有时也是造成 Java 内存泄露的原因之一。如果将其引用赋值为null,一般认为是可以被垃圾回收掉的。(具体回收时间还要看使用的GC策略)

2024-03-03 16:39:47 825

原创 快速入门规则引擎

当我们在对复杂的业务进行开发时,程序本身逻辑代码和业务代码互相嵌套、错综复杂,同时维护成本高,可拓展性差。可降低复杂业务逻辑组件复杂性、降低应用程序的维护和可扩展性成本的组件!如下图:规则引擎实际上就是一个推理引擎,用于匹配facts(事实,我们可以理解为输入数据)和rules(规则),以推出结论。

2024-03-03 00:09:33 874

原创 Java已死?凛冽寒风,刺骨现实

而且随着市场的不断恶化,曾经被看做就业的一片绿洲的外包公司,如今也无法幸免于难,使得许多中年Java程序员感到就业前途堪忧。在招聘网站上,随手搜索“Java”,可以看到成千上万的求职简历,其中不乏拥有多年经验的大佬。他们上有老下有小,上有房贷车贷,每个月的开支巨大,仅靠微薄的薪资难以维持生计。猎聘网的数据显示,2024年Java程序员的招聘需求同比下降了30%,而求职者却增加了25%,供需矛盾进一步加剧。2024年,寒风凛冽,不仅吹进了人们的衣领,也吹进了程序员的心里。文章首发于公众号:职谷智享。

2024-03-02 00:09:44 443

原创 Go的并发练习题目

现在有4个协程,分别对应编号为1,2,3,4,每秒钟就有一个协程打印自己的编号,要求编写一个程序,让输出的编号总是按照1,2,3,4,1,2,3,4这样的规律一直打印下去。

2024-01-16 11:00:51 596

原创 Go语言中的Pool

sync.Pool是一个非常有用的工具,它可以提高资源的利用率,减少资源的创建和销毁带来的开销,提高程序的性能。当一个用户访问web应用程序时,应用程序会从pool中获取一个数据库连接,并在处理完用户的请求后将数据库连接归还给pool。Go语言中的pool是一个资源池,它可以存储一定数量的资源,这些资源可以被多个goroutine共享。Pool可以提高资源的利用率,减少资源的创建和销毁带来的开销。sync.Pool还可以减少资源的创建和销毁带来的开销,从而提高程序的性能。

2024-01-15 17:35:06 1390

原创 Go语言网络轮询器

Go语言的网络轮询器是一个非常强大的工具,它可以帮助我们轻松地实现网络并发编程。网络轮询器的工作原理是将多个网络连接映射到一个或多个操作系统线程上,并根据网络连接的状态来决定哪个网络连接应该在哪个线程上进行读写操作。阻塞式网络轮询器是指网络轮询器在等待网络连接可读或可写时会阻塞当前线程。非阻塞式网络轮询器是指网络轮询器在等待网络连接可读或可写时不会阻塞当前线程。Go语言的网络轮询器是基于非阻塞式 I/O 模型实现的,这意味着它不会阻塞当前线程。

2024-01-13 21:10:52 631

原创 Go语言的调度器

Go语言的调度器是一个非常强大的工具,它可以帮助我们轻松地实现并发编程。调度器的工作原理是将多个协程映射到多个操作系统线程上,并根据协程的状态来决定哪个协程应该在哪个线程上运行。协作式调度是指协程主动放弃 CPU 时间片,以便其他协程有机会运行。抢占式调度是指调度器强制剥夺一个协程的 CPU 时间片,以便另一个协程可以运行。Go语言的调度器使用的是抢占式调度算法,这意味着调度器可以随时中断一个协程的执行,并将 CPU 时间片分配给另一个协程。

2024-01-13 21:03:22 458

原创 Go定时器

Go语言的定时器是一个非常强大的工具,它可以帮助我们轻松地实现各种定时任务和超时控制。定时器算法的原理也很简单,它是一种基于时间轮算法实现的。

2024-01-13 20:56:33 553

原创 Go语言的垃圾回收器

Go语言的GC是一个高效、自动的内存管理系统。GC可以帮助程序员避免内存泄漏和内存错误,从而提高程序的稳定性和可靠性。GC使用标记-清除算法来回收内存,并采用了逃逸分析、内存池和大对象分配等优化策略来提高性能。在实际项目中,可以通过减少内存分配次数、避免分配大对象、使用逃逸分析和使用性能分析工具等方式来优化GC的性能。

2024-01-12 16:15:51 1159

原创 Go语言的内存分配器

Go语言的内存分配器是一个高效、低延迟的内存分配器,它可以满足Go语言并发编程的需求。内存分配器使用Bump-the-pointer的分配策略,并采用了逃逸分析、内存池和大对象分配等优化策略来提高性能。在实际项目中,可以通过减少内存分配次数、避免分配大对象、使用逃逸分析和使用性能分析工具等方式来优化内存分配器的性能。

2024-01-12 15:43:03 1043

原创 Go语言中的Channel

Channel是Go语言中一种重要的并发原语,它允许goroutine之间安全地交换数据。Channel是一个类型化的队列,它可以存储一个特定类型的值。goroutine可以通过发送和接收操作来向channel中写入和读取数据。

2024-01-12 13:48:34 641 1

原创 Go语言中的同步原语:ErrGroup、Semaphore和SingleFlight

并发是同时发生多个计算或事件的能力。并发通常通过同时执行多个任务或进程来实现,这些任务或进程共享相同的资源(例如内存或处理器)。并发使用的基本机制被称为锁。在Go语言中,锁是一个类型变量,它包含一个内部计数器,用于跟踪已获取的锁的数量。当一个goroutine获取一个锁时,它会将计数器增加一;当一个goroutine释放一个锁时,它会将计数器减少一。

2024-01-12 13:39:57 1276

原创 Go 语言中的锁

并发是同时发生多个计算或事件的能力。并发通常通过同时执行多个任务或进程来实现,这些任务或进程共享相同的资源(例如内存或处理器)。并发使用的基本机制被称为锁。在Go语言中,锁是一个类型变量,它包含一个内部计数器,用于跟踪已获取的锁的数量。当一个goroutine获取一个锁时,它会将计数器增加一;当一个goroutine释放一个锁时,它会将计数器减少一。Go语言中提供了五种类型的锁:互斥锁(mutex)、读写锁(RWMutex)、等待组(WaitGroup)、一次性锁(Once)和条件变量(Cond)。

2024-01-12 10:28:19 517

原创 Go 语言 panic 和 recover 详解

panic()和recover()是 Go 语言中用于处理错误的两个重要函数。panic()函数用于中止程序并引发panic,而recover()函数用于捕获panic并恢复程序的执行。

2024-01-11 17:34:17 625

原创 Go语言中的Select:深度解析与实战案例

select是操作系统中的系统调用,我们以前在学校中学习操作系统课程或者在工作当中,肯定都使用过或者了解过selectpoll和epoll等函数构建 I/O 多路复用模型提升程序的性能。Go 语言的select与操作系统中的select很相似,今天这篇文章会深度解析 Go 语言select关键字。在Go语言中,select语句用于处理多个通信操作,如通道操作。它允许我们等待多个操作完成,并根据条件执行相应的代码块。select语句在并发编程中非常有用,特别是当我们需要处理多个通道操作时。select。

2024-01-10 18:54:44 1338

原创 Go语言的指针(深度解析)

通过以上内容的学习和理解,我们可以更好地掌握Go语言中的指针概念、使用方法和注意事项。在编写代码时,我们应该遵循类型匹配的原则,避免空指针和内存泄漏的风险。同时,了解指针的运算和比较操作可以帮助我们更好地利用指针进行编程和优化性能。尽管Go语言提供了一些自动管理内存的工具和机制,但我们仍然需要了解指针的基本概念和使用技巧来编写更加高效和可靠的代码。

2024-01-10 14:43:54 1094

原创 Go语言的编译过程

Go 语言和Java语言一样都是一门需要编译才能运行的编程语言,也就是说代码在运行之前需要通过编译器生成二进制机器码。Go 语言编译器的源代码在目录中,目录下的文件共同组成了 Go 语言的编译器,而编译过程是一个多阶段的过程,它将源代码转换为机器代码。词法分析:将源代码分解为标记(token)。语法分析:将标记组合成语法结构。类型检查:检查语法结构是否符合Go语言的类型系统。代码生成:将语法结构转换为机器代码。链接:将机器代码链接成一个可执行程序。

2024-01-09 23:17:05 1252

原创 K8S在线练习环境-Play with Kubernetes

地址:Play with Kubernetes介绍(1)Play with Kubernetes一个提供了在浏览器中使用免费CentOS Linux虚拟机的体验平台,其内部实际上是Docker-in-Docker(DinD)技术模拟了多虚拟机/PC的效果。(2)Play with Kubernetes平台有如下几个特色:允许我们使用github或dockerhub账号登录 在登录后会开始倒计时,让我们有4小时的时间去实践(最好早上和晚上使用,网站容量达到上限时无法使用...

2021-10-25 14:48:51 8890 2

原创 LeetCode-面试题16.25 LRU缓存机制题解

运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当缓存容量达到上限时,它应该在写入新数据之前删除最.

2021-05-08 15:28:37 190

原创 Kubernetes(k8s)CRI(容器运行时)简介

CRI概述节点的底层由一个叫做“容器运行时”的软件进行支撑,它负责比如启停容器这样的事情。最广为人知的容器运行时当属Docker,但它不是唯一的。事实上,容器运行时这个领域发展迅速。为了使Kubernetes的扩展变得更容易,我们一直在打磨支持容器运行时的K8s插件API:容器运行时接口(Container Runtime Interface, CRI)。从1.5版本引入CRI接口规范,通过插件接口模式,k8s无需重新编译就可以使用更多的容器运行。CRI包括Protocol Buffers、gRPC

2021-04-14 00:17:03 3442

原创 Feign Client的超时时间配置

公司使用Spring Cloud微服务架构中,都是利用Feign进行服务间的调用,因为最近业务更改,服务繁杂响应时间边长,需要优化超时时间的配置。1.Feign配置# 默认开启feign.httpclient.enabled=false# 默认关闭feign.okhttp.enabled=true# 默认关闭feign.hystrix.enabled=false# 默认关闭feign.sentinel.enabled=true# default context 连接超时时间fe

2021-03-04 18:13:31 3925 6

原创 CentOS 8 中安装Docker时出现Podman 冲突的问题解决

CentOS 8安装Docker时出现如下问题:使用如下命令即可解决该问题:yum -y erase podman buildah

2020-12-17 14:44:21 2335 1

原创 Centos7安装Redis6.0时make出现报错

服务器为CentOS7,从官网下载Redis安装包后,解压执行make命令,出现了如下报错信息:make[1]: *** [server.o] Error 1make[1]: Leaving directory `/root/redis-6.0.1/src'make: *** [install] Error 2出现这个问题需要先确认GCC的版本,命令如下:gcc -v发现CentOS7默认的gcc版本为4.8.5,安装Redis6.0需要将gcc版本升级到5.3以上,则升级gcc命令

2020-07-02 16:13:40 4434 5

原创 Linux环境上安装MiniKube

安装MiniKube的前提1.首先cd进入/etc/selinux目录,修改config文件内容,将SELINUX修改为disabled2.关闭系统的防火墙systemctl stop firewalld,重启linux服务器3.重启linux服务器之后,我们先安装docker,安装docker之前先执行yum update4.然后执行下面的命令安装一些必要工具:yum...

2020-04-30 23:33:55 1024 1

原创 Docker实战--详解Dockerfile

一、编译镜像1. 编译镜像Dockerfile类似于Makfile,用户使用docker build就可以编译镜像,使用该命令可以设置编译镜像时使用的CPU数量、内存大小、文件路径等语法:docker build [OPTIONS] PATH| URL| -常见选项:-t 设置镜像的名称和TAG,格式为name:tag-f ...

2020-04-09 11:48:05 229 1

原创 Java中Thread类的interrupt(),interrupted()和isInterrupted()方法详解

先介绍一下这三个方法:interrupt()方法中断此线程(不一定是当前线程,指Thread实例代表的线程),该方法实际上是给线程设置一个中断状态,并没有实际中断线程,线程仍会继续执行。如果interrupt()不会中断sleep,wait,join方法,就不会抛InterruptException异常,就不会清除中断标志位,isInterrupt()返回true。如果中断sleep,w...

2020-03-03 13:54:03 747

原创 ThreadLocal理解和应用

本篇博客将为大家介绍一下ThreadLocal。从用途、使用方法、原理、及常见问题四个方面来介绍。1.ThreadLocal用途ThreadLocal用途可以理解成一个“储物间”,这个“储物间”当中拥有大量的“储物柜”,每个“储物柜”实际上就是每个线程,当中存放的是Thread线程中参数,针对于ThreadLocal的set方法其实就是将参数放入到当前线程对应的“储物柜”当中(根据Thre...

2020-02-29 17:05:16 365

原创 Redis缓存雪崩问题

概念由于缓存层承载着大量请求, 有效地保护了存储层, 但是如果缓存层由于某些原因不能提供服务(大量的缓存数据过期), 于是所有的请求都会达到存储层, 存储层的调用量会暴增, 造成存储层也会级联宕机的情况。解决方案1)保证缓存层服务高可用性。 和飞机都有多个引擎一样, 如果缓存层设计成高可用的,将热点数据均匀分布在不同的服务器中, 即使个别节点、 个别机器、 甚至是机房宕掉, 依然可以提...

2020-01-22 00:19:17 146 1

原创 Redis缓存穿透和缓存击穿问题

缓存穿透 描述:缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,且请求的数据均为不存在的数据(id为-1这种)。 解决方案:接口进行参数校验,将必要的参数进行基础校验,超过参数范围则直接拦截; 从缓存取不到的数据,在数据库中也没有取到,这时也可以将key-value对写为key-null,缓存有效时间可以设置短点,如30秒(设置太长会导致正常情况也没法使用)。...

2020-01-22 00:06:59 431

Linux Shell脚本攻略(第2版),高清带书签,人民邮电出版社

Linux Shell脚本攻略(第2版)PDF,高清版带书签,人民邮电出版社

2019-05-29

中国电信SMGP协议文档

中国电信短消息网关协议(SMGP), 前 言 本标准规定了短消息网关与其它网元之间进行短消息传输的接口协议。 本标准是在SMGP协议V2.0的基础上,基于3G网络的短消息业务发展需求进行修订而成。 本标准共包含3部分:1、SMGP基本协议;2、SMGP协议扩展计费接口;3、SMGP协议扩展电子商务接口。本文只描述了第1部分SMGP基本协议,第2部分和第3部分同SMGP协议V2.0。 本标准起草单位:中国电信股份有限公司、中国电信股份有限公司上海研究院 本标准主要起草人:葛敏 周文君 顾丽丽 蒋力 董斌 施唯佳 顾震宇

2017-09-10

js日期插件-精确到年、月、日、时、分、秒

js日期插件,可以精确到年、月、日、时、分、秒

2017-08-11

数据结构与算法分析java语言描述

“数据结构”是计算机专业的基础与核心课程之一,Java是现今一种热门的语言。本书在编写过程中特别考虑到了面向对象程序设计(OOP)的思想与Java语言的特性。它不是从基于另一种程序设计语言的数据结构教材简单地“改编”而来的,因此在数据结构的实现上更加“地道”地运用了Java语言,并且自始至终强调以面向对象的方式来思考、分析和解决问题。 本书是为数据结构入门课程(通常课号是CS-2)而编写的教材。作者Frank Carrano在编写过程自始至终特别考虑到了Java与对象,为教师和学生提供了一种精心设计并经过教学实验的方式借助Java讲授ADT和对象。本书独特的设计将内容组织为相对较短的章。这种方式使学习更容易,并留出了教学的机动性。本书教给学生如何使用线性表、词典、栈、队列等等来组织数据。利用这些数据组织方式,学生们将学到算法设计的相关技术。书中的“编程提示”给读者额外的编程建议;大量的插图使讲解更形象生动;自测题贯穿各章,书末还给出了答案。本书适合作为数据结构的教学用书。 本书还提供了丰富的教辅材料,内容包括PPT、源代码、实验手册与实验解答、练习解答和项目设计解答等,非常适合作为数据结构的教学用书。

2015-12-05

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

TA关注的人

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