容器技术

Spring Boot WebFlux 快速入门实践

假装没事ソ 提交于 2019-12-01 08:39:01
02:WebFlux 快速入门实践 Spring Boot 2.0 spring.io 官网有句醒目的话是: BUILD ANYTHING WITH SPRING BOOT Spring Boot (Boot 顾名思义,是引导的意思)框架是用于简化 Spring 应用从搭建到开发的过程。应用开箱即用,只要通过一个指令,包括命令行 java -jar 、 SpringApplication 应用启动类 、 Spring Boot Maven 插件等,就可以启动应用了。另外,Spring Boot 强调只需要很少的配置文件,所以在开发生产级 Spring 应用中,让开发变得更加高效和简易。目前,Spring Boot 版本是 2.x 版本。Spring Boot 包括 WebFlux。 Spring Boot 2.0 WebFlux 了解 WebFlux ,首先了解下什么是 Reactive Streams。Reactive Streams 是 JVM 中面向流的库标准和规范: 处理可能无限数量的元素 按顺序处理 组件之间异步传递 强制性非阻塞背压(Backpressure) Backpressure(背压) 背压是一种常用策略,使得发布者拥有无限制的缓冲区存储元素,用于确保发布者发布元素太快时,不会去压制订阅者。 Reactive Streams(响应式流) 一般由以下组成: 发布者

Tomcat源码分析二:先看看Tomcat的整体架构

烈酒焚心 提交于 2019-12-01 07:51:50
Tomcat源码分析二:先看看Tomcat的整体架构 Tomcat架构图 我们先来看一张比较经典的Tomcat架构图: 从这张图中,我们可以看出Tomcat中含有Server、Service、Connector、Container等组件,接下来我们一起去大致的看看这些组件的作用和他们之间的相互联系。在这之前,我们先补充一个知识点,也就是Tomcat它实现的功能点是什么呢?通过查找一些资料,这里参考下极客时间《深入拆解Tomcat_Jetty》中的总结,即Tomcat 要实现 2 个核心功能: 处理 Socket 连接,负责网络字节流与 Request 和 Response 对象的转化; 加载和管理 Servlet,以及具体处理 Request 请求。 对应到架构图中,Tomcat 设计了两个核心组件:连接器(Connector)和容器(Container)来分别做这两件事情。连接器负责对外交流,也就是处理Socket连接,容器负责内部处理。 各组件介绍 在介绍各组件之前,我们先关注一下下面这张关系图: 从图中可以看出,最顶层为Server(图中未标明),也就是一个Tomcat实例。在一个Server下面可以有很多个Service服务,而每个Service服务又分为连接器和容器,也就是上面架构图中Connector和Container,其中连接器可以有多个,而容器只有一个

10分钟搭建Kubernetes容器集群平台(kubeadm)

让人想犯罪 __ 提交于 2019-12-01 07:48:43
官方提供Kubernetes部署3种方式 minikube Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用。不能用于生产环境。 官方文档: https://kubernetes.io/docs/setup/minikube/ kubeadm kubeadm可帮助你快速部署一套kubernetes集群。kubeadm设计目的为新用户开始尝试kubernetes提供一种简单的方法。目前是Beta版。 官方文档: https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/ https://kubernetes.io/docs/setup/independent/install-kubeadm/ 二进制包 从官方下载发行版的二进制包,手动部署每个组件,组成Kubernetes集群。目前企业生产环境中主要使用该方式。 下载地址: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.11.md#v1113 1. 安装要求 操作系统 Ubuntu 16.04+ Debian 9 CentOS 7 RHEL 7 Fedora 25/26 (best-effort) 其他

使用 Docker-Compose 编排容器

空扰寡人 提交于 2019-12-01 07:47:00
我们知道使用一个 Dockerfile 模板文件可以定义一个单独的应用容器,如果需要定义多个容器就需要服务编排。服务编排有很多种技术方案,今天给大家介绍 Docker 官方产品 Docker Compose 。 Dockerfile 可以让用户管理一个单独的应用容器;而 Compose 则允许用户在一个模板(YAML 格式)中定义一组相关联的应用容器(被称为一个 project,即项目),例如一个 Web 服务容器再加上后端的数据库服务容器等。 在Docker for Windows中,docker-compose是被默认安装的,你可以通过--version参数来查看安装的版本: Docker Compose 介绍 Docker-Compose 是 Docker 的一种编排服务,是一个用于在 Docker 上定义并运行复杂应用的工具,可以让用户在集群中部署分布式应用。 通过 Docker-Compose 用户可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。Docker-Compose 解决了容器与容器之间如何管理编排的问题。 Docker Compose 工作原理图 Compose 中有两个重要的概念: 服务 (service) :一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。 项目 (project)

基于Docker + Consul + Nginx + Consul-Template的服务负载均衡实现(转)

大兔子大兔子 提交于 2019-12-01 07:25:00
前言 上一篇文章使用 Consul 和 Registrator 在 docker 的容器环境中搭建了服务注册和发现集群。在服务发现和注册的基础上,本文将引入 Nginx 反向代理服务器和 Consul-template 组件,实现动态的服务负载均衡。 正文 1. 工具介绍 1.1. Nginx 一个高性能的 HTTP 和反向代理服务器,用于前端访问流量到后台应用服务器负载均衡和请求转发。 1.2. Consul-template Consul-template 是 HashiCorp 基于 Consul 所提供的可扩展的工具,通过监听 Consul 中的数据变化,动态地修改一些配置文件中地模板。常用于在 Nginx 、 HAProxy 上动态配置健康状态下的客户端反向代理信息。 2. 实现原理 通过 Nginx 自身实现负载均衡和请求转发; 通过 Consul-template 的 config 功能实时监控 Consul 集群节点的服务和数据的变化; 实时的用 Consul 节点的信息替换 Nginx 配置文件的模板,并重新加载配置文件; Consul-template 和 nginx 必须安装在同一台机器上,因为 Consul-template 需要动态修改 nginx 的配置文件 nginx.conf ,然后执行 nginx -s reload 命令进行路由更新

docker简介

岁酱吖の 提交于 2019-12-01 07:11:55
1 ,什么是 docker Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。项目后来加入了 Linux 基金会,遵从了 Apache2.0 协议,项目代码在 GitHub 上进行维护。 Docker 自开源后受到广范的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc 。 RedHat 已经在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 产品中广泛应用。 Docker 的目标是实现经量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器( LXC )等技术。在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要关心容器的管理,使得操作更加简单。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。 下图比较了 Docker 和传统虚拟化方式的不同之处,可见容器是在操作系统层面上实现的虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层现实现 docker 的设计思想 Docker 的思想来自于集装箱,集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响

几种 Docker 监控工具对比

烂漫一生 提交于 2019-12-01 06:27:37
轻量级虚拟化容器 Docker,自发布以来便广受业界关注,在开源界和企业界掀起了一阵风。 Docker 容器 相对于 VM 有以下几个优势:启动速度快;资源利用率高;性能开销小。 从图中可以看出 Docker 和 虚拟机的差异,虚拟机的 Guest OS 和 Hypervisor 层在 Docker 中被 Docker Engine 层所替代,Docker 有着比虚拟机更少的抽象层。由于 Docker 不需要通过 Hypervisor 层实现硬件资源虚拟化,运行在 Docker 容器上的程序直接使用实际物理机的硬件资源。因此在 CPU、内存利用率上 Docker 略胜一筹。Docker利用的是宿主机的内核,而不需要 Guest OS,因此,当新建一个容器时,Docker 不需要和虚拟机一样重新加载一个操作系统内核,因此新建一个 Docker 容器只需要几秒钟。 既然 Docker 这么火,那么问题来了,为了能够更精确的分配每个容器能使用的资源,我们想要实时获取容器运行时使用资源的情况,怎样对 Docker 上的应用进行监控呢?Docker 的结构会不会加大监控难度? 我们都了解, container 相当于小型 host,可以说存在于 hosts 与应用之间的监控盲区,无论是传统的基础组件监控还是应用性能监控的方式,都很难有效地监控 Docker。了解了一下现有的 Docker

虚拟化容器技术

只愿长相守 提交于 2019-12-01 04:55:28
1、大学本科及以上学历,计算机、信息技术等相关专业毕业,实际相关工作经验2年及以上; 2、熟悉linux系统及golang、C/C++等语言编程,掌握shell或者python脚本,熟悉linux系统程序调试方法; 3、熟悉kvm和Docker容器技术,了解kvm和Docker技术框架,熟练使用kvm和Docker命令; 4、熟悉至少一种容器集群架构,Kubernetes, Mesos,Swarm等,精通Kubernetes优先; 5、熟悉公有云、专有云和私有云等容器系统的应用场景; 6、具有良好的沟通能力,包括组间协作、报告、文档撰写。 来源: https://www.cnblogs.com/hshy/p/11656099.html

[docker swarm] 从单容器走向负载均衡部署

僤鯓⒐⒋嵵緔 提交于 2019-12-01 04:49:18
背景     之前写过<<docker-compose真香>> 和《docker-compose、docker stack前世今生》两篇博客, 回顾一下思路: ① docker-compose是docker引擎之上的容器编排工具,Python语言编写; docker stack 是docker引擎原生支持的容器编排技术(Go语言) ② 两者都支持最近docker-compose.yml 版本3容器编排定义文件,部分指令有差异。 昨天生产环境 .NetCore程序突然爆出错误(1个月前也出现过), 先抛出来给网友看下: exception happen when [request for 2246:5ead5a42f80e1000100000005d99f945] : System.InvalidOperationException: Stack empty. at System.Collections.Generic.Stack`1.ThrowForEmptyStack() at System.Collections.Generic.Stack`1.Pop() at NLog.NestedDiagnosticsContext.StackPopper.System.IDisposable.Dispose() at Microsoft.Extensions.Logging.Logger

JAVA300集大型视频

左心房为你撑大大i 提交于 2019-12-01 02:57:46
《java300集》由北京尚学堂科技高淇老师领衔录制,广受好评。2018年新版课程基于JDK8录制,特点: 1. 全面讲解Java基础技术点 2. 深入(内存分析、JDK源码讲解) 3. 手把手敲代码(让学生理解每个字符来源和老师思考过程) 4. 项目穿插(以项目带教学,学生更强) 《JAVA300集》推出四年来,受到了广泛好评,成为多所985高校推荐学习的视频,甚至北大教授都对学生做强力推荐。 课程目录: 01 java入门阶段 001_如何学习JAVA300集 002_计算机发展史和未来方向 003_多种编程语言介绍 004_JAVA的发展历史和未来 005_JAVA的核心优势和生态体系 006_JAVA三大版本含义_JAVAME和安卓开发的关系 007_JAVA的特性和优势 008_JAVA应用程序的运行机制 009_JDK和JRE和JVM的作用和区别 010_JDK下载和安装_JDK目录介绍 011_JDK环境变量PATH设置_classpath问题 012_控制台测试JDK安装和配置成功 013_写出第一个JAVA程序 014_第一个JAVA程序错误总结 015_第一个JAVA程序详细解析 016_最常用DOS命令 017_常用开发工具介绍 018_eclipse开发环境使用原因 019_eclipse下载版本选择和使用 020_eclipse下建立JAVA项目