自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

科技D人生

做正确的事情永远都比把事情做对更重要。在错误的方向上努力再多也不如找到正确的方向。

  • 博客(1606)
  • 资源 (8)
  • 收藏
  • 关注

原创 Spring Cloud 与微服务学习总结(15)—— Spring Cloud 2021.0.1 发布

Spring Cloud 2021.0.1 正式发布,这是 Spring Cloud 2021 的第一个错误修正版本。支持 2021.0.0 平稳升级目前已经可以从中央仓库获取,坐标如下:dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId>...

2022-02-22 03:30:00 631

原创 Docker 学习总结(71)—— Docker、Docker Compose、Docker Swarm 之间的区别

什么是 DockerDocker 是市场上最流行的基于容器的应用程序之一。Docker 是一个用于构建、部署和管理容器化应用程序的开源平台。使用 Docker,我们可以很容易地将应用程序打包到容器中。Docker 容器将以相同的方式运行,不管你正在运行的底层操作系统是什么。Docker 的发展势头强劲是因为它有以下优势:容器是非常轻量级的,因为它们不包含整个 OS 有效负载; 使用 Docker,当应用程序在各自的环境中运行时,你可以多次运行同一个应用程序实例; Docker 容器可以很容易地

2022-02-21 10:53:32 554

原创 Docker 学习总结(70)—— 从正在运行的 Docker 容器创建镜像

前言如果你刚开始用容器,很有可能是从 Docker 开始 —— Docke r使学习和使用容器技术变得非常容易。如果直接跳到 Kubernetes,你会很快迷路的。所以,大多数人都应该认真考虑从Docker 迈出第一步。今天带大家了解下使用 Docker 容器要做的第一件事。我们会为 Nginx 服务器部署一个容器,对其进行修改,然后从正在运行的容器中创建一个新的镜像,你可以使用该镜像创建新容器。为什么要这样做?对于大多数基于 web 的容器部署,你都使用 Nginx,不必总是部署一个新的 Nginx

2022-02-20 05:30:00 811

原创 Java 学习总结(190)—— Java 测试覆盖率工具 Jacoco 简介

前言测试过程中根据需求文档和设计文档编写测试用例、执行测试;为了更加全面的覆盖,我们可能还需要理解被测程序的逻辑,需要考虑到每个函数的输入与输出,逻辑分支代码的执行情况,这个时候我们的测试执行情况就以代码覆盖率来衡量。覆盖率是衡量测试效果的一个辅助指标。分析未覆盖部分的代码,从而反推在前期测试设计是否充分,没有覆盖到的代码是否是测试设计的盲点,为什么没有考虑到?需求/设计不够清晰、测试设计的理解有误、工程方法应用后的造成的策略性放弃等等,之后进行补充测试用例设计。检测出程序中的废代码,可以逆向反推在代码

2022-02-18 06:00:00 883

原创 Go 语言学习总结(6)—— 学习 Golang 从零到大师

Pic: Gopher mascot and old logo让我们从Go(或Golang)的简短介绍开始。 Go 是由 Google工程师 Robert Griesemer,Rob Pike 和 Ken Thompson 设计的。 它是一种静态类型的编译语言。 第一个版本于 2012 年 3 月作为开源发布。" Go 是一种开放源代码编程语言,可轻松构建简单,可靠且高效的软件"。— GoLang在许多语言中,有很多方法可以解决给定的问题。 程序员可能会花费大量时间来思考解决问题...

2022-02-18 05:00:00 961

原创 Kubernetes 学习总结(22)—— 应用程序迁移到 Kubernetes 应该注意些什么?

前言容器化是实现更自动化基础设施的关键,而将应用程序迁移到 Kubernetes 是一个重大步骤。根据 Canonical 的数据,只有大约 15% 的企业完全使用 Kubernetes 来运行应用程序。大约同样比例的人仍在使用纯粹以虚拟机为中心的基础设施,而其余的人要么计划迁移到 Kubernetes,要么混合使用 Kubernetes、虚拟机和裸金属。是什么阻碍了企业实现应用程序现代化呢?企业一贯支持 DevOps 原则,但许多企业仍然发现很难放弃单体应用程序架构。做出重大改变,比如采用微服务、容器

2022-02-18 05:00:00 608

原创 Kubernetes 学习总结(23)—— 2022 年 Kubernetes 的 5 个趋势

前言Kubernetes 在成长,使用它的团队也在成长。早期采用者现在已经进入了自己的领域,能够基于经验和云原生生态系统的增长,以新的方式扩展 Kubernetes 的核心功能。“我们将继续扩大 Kubernetes 的使用范围,以满足业务的混合云、多云需求。” Liberty Mutual 的架构师 Eric Drobisewski 说,“展望未来,Kubernetes 提供的声明性 API 和强大的协调循环对于统一和提供更一致的方法来跨公共和私有云环境定义、管理和保护数字功能至关重要。”《财富》10

2022-02-17 15:55:29 1426

原创 Kubernetes 学习总结(21)—— 深入理解 Kubernetes 中的 DeamonSet

概述DeamonSet 可以理解为特殊的 ReplicaSet, 即确保每个节点只运行一个 pod 副本的 pod Set,DaemonSet确保全部节点上运行一个 Pod 的副本。 当有节点加入集群时, 也会为他们新增一个Pod。 当有节点从集群移除时,这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod。即单实例,每个节点只跑一个pod。应用场景在每个 Node上运行一个 GlusterFS 存储或者 Ceph 存储的 Daemon 进程 在每个 Node..

2022-02-17 06:30:00 1250

原创 Mysql 学习总结(86)—— Mysql 的 JSON 数据类型正确使用姿势

前言关系型的结构化存储存在一定的弊端,因为它需要预先定义好所有的列以及列对应的类型。但是业务在发展过程中,或许需要扩展单个列的描述功能,这时,如果能用好 JSON 数据类型,那就能打通关系型和非关系型数据的存储之间的界限,为业务提供更好的架构选择。当然,很多同学在用 JSON 数据类型时会遇到各种各样的问题,其中最容易犯的误区就是将类型 JSON 简单理解成字符串类型。但当你看完这篇文章后,会真正认识到 JSON 数据类型的威力,从而在实际工作中更好地存储非结构化的数据。JSON 数据类型JSO

2022-02-16 07:00:00 505

原创 Go 语言学习总结(5)—— Go 学习笔记总结

包package main//导入包import ( "fmt" "math/rand")func main() { fmt.Println("My favorite number is", rand.Intn(10))}函数package mainimport "fmt"//函数常规定义func add(x int, y int) int { return x + y}func main() { fmt.Println(add(4

2022-02-15 11:19:31 751

原创 Kubernetes 学习总结(20)—— Kubernetes 与微服务和容器之间是什么关系?

什么是微服务?什么是微服务?你应该使用微服务吗?微服务与容器和 Kubernetes 有什么关系?从根本上讲,微服务只是一个运行在服务器或虚拟计算实例上并响应网络请求的计算机程序。这与典型的 Rails/Django/Node.js 应用程序有何不同?它根本上没有什么不同。事实上,您可能会发现您的组织中已经部署了十几个微服务。没有任何新的神奇技术使您的应用程序有资格称为微服务。微服务不是由它的构建方式来定义的,而是由它如何变成更通用的系统或解决方案来定义的。那么是如何使服务成为微服务呢?一般来说,微服务

2022-02-11 11:16:28 547

原创 Spring Cloud 与微服务学习总结(14)—— 云原生时代,如何从 Java 开发者转型微服务?

前言根据维基百科定义,微服务不是整体应用程序中的一个层。相反,微服务是一个独立的业务功能,具有清晰的接口,并且可以通过内部组件实现分层架构。从战略角度来看,微服务架构基本上遵循“做一件事,就要做得好” 的Unix 哲学。为了应对传统单体架构的缺陷,微服务架构被企业广泛应用。然而,实践之前有很多问题都需要提前考虑清楚,比如 Java 背景的开发者是否更有优势?微服务、容器化、DevOps 和 CI/CD 之间的关系?如何合理进行微服务拆分、服务治理、容量规划以及人员分配?云原生是基于云平台生态的应用程

2022-02-11 11:04:40 377

转载 Dubbo 学习总结(12)—— 十年再出发,Dubbo 3.0 Preview 即将在 3 月发布

简介: 随着Dubbo和HSF的整合,我们在整个开源的体系中更多地去展现了 HSF 的能力,能够让更多的人通过使用 Dubbo 像阿里巴巴之前使用 HSF 一样更好的构建服务化的系统。2011 年,阿里 B2B 团队决定将项目开源,一年时间就收获了来自不同行业的大批用户;2014 年,由于团队调整,Dubbo 暂停更新;2017 年,Dubbo 开源重启;2019 年,Dubbo 在仅用时 15 个月的情况下从 Apache 基金会毕业;2020 年,阿里内部开始 HSF 和 Dubbo

2022-02-11 10:51:19 369

原创 Java 学习总结(189)—— Java 8 功能接口使用总结

前言功能接口是指只有一个抽象方法的接口,功能接口只能有一个抽象方法,但是可以有多个默认方法和静态方法。一个功能接口可以被注解 FunctionalInterface 注释,一旦被 FunctionalInterface 注解注释,当这个功能接口有多个抽象方法时编译器就会报错。基于只有一个抽象方法的接口使用匿名类时,会使代码看上去很臃肿,针对这个问题 lambda 表达式应运而生。要想使用 lambda 表达式首先必须要有一个对应的功能接口。jdk 里面有一些内置的功能接口,这些内置的功能接口在实际开发过

2022-02-10 13:03:17 670

原创 Go 语言学习总结(4)—— 为什么说 Golang 是面向未来的语言?

前言Golang 是最年轻的编程语言之一,于 2007 年设计,由 Ken Thompson(UNIX 和 C 的设计者和创建者)、Rob Pike(UTF 8 和 UNIX 格式的共同创建者)和 Robert Griesemer 共同创建。Golang 的初衷是希望提高使用多核处理器、大型代码库和网络硬件的工作效率,从而满足从事大型项目的需求,进一步提高生产力,在国内有越来越多的公司逐步将业务需求利用 Golang 实现,并选择 Go 作为创建 Web 产品的核心语言。使用 Go 有什么好处...

2022-02-10 11:27:51 3619

原创 Kubernetes 学习总结(19)—— Kubernetes 集群管理平台如何选择?Rancher vs KubeSphere

前言Kubernetes(K8s)集群管理平台都是基于 Kubernetes 提供功能,可以说他们是在 K8s 的基础上封装了一层更为友好的操作方式。他们都是为了降低 k8s 集群运维复杂度,降低运维成本,使开发者可以尽快上手、部署服务。目前主流的 Kubernetes 集群管理平台就是 Kubesphere 和 Rancher,它们都是基于 K8s 提供功能,但形态有很大不同,那么我们该如何在他们之间进行抉择呢?Rancher介绍Rancher 是一个开源的企业级容器管理平台。...

2022-02-09 14:52:27 6158 2

原创 ELK 学习总结(3)—— 从零搭建一个基于 ELK 的日志、指标收集与监控系统

前言在需要私有化部署的系统中,大部分系统仅提供系统本身的业务功能,例如用户管理、财务管理、客户管理等。但是系统本身仍然需要进行日志的采集、应用指标的收集,例如请求速率、主机磁盘、内存使用量的收集等。同时方便的分布式系统日志的查看、指标的监控和告警也是系统稳定运行的一个重要保证。为了使得私有化部署的系统能更健壮,同时不增加额外的部署运维工作量,本文提出了一种基于 ELK 的开箱即用的日志和指标收集方案。背景在项目中,我们已经使用了 Elasticsearch 作为业务的数据储存,同时利用 ansi

2022-02-09 12:24:32 518

原创 Java 学习总结(188)—— Java 8 方法引用使用总结

前言功能接口是只有一个抽象方法的接口,创建一个lambda表达式时,需要有一个对应的功能接口。lambda表达式可以认为是一个功能接口的抽象方法的具体实现。有一种极端情况,就是一个lambda表达式里面的逻辑非常简单,它只是简单地调用了一个方法。针对这种情况我们就可以省去lambda表达式,改为方法引用,即通过这个方法的名称对这个方法直接进行引用。方法引用是由lambda表达式演进而来的,是针对lambda表达式的一种特殊情况的简化。静态方法引用语法: Class::staticMetho

2022-02-09 12:11:43 282

原创 Java 学习总结(187)—— 轻量级开源日志框架 tinylog 简介

前言前段时间,日志框架各种漏洞爆雷,包括:Log4j 1.x, Log4j 2.x, Logback 等都有爆雷,几乎是团灭。Log4j, Logback 都是主流的日志框架,功能也非常强大,不仅仅是日志记录,所以,功能多,自然也会带来更多的漏洞。其实我们使用日志框架,最多的还是记录系统日志,其他的乱七八糟的功能用的非常少,所以,如果我们仅仅是想寻求一款简单的日志记录框架,可以尝试一下轻量级的开源日志框架tinylog。tinylog基本介绍官方网站:https://tinylog.org.

2022-01-21 11:15:54 1315

原创 Python学习总结(2)—— Python 快速入门

前言Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。 Python 是一种解释型语言:这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。 Python 是交互式语言:这意味着,您可以在一个 Python 提示符>>>后直接执行代码。 Python 是面向对象语言:这意味着 Py...

2022-01-19 14:05:47 1079

原创 Go 语言学习总结(3)—— Go 开发必备库与工具总结

业务开发首先是业务开发,主要包含了web、数据库、Redis等。GinGin 是一款 HTTP 框架,使用简单、性能优秀、资料众多;你还在犹豫选择哪款框架时,那就选择它吧,基本没错。当然和它配套的 github.com/swaggo/gin-swagger swagger 工具也是刚需;利用它可以生成 swagger 文档。GORMGORM 是一款ORM,我们通常采用 ORM 的方式操作数据库,那就选它吧;同样的也是使用简单、资料较多。如果有读写分离需求,也可以使用GORM官方提...

2022-01-19 10:48:24 10240

原创 Docker学习总结(69)—— 不用 Docker 如何构建容器

Docker 有什么问题?Docker 在 armhf、arm64 和x86_64平台上运行良好。Docker CLI 不仅用于构建/发布/运行镜像,多年来它还背负了太多的东西,现在还与 Docker Swarm 和 Docker EE 特性捆绑在一起。Docker 之外的选择有一些项目试图让“docker”回到它原本的组件身份,也就是我们最初都喜爱的用户体验:Docker:Docker 现在使用 containerd 来运行容器,并且支持使用 buildkit 进行高效的缓存式构建。

2022-01-19 10:30:28 321

转载 Jenkins 学习总结(9)—— Jenkins 有哪些替代方案?

前言Jenkins 是目前最常用的持续集成工具,拥有近 50% 的市场份额,它还是很多技术团队的第一个使用的自动化工具。但是随着自动化领域的持续发展,Jenkins 逐渐暴露出了一些问题,例如缺乏功能、维护问题、依赖关系和扩展问题等等。这些问题促使我们寻找替代方法。这就是为什么在本文中,我们提供了用于持续集成的最常见的Jenkins替代品列表。1. BuildMasterBuildmasters是由Inedo研发的Jenkins替代品,它可以使开发者把软件发布到任何环境。该工具为不同的平台提

2022-01-18 15:37:13 777

原创 Kubernetes学习总结(18)—— Kubernetes 容器网络

前言在 Kubernetes中要保证容器之间网络互通网络至关重要。Kubernetes本身并没有实现容器网络而是通过插件化的方式自由接入,容器网络接入需要满足如下基本原则:pod 无论运行在任何节点都可以互相直接通信,而不需要借助 NAT 地址转换实现。 node 与 pod 可以互相通信,在不限制的前提下,pod 可以访问任意网络。 pod 拥有独立的网络栈,pod 看到自己的地址和外部看见的地址应该是一样的,并且同个 pod 内所有的容器共享同个网络栈。容器网络基础一个 Li..

2022-01-18 11:04:36 380

原创 Java基础学习总结(186)—— GraalVM 是 Java 在云原生时代保持强大竞争力的大杀器吗

前言自 1996 年诞生以来,Java 语言长期在最受欢迎的编程语言排行榜中占据领先地位。除了语言本身的优秀特性之外,Java 语言持续演进、不断发展也是它能够保持长盛不衰的重要原因。Java 语言的功能和性能都在不断地发展和提高,但是冷启动开销较大的问题长期存在,难以从根本上解决。Java 语言也因此在 Serverless 场景下无法与 Node.js、Go 等快速启动的语言竞争,落于下风。在这种背景下,作为能够从根本上解决冷启动问题的Java 静态编译技术有了用武之地,开始在业界崭露头角,...

2022-01-18 10:28:05 293

转载 Rust 学习总结(2)—— 2021 年 Rust 行业调研报告

文前Rust 语言是一门通用系统级编程语言,无GC且能保证内存安全、并发安全和高性能而著称。自2008年开始由 Graydon Hoare 私人研发,2009年得到 Mozilla 赞助,2010年首次发布 0.1.0 版本,用于Servo 引擎的研发,于 2015年5月15号发布 1.0 版本。自发布以来,截止到2021 年的今天,经历六年的发展,Rust 得到稳步上升,已逐渐趋于成熟稳定。至 2016 年开始,截止到 2021年,Rust 连续五年成为StackOverflow 语言榜上最受欢迎的.

2022-01-17 00:00:00 3916 1

原创 Linux学习总结(79)—— Shell 编程规范

前言Shell 编程与其它的语言一样也有其约定的一些大家共同认可的约束和规范。编码规范对于程序员而言尤为重要,有以下几个原因:一个软件的生命周期中,80% 的花费在于维护 几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护 编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的代码 如果你将源码作为产品发布,就需要确任它是否被很好的打包并且清晰无误,一如你已构建的其它任何产品编码规范原则:正确性 可读性 可维护性 可调试性 一致性 美观代码

2022-01-14 11:47:53 231

原创 Go 语言学习总结(2)—— Go 语言开发规范

前言Go 语言是一种强类型、编译型的语言,在开发过程中,代码规范是尤为重要的,一个小小的失误可能会带来严重的事故,拥有一个良好的 Go 语言开发习惯是尤为重要的,遵守开发规范便于维护、便于阅读理解和增加系统的健壮性。我们以下约束和规范分为三个等级,分别是:【强制】、【推荐】、【参考】。一、编码相关【强制】代码风格规范遵循 go 官方标准:CodeReviewComments,请使用官方 golintlint进行风格静态分析;【强制】代码格式规范依照gofmt,请安装相关 IDE 插件,...

2022-01-13 17:57:03 1042

转载 Go、Java 和 Rust 的比较

本文是 Java,Go 和 Rust 之间的比较。这不是基准测试,而是更多关注输出可执行文件大小,内存使用,CPU 使用率,运行时要求之间的比较,当然还有一个小的基准测试,可以每秒获取一些请求,并尝试展示一些数据。为了尝试将苹果与苹果进行比较(也许是?),我在此比较中使用每种语言编写了一个 Web 服务。Web 服务非常简单,它为三个 REST 端点提供服务。Web服务在Java,Go和Rust中提供服务的端点。这三个 Web 服务的代码托管在 GitHub: https://github.com/

2022-01-12 19:21:03 2502

原创 Rust 学习总结(1)—— 初识 Rust,作为新势力它的前景如何?

前言在 Stack Overflow 2020 调查中,Rust 被选为最受欢迎的编程语言第一名,这要归功于 86% 的开发人员表示他们会继续使用它。对于语言创造者来说,这并不是什么新鲜事—— Rust 自 2016 年以来一直在这项调查中获胜。在 Tiobe 指数上,Rust 的受欢迎程度也在上升——在 9 月份在最受欢迎的语言中排名第 18 位。它在我们自己的基于情感分析的函数式编程语言排名中也没有失败,在最积极的情感类别中获得第一名。由前 Mozilla 开发人员 Graydon Hoare 于.

2022-01-12 18:57:39 4693 27

原创 Java基础学习总结(185)—— Java 在云原生时代的进化

前言在企业软件领域,Java 依然是绝对王者,但它让开发者既爱又恨。一方面因为其丰富的生态和完善的工具支持,可以极大提升了应用开发效率;但在运行时效率方面,Java 也背负着”内存吞噬者“,“CPU撕裂者“的恶名,持续受到 NodeJS、Python、Golang、Rust 等新老语言的挑战。在技术社区,我们经常看到有人在唱衰 Java 技术,认为其不再符合云原生计算发展的趋势。我们先抛开这些观点,首先思考一下云原生对应用运行时的不同需求。体积更小:对于微服务分布式架构而言,更小的体积意味着更少的

2022-01-12 14:30:05 330

原创 Spring Boot学习总结(30)—— Spring Native 初体验

前言Spring Native 是 Spring 提供的、制作 native image 的技术方案。Spring官方博客于 2021 年 03 月 11 日宣布 Spring Native 的 beta 版本发布,借助 Spring Native 可以将 spring 应用与 GraalVM 集成到 native image 中;native image 是 GraalVM 的一项技术,会将 java 应用的字节码编译成可执行文件,还会与 JDK 的本地库做静态链接,运行应用时无需 Java 虚拟机.

2022-01-12 12:11:44 1275

原创 Maven学习总结(58)—— 常用的 Maven 镜像地址和中央仓库地址汇总

常用的 Maven 镜像地址1、阿里云镜像地址<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf></mirror&...

2022-01-12 10:32:28 1100

原创 Go 语言学习总结(1)—— Go 入门简介

一、并发而生go语言(或 Golang)是Google开发的开源编程语言,诞生于2006年1月2日下午15点4分5秒,于2009年11月开源,2012年发布go稳定版。Go语言在多核并发上拥有原生的设计优势,Go语言从底层原生支持并发,无须第三方库、开发者的编程技巧和开发经验。go是非常年轻的一门语言,它的主要目标是“兼具Python 等动态语言的开发速度和C/C++等编译型语言的性能与安全性”很多公司,特别是中国的互联网公司,即将或者已经完成了使用 Go 语言改造旧系统的过程。经过 Go 语言重构的系

2022-01-11 12:34:15 1147

原创 Mysql学习总结(85)——开发人员最应该明白的数据库设计原则

一、每个表增删改的范围尽量都在本表进行这条原则也是与三大范式有些相悖的,但这样做的好处非常明显。第一,还是从开销角度出发,这样做的话,增删改的开销通常比多表要低。第二,这样便捷开发,在数据存储过程中,如果涉及多表操作,表越多,处理业务逻辑的代码就越多,在开发时难度也就越大。第三,可维护性高,这一点和第二点有点重合,但就是因为单表设计的业务代码会相对简单,所以日后的维护也会相对容易,反之,多表的业务代码庞杂,日后的维护也会非常的困难。二、通过主键体现对应关系,且应体现流程顺序企业级应用

2022-01-11 10:14:16 283

转载 云原生时代,Java 的危与机

今天,25 岁的 Java 仍然是最具有统治力的编程语言,长期占据编程语言排行榜的首位,拥有一千二百万的庞大开发者群体,全世界有四百五十亿部物理设备使用着 Java 技术,同时,在云端数据中心的虚拟化环境里,还运行着超过两百五十亿个 Java 虚拟机的进程实例 (数据来自 Oracle 的 WebCast)。以上这些数据是 Java 过去 25 年巨大成就的功勋佐证,更是 Java 技术体系维持自己“天下第一”编程语言的坚实壁垒。Java 与其他语言竞争,底气从来不在于语法、类库有多么先进好用,而是来自

2022-01-07 11:41:09 488

原创 Docker学习总结(68)—— Docker 数据卷相关知识总结

前言在生产环境中使用 Docker,要想实现数据的持久化(所谓 Docker 的数据持久化即数据不随着 Container 的结束而结束)或者需要在多个容器之间进行数据共享,需要将数据从宿主机挂载到容器中,这就会涉及容器的数据管理操作。Docker 数据卷(data volume,注:位置在/var/lib/docker/volumes)是容器可以访问,但是位置不在 root 文件系统中的一个目录。为了能让容器之间可以共享数据,Docker 让“卷”(volume)可以绕过 Docker 镜像的层叠机制

2022-01-07 10:44:26 683

原创 Linux学习总结(78)—— 常见开源协议讲解

不根据协议使用开源软件可能面临的风险2003 年 Linksys 公司(同年 3 月被思科收购)推出 WRT-54G,这款路由器采用了基于 Linux 的固件,而 Linux 使用的是 GPL 开源协议,所以思科迫于压力,开放了 WRT-54G 的源码,这使得爱好者们知道了路由器固件的实现方式,进而促成了各种相关开源项目的繁荣,其中就包括 OpenWRTAndroid 和 Linux 内核 的关系Android 使用了 Linux 内核,而 Linux 内核采用的是 GPL 的开源协议,所以 G

2022-01-07 09:55:17 3163

原创 Kubernetes学习总结(17)—— Kubernetes 快速入门需要掌握的知识点总结

一、DockerDocker 是基于操作系统的沙盒技术,使得用户更简单和完整的去打包自己的应用。docker 底层是基于 Linux 的操作系统级别的虚拟化技术 LXC 实现;LXC 是通过 CGroup 实现了虚拟化资源管理,用来保证应用资源的隔离和应用系统资源的限制;服务器运行了多个服务,这些服务之间是可以互相影响的,其中的一个服务可以查看另外一个服务,这些是我们不愿意看到的,我们更希望同一台机器运行的服务能够完全隔离,互不影响就像运行在多台机器上一样。而 Linux 为我们提供了 NameSpac

2022-01-06 10:52:48 1276

原创 Docker学习总结(67)—— 取代 Dockerfile 的新型镜像构建技术 Buildpacks 详解

前言云原生正在吞并软件世界,容器改变了传统的应用开发模式,如今研发人员不仅要构建应用,还要使用 Dockerfile 来完成应用的容器化,将应用及其依赖关系打包,从而获得更可靠的产品,提高研发效率。随着项目的迭代,达到一定的规模后,就需要运维团队和研发团队之间相互协作。运维团队的视角与研发团队不同,他们对镜像的需求是安全和标准化。比如: 不同的应用应该选择哪种基础镜像? 应用的依赖有哪些版本? 应用需要暴露的端口有哪些? 为了优化运维效率,提高应用安全性,研发人员需要

2022-01-05 21:59:23 706

Kubernetes 实用技巧大全

K8S 实用命令总结

2021-12-22

Javag工程师简历模版.zip

Java 工程师简历专用模版,供技术人员参考,如何写出好看实用的Java 简历。相关技术从业人员的简历书写可参考改压缩包中的两份简历模版。

2020-08-06

清华-2018人工智能之自动驾驶研究报告.pdf

自动驾驶技术已经成为整个汽车产业的最新发展方向。应用自动驾驶技术可以全面提升汽车驾驶的安全性、舒适性,满足更高层次的市场需求等。自动驾驶技术得益于人工 智能技术的应用及推广,在环境感知、精准定位、决策与规划、控制与执行、高精地图与车联网 V2X 等方面实现了全面提升。

2019-09-02

最新版Myeclipse2018.8破解

最新版Myeclipse2018.8破解,亲测100%有效,欢迎大家下载尝试!

2018-08-25

容器网页终端(websocket-webshell)

Java WebSockt DockerSSH Html5 Tomcat8 等技术写的WebShell 容器网页终端 传统websockt终端和容器化终端解决方案!

2017-09-23

开源博客系统

博客系统

2016-09-22

短信平台,activemq 及常用第三方短信平台接入

短信平台

2016-09-22

netty推送系统

netty推送系统,点对点推送

2016-07-17

空空如也

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

TA关注的人

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