自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于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 593

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

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

2024-06-29 10:47:43 359

原创 容器化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 485

原创 Java基于jjwt操作jwt

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

2024-06-28 07:22:13 990

原创 常见Web认证方式对比

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

2024-06-27 18:04:29 685

原创 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 347

原创 JWT简介

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

2024-06-26 19:04:05 970

原创 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 599

原创 Docker镜像分层

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

2024-06-25 07:35:24 511

原创 Docker 镜像

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

2024-06-25 06:40:00 921

原创 Docker 命令——安全

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

2024-06-24 07:12:04 1946

原创 Docker 日志

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

2024-06-24 06:09:10 999

原创 如何使用 Docker Inspect 命令

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

2024-06-23 13:51:28 747

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

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

2024-06-23 08:35:08 651

原创 docker容器间数据共享

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

2024-06-22 08:57:43 302

原创 Docker 主机网络和空网络

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

2024-06-22 07:36:58 443

原创 Docker 优化构建过程

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

2024-06-21 19:46:46 302

原创 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 290

原创 Docker容器内存限制

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

2024-06-20 19:49:32 693

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

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

2024-06-19 22:20:47 15

原创 docker镜像配置

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

2024-06-19 21:57:44 171

原创 保持docker环境干净

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

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

原创 解释 RESTful API,以及如何使用它构建 web 应用程序

对于每个资源,可以通过HTTP请求方法(GET,POST,PUT,DELETE等)来执行特定的操作。实施服务器端:使用任何服务器端编程语言(如Java,Python,Ruby等)实现API,并使用框架(如Express,Flask等)来处理HTTP请求。实现客户端:实现客户端应用程序,并使用HTTP客户端库(如jQuery,AngularJS,React等)调用API。安全性:在API中使用HTTPS协议,使用身份验证和授权机制(如OAuth2),以确保API安全。

2023-08-28 18:01:11 47 1

原创 工厂模式简序

问题考虑一个常见的场景,我们需要设计一个订单Order类和客户Consumer类,开始时,由于需求比较简单,为了加快速度,我们在需要订单的地方都通过‘new Order()’ 进行订单的创建,一切都很正常,程序运行良好。 对于开发而言,唯一不变的便时“变化”,因此,过来一段时间之后,新的需求来了,在创建订单对象的时候,必须要关联一个客户,如果没有客户,则新创建的订单是没有意义的,非常合理。那现在就要修改之前的程序了,在修改之前,我们做如下考虑:1. ...

2021-11-03 18:30:55 71

原创 单例模式详解

定义 单例模式指的是一个类,在全局范围内(整个系统中)有且只能有一个实例存在。即该类本身负责提供一种访问其唯一对象的方式,不对外提供公共的构造函数(禁用默认公共构造函数),对于该类的实例化由它自己在类的内部进行维护! 优缺点 优点 最大程度的减少了对象的创建和销毁的次数,从而降低的垃圾回收的次数 节约了系统资源,尤其是内存资源 缺点 不能继承,不能被外部实例化 类干预了外部类的使用(外部实..

2021-10-29 15:33:46 100

原创 基于docker部署spring boot应用程序

目前的微服务发展的如火如荼,已是遍地开花。但随着微服务的发展,服务的运维有对开发者提出了新的要求,之前一般是通过maven打出jar包,而后又将jar包上传到相应的服务器,而后运行即可发布,但是随着服务的扩展,通过这种手动的方式发布程序会发现运维的代价会越来越多,尤其涉及到需要将同一个包部署很多的服务器上时,此时就需要替换手动的发布方式,提而代之的时虚拟技术,而其中的docker则是其中的佼佼者。本文,便时初级的基于docker进行打包的步骤,希望对大家有所帮助。 首先,新建一个简单的spring...

2021-09-13 07:09:02 108

原创 系统管理之权限设计

系统管理模块是每个系统的必备点,而其中的权限管理部分是其核心所在。因此,如何设计出一个足够灵活的权限管理功能是系统管理模块设计成功与否的关键所在。而笔者根据近年来自己所开发过的系统管理,对权限部分设计时所遇到的一些关键点进行梳理,一是对自己的工作进行记录,另一个是可以给大家提供一种思路,欢迎大家一起沟通讨论。 权限管理部分设计到了几个比较重要的概念,分别是菜单管理、按钮管理、角色管理以及权限配置几个核心部分,此外,如果涉及到人员所在的多部门情况(集团级架构),则还会涉及到人员管理和部门管理的...

2021-08-01 09:24:03 689

原创 一点点的感受

自从知道了CSDN这个网站后,几乎天天都会到这里来找点东西看,每次都想找到一些自己想看的,当然也找到过,得到了自信单同时也受到了打击。毕竟在这里出入的有太多太多的能人和牛人。每每看到他们的感想或他们在技术方面的到的进步再想想自己真的是差别太大太大了。因此便也不敢些什么东西了,写出了也是很肤浅很肤浅的,因此一直都没写什么,只是看一些他人写的博客,有很多很多的博客写的都很好,很好的,多多少少的给了我不

2011-12-18 18:31:32 318

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

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