自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 jenkins 部署应用到多个环境

在日常开发的过程中,我们经常会遇到将应用程序部署到多个环境的需求场景,如会先发布到测试环境,由测试人员进行测试,成功之后,会继续将当前应用部署到集成环境,进行集成测试,全部通过后,再继续将应用部署到生产环境,即完成一整个上线的流程。本文将介绍如何基于流水线的方式,将应用部署到多个环境,本次之多两个环境,分别是测试环境和生产环境,可以根据实际情况进行优化调整。

2024-09-09 09:00:40 1232

原创 spring cloud gateway 之删除请求头

除了使用配置,你还可以创建自定义的全局过滤器来实现相同的功能。/*** 删除请求头中的信息*/@Slf4j@Component@Override.build();

2024-09-04 08:56:44 325

原创 NPM淘宝镜像地址切换

已替换为 https://registry.npmmirror.com。更换为淘宝最新镜像源。

2024-08-30 13:09:30 349

原创 spring boot 根据实体类生成表

在开发的过程中,经常会遇到数据库表结构发生变化或者新增表的情况,而spring 体系下提供的spring data jpa可以帮助我们很方便的处理这种情况,只需要简单的配置既可!以下便是实现路径以及其中需要注意的事项。

2024-08-29 10:59:39 744

原创 Spring Cloud Gateway之路由配置

Spring Cloud Gateway提供了丰富且灵活的路由配置方式,可以通过谓词、过滤器、全局过滤器以及动态路由等功能满足各种复杂的路由需求。正确地配置和使用这些选项可以确保API网关在微服务架构中的高效、安全运行。

2024-08-28 15:08:04 768

原创 微服务简介

微服务是一种软件架构风格,通过将一个大型的应用程序分解为一组小型的、相互独立的服务来实现。这些服务可以分别进行开发、部署和扩展,且通常通过轻量级的通信机制(如HTTP API)进行交互。微服务架构的核心思想是将应用程序的各个功能模块拆分为独立的服务,使得每个服务专注于特定的业务能力,从而提升整个系统的灵活性、可维护性和可扩展性。

2024-08-28 13:50:02 284

原创 Java中的引用介绍

通过正确的使用引用可以避免内存泄漏,这应该得到鼓励,因为它将控制权交给了开发人员。Java提供了一个很好的工具箱来帮助我们在这方面的工作。具体来说,有几种类型的引用,每种引用都有自己的用途和相关的垃圾收集器行为。在Java中,引用是指向内存位置的指针,是内存管理和内存泄漏缓解的关键组件。让我们检查一下Java中的各种引用类型,强、软、弱和虚引用,这样我们就可以确定哪种方法最适合任何给定的用例。请记住,我们的总体目的是实现高效的内存管理,避免内存泄漏,以提高Java应用程序的整体性能。

2024-08-26 11:25:11 185

原创 基于jenkins部署maven项目

如上所示,构建后,我们处于项目的根目录之下,可以进行后续的操作,如启动target目录下的jar包、将jar包传输到需要部署的服务器上、打docker镜像bing上传等等,需要根据实际情况进行选择,而这些都可以在“Add post-build step”选项中进行选择。我们主要关注上述几个部分,在General部分,可以对项目进行一个简单的描述,源码管理部分,需要配置对应的源码url,如下图所示。如上所示,选择“构建一个maven项目”,如果没有改选项,则需要安装maven构建的插件,请参考之前的文章。

2024-08-26 09:55:21 5619

原创 Jenkins之Gitlab配置,自动拉取代码

在上一节中,我们配置了在jenkins中如何远程连接SSH服务器,本节将在上一节的基础上,添加jenkins如何配置gitlab服务器,使得jenkins可以直接拉去代码。其基本思路还是上一节生成的公匙,如果有需要,大家可以看下上一节的文章,看下如何在jenkins服务器上生成公匙和私匙,以及如何在jenkins凭据管理中配置私匙。目前默认,大家已经可以获取到jenkins上产生的公匙了,需要复制下来,填充到gitlab中。

2024-08-23 10:04:27 1039

原创 Jenkins配置SSH凭据

在jenkins中,绕不开的便是操作远程的SSH服务器,如向远程服务器传送文件、在远程服务器上执行脚本或者命令等,而这一切的前提,则需要配置访问远程服务器的凭据,常用的方式包括远程服务器的账号和密码以及密匙对等,本文将从SSH插件的安装到认证凭据的配置进行介绍。由于基于账号密码的访问较为简单,便不再进行特殊介绍,本文主要介绍基于密匙对的方式。

2024-08-22 16:01:11 1365 7

原创 jenkins工具配置

上一篇()文章我们介绍了基于docker安装jenkins的过程,本文将介绍如何配置jenkins的相关全局工具如maven、 jdk以及git等配置的页面如下:打开后的页面如下:默认情况,我们可以在改页面配置maven的setting.xml的位置、jdk、git、gradle、ant以及maven等,此外还可以通过安装其他需要的插件,如有需要,也会在改页面展示相关的配置选项,我们先来配置maven。

2024-08-15 10:40:01 796

原创 基于docker部署jenkins服务

Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。

2024-08-15 09:52:12 1108

原创 Spring Cloud Gateway中过滤器的执行顺序

当同时定义超时过滤器、重试过滤器以及断路器过滤器时,其执行顺序如下:

2024-07-25 16:49:53 124

原创 spring cloud集成nacos的配置管理

本文记录了在spring cloud中集成nacos时已出现的某些问题的解答。

2024-07-10 19:36:31 137

原创 maven 配置私服

配置setting.xml。

2024-07-05 19:34:30 117

原创 Ubuntu防火墙相关内容

Ubuntu防火墙相关的命令,主要用于日常使用过程中,忘记命令时查找方便,不用再去各种地方搜索了。以下命令均已root用户执行,如果是非root用户,需要添加sudo。

2024-07-03 12:31:18 375

原创 Ubuntu 安装docker

Centos的docker安装相对来说比较简单,通过yum install docker就可以了,最近来了台Ubuntu的linux系统,但其安装方式相较于centos来说,有些复杂,先将其做个记录。

2024-07-02 18:38:24 615

原创 Spring Security 认证流程

Spring Scurity是spring生态下用于认证和授权的框架,具有高度的灵活性和可扩展行,本节主要对Spring Security的认证过程中进行概括性的介绍,主要介绍在该过程中,会涉及到哪些组件以及每个组件所承担的职责,希望大家可以对Spring Security的认证过程能够有一个清晰的认识。如上图所示,该图展示了在Spring Security的身份验证过程中涉及到的主要组件以及他们之间的关系。这个架构代表了使用Spring Security实现身份验证的骨架主干。

2024-07-01 18:39:28 505

原创 基于docker安装redis服务

以上命令中的第二个-v 会将宿主机中的redis-conf目录下的所有配置文件同步到宿主机的/usr/local/etc/redis目录中,而命令的最后一部分/usr/local/etc/redis/redis.conf是启动redis时使用的配置文件,所以需要确保宿主机的/redis-conf目录下,有个redis.conf配置文件,作为启动redis时使用的配置源。注意,为了保证redis的安全,建议不要使用redis的默认端口6379,而换一个其他的端口号,如下命令,使用16379端口。

2024-06-29 16:41:02 965

原创 多阶段分层构建容器化Spring Boot应用程序

后续代码发生变更后,通过以上步骤,重新打包、构建新的镜像、删除已有的容器并启动新的容器,便可完成进行新代码的部署工作。如上图,需要关注configuration部分的配置以及executions中的设置,否则会导致后续分层配置的失败,本文是经过测试可使用的,大家可以直接复制即可。容器启动后,启动应用程序,需要注意的是,我们不是使用的jar -jar application.jar,而是使用的。开始支持分层构建容器化的镜像,在使用时需要注意,本文使用的spring boot的版本是:3.3.1。

2024-06-29 10:47:43 579

原创 容器化spring boot应用程序

容器化spring boot应用程序有多种方式,如基于简单的Dockerfile,多阶段Dockerfile以及基于Docker Compose等,我们将逐步给大家介绍,本节主要介绍基于简单的Dockerfile进行容器化spring boot的应用程序。其中插件spring-boot-maven-plugin用于打包spring boot的jar包,必须要添加该插件,否则会导致最终的jar包不能执行。Dockerfile需要添加到项目的根目录下,且名字必须是Dockerfile,注意没有后缀名。

2024-06-28 22:59:44 1100

原创 Java基于jjwt操作jwt

之前讲解了jwt的相关知识,有不了解的,可以查看相关的文章,本节不再介绍,主要讲解有关java中如何通过库产生jwt以及解析jwt的相关操作。请注意,上述 JJWT 依赖关系声明只有一个编译时依赖关系,其余的都声明为运行时依赖关系。这是因为 JJWT 的设计使您只依赖于经过明确设计的 API,供您在应用程序中使用,而所有其他内部实现细节(可能会在没有警告的情况下发生变化)都被归类为仅在运行时依赖。如果您想确保长期稳定地使用和升级 JJWT,这一点极为重要。

2024-06-28 07:22:13 1577

原创 常见Web认证方式对比

认证是一个在用户或者设备在访问一个受限的系统时,鉴定用户凭据的过程,即确认“你是谁”的问题。最常见的认证用户的方式是通过用户名和密码的形式进行校验,目前存在多种校验方式,本文将对其进行一个简单的对比,使得大家能够有一个较为完整的了解。基本身份验证内置于 HTTP 协议中,是最基本的身份验证形式。它使用 HTTP 标头,以便在向服务器发出请求时提供用户名和密码

2024-06-27 18:04:29 1178

原创 Docker Compose 入门

与 docker build 和 Dockerfile 的情况一样,通过在一个目录中运行 docker compose,Compose 会搜索一个名为 docker-compose.yaml 的文件。之前的 Docker 命令看似简单,但在幕后,它创建了一个指向文件系统路径的 Docker 卷,然后将其附加到容器上。回顾本节,我们使用 Docker CLI 运行了一个 NGINX 实例,并为使用的 Docker 命令参数添加了相应的 YAML 部分,从而过渡到了 Compose。我们的容器已启动并运行。

2024-06-27 06:19:15 460

原创 JWT简介

JSON 网络令牌(JWT)是一项开放标准,它定义了一种紧凑、自足的方式,可在各方之间以 JSON 对象的形式安全地传输信息。由于该信息经过数字签名,因此可以验证和信任。JWT 可以使用密文(HMAC 算法)或使用 RSA 或 ECDSA 的公钥/私钥对进行签名。虽然 JWT 也可以加密,以在各方之间提供保密性,但我们将重点讨论签名令牌。已签名的令牌可以验证其中所含声明的完整性,而加密令牌则可以向其他方隐藏这些声明。使用公钥/私钥对令牌进行签名时,签名也证明只有持有私钥的一方才是签名方。

2024-06-26 19:04:05 1021

原创 Docker可视化工具Portainer

首先,我们将使用 Portainer 来管理本地运行的单个 Docker 实例。我运行的是 Linux 版 Docker,因此我将使用它,但这些说明也适用于其他 Docker 安装。当我们运行 docker image ls 命令时,你可以从输出结果中看到,Portainer 映像只有 79.1 MB。从刚才运行的命令中可以看到,我们正在将 Docker Engine 的挂载到 Docker 主机上。这样做可以让 Portainer 完全无限制地访问主机上的 Docker 引擎。

2024-06-26 07:17:07 696

原创 Docker镜像分层

Docker 镜像是松散连接的只读层的集合,每个层由一个或多个文件组成。下图显示了一个有 5 层的镜像。Docker 负责堆叠各层,并将它们表示为一个统一的对象。有几种方法可以查看和检查组成镜像的图层。事实上,我们在前面拉取镜像时就看到了一种方法。下面的示例将详细介绍镜像拉取操作。上面输出中以 " Pull complete "结尾的每一行都代表镜像中被绘制的图层。如下图所示,该图像有 5 个图层,图层 ID 如图 所示。另一种查看镜像层的方法是使用 docker inspect 命令检查镜像(

2024-06-25 07:35:24 539

原创 Docker 镜像

容器镜像是一个只读包,它包含运行应用程序所需的一切。它包括应用程序代码、应用程序依赖项、一组最基本的操作系统结构和元数据。一个镜像可用于启动一个或多个容器。如果你熟悉 VMware,就会认为映像与 VM 模板类似。虚拟机模板就像一个停止运行的虚拟机,而容器镜像就像一个停止运行的容器。如果你是一名开发人员,你可以把它们想象成类似于类。你可以从类中创建一个或多个对象,也可以从镜像中创建一个或多个容器。我们从镜像注册表中提取容器镜像。最常见的注册表是 Docker Hub,但也有其他注册表。

2024-06-25 06:40:00 1378

原创 Docker 命令——安全

我们将学习两个命令。第一个命令是 docker container run 命令,这样你就能看到使用该命令的一些好处。其次,我们将看看 docker container diff 命令,你可以用它来查看在已有的镜像基础上做了什么。让我们看看如何使用这两个命令来确保容器的安全。

2024-06-24 07:12:04 2362

原创 Docker 日志

要将日志输出限制为较新的日志,可以使用 --since 选项,只显示指定 RFC 3339 日期(如 2002-10-02T10:00:00-05:00)、Unix 时间戳(如 1450071961)、标准时间戳(如 20220731)或 Go 持续时间字符串(如 5m45s)之后的日志。尽管该机制是由 JSON 文件支持的,但它的性能足够好,如果这是你的解决方案,大多数生产应用程序都可以采用这种方式记录日志。这是一种不常见的日志格式,但它是结构化的,而不仅仅是原始流,这对以后处理日志很有帮助。

2024-06-24 06:09:10 1384

原创 如何使用 Docker Inspect 命令

docker inspect 是必不可少的 Docker 命令之一。它能让你提取各种 docker 对象的信息,知道如何使用它是每个人都应该知道的事情。inspect 的主要优势在于其格式化功能,例如您可以通过检查运行中的容器来提取其 IP 地址,并以特定方式进行格式化。Docker 使用 go-templates 来格式化输出。在本文中,我将首先介绍 Docker inspect 命令的基础知识,然后重点介绍如何根据具体需要格式化输出。

2024-06-23 13:51:28 1268

原创 docker配置容器——环境变量

export注意我们是如何以 <key>=<value> 的格式在每行定义一个环境变量的,其中 <key> 是环境变量的名称,<value> 代表与该变量相关联的值。

2024-06-23 08:35:08 988

原创 docker容器间数据共享

对于在容器中运行的应用程序来说,容器就像是沙盒。这主要是为了保护在不同容器中运行的应用程序互不干扰。这也意味着,在容器内运行的应用程序所能看到的整个文件系统对该应用程序来说都是私有的,在不同容器中运行的其他应用程序无法对其进行干扰。但有时,我们希望在容器之间共享数据。假设在容器 A 中运行的应用程序产生了一些数据,而在容器 B 中运行的另一个应用程序将消耗这些数据,可以使用 Docker 卷来实现这一目的。我们可以创建一个卷,并将其挂载到容器 A 和容器 B。

2024-06-22 08:57:43 325

原创 Docker 主机网络和空网络

因此,在运行 Docker 容器时,一般建议使用用户自定义的网络而不是主机网络,因为这样可以提供更好的隔离性,降低冲突和安全漏洞的风险。在启动容器时,如果不指定网络参数,则默认使用bridge网络,而另外两种类型的网络则使用的较少,而在本文中,我们将探讨这两种预定义且有些独特的网络类型,即docker主机网络和空网络。说明,容器使用了与主机一致的网络,两个网络是相同的。当我们需要在容器中运行某些用于分析或调试主机网络流量的软件时,这可能是必要的,但请记住,这些都是非常特殊的情况。

2024-06-22 07:36:58 462

原创 Docker 优化构建过程

根据经验,您肯定知道,在具有许多外部依赖关系的典型 Node 应用程序中,npm install 命令是一项相当昂贵的操作。也就是说,每次源文件发生变化(我们知道这在开发过程中经常发生),Dockerfile 中的第 3 行都会导致相应的映像层发生变化。因此,Docker 构建器无法重用缓存中的这一层,也无法重用 RUN npm install 创建的后续层。首先,我们需要知道映像由一系列层组成。也就是说,前面的 Dockerfile 结构会使镜像层缓存失效,或者就像我们经常听到的那样,会破坏镜像层缓存!

2024-06-21 19:46:46 317

原创 Docker 容器 CPU 限制详解

本文主要讲解其中常用的两个—cpus(用于限制cpu内核数量) 和 --cpu-shares(用户限制cpu内核周期)以及如何查看为容器分配cpu的情况。不过,当 CPU 资源不足时,可以使用 --cpu-shares 选项来控制容器可用的 CPU 周期份额。要检查容器的 CPU 限制,请使用下面的 docker inspect 命令。当出现资源竞争时,分配2048 CPU 共享的容器获得的 CPU 时间是默认容器的两倍。--cpus选项的值是一个十进制数,即该选项也接受一个CPU内核的分数。

2024-06-20 19:57:02 517

原创 Docker容器内存限制

目前,该容器只使用了 61.38MiB 内存,限制为 512MiB。打开另一个终端窗口,执行 docker stats stress-test 命令,观察所有正在运行的 Docker 容器的资源消耗情况。容器的一个重要功能之一,除了封装应用程序进程之外,还可以限制单个容器最多可以消耗的资源。前面的命令创建了三个子进程,它们将 使用malloc() 分配内存,直到系统内存耗尽,从而对系统内存造成压力。在运行 Docker stats 的终端中,观察 MEM USAGE 的值如何接近但从未超过 LIMIT。

2024-06-20 19:49:32 801

原创 在容器中执行简单的管理任务

现在,我们可以运行一个安装了 Perl 的容器了。更重要的是,脚本运行后,容器会从系统中移除,不会留下任何痕迹,因为我们在 docker container run 命令中使用了 --rm 标志,它会自动移除已停止的容器。这种方法的妙处在于,之前的 Perl 脚本和最后的 Python 脚本现在可以在安装了任何操作系统的任何计算机上运行,只要该计算机是 Docker 主机,因此可以运行容器。第一次执行命令时,会先拉取镜像,容器启动后,便会执行perl的脚本,也就是说,所有的尾部空白都已删除。

2024-06-19 22:20:47 35

原创 docker镜像配置

最近发现docker镜像无法拉取了,之前配置了阿里云的镜像后,一般拉取镜像都比较快,但是最近好像不行了,多次尝试后,依然无法拉取,查询后,发现目前有些镜像加速已经不可以用了,原因大家都懂,不再赘述。

2024-06-19 21:57:44 390

原创 保持docker环境干净

在开发或持续集成(CI)环境中,尤其是在创建了大量临时卷的环境中,对卷进行删除是一种很好的做法。所谓悬挂的 Docker 镜像是一种未使用的镜像,与任何标签(tag)的镜像或容器都没有关联。Docker 不会删除旧镜像,而是保留它,但会删除标签引用,使镜像没有适当的标签。而prune命令,则会直接删除所有退出的容器,同理添加-f选项,使得docker不会再出现询问的提示框。因此,最好不时删除它们。执行该命令时,docker会向你确认是否要删除这些镜像,输入y就可以了,我们也可以使用以下命令直接删除。

2024-06-17 20:56:25 1175 1

Manning.F#.Deep.Dives.2014.12.pdf

Manning.F#.Deep.Dives.2014.12

2023-08-08

Manning.Neo4j.in.Action.2014.12.pdf

Manning.Neo4j.in.Action.2014.12.pdf

2023-08-08

系统设计 算法实现 线性规划

系统设计用vc6.0实现、造船和选址等问题

2011-10-23

通讯录 代码大全

基本上实现了通讯的基本信息,用了列表框,并实现了按钮颜色的设置在其中还可以对其进行简单的修改

2011-10-23

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

TA关注的人

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