容器技术

【Spring】IoC概述

China☆狼群 提交于 2020-01-13 21:37:52
Spring框架的核心概念——IoC IoC IoC是Inversion of Control的简写,翻译成汉语就是“控制反转”。IoC并不是一门技术,而是一种设计思想,在Spring中实现控制反转的是IoC容器,其实现方法是依赖注入(Dependency Injection,DI),DI是实现IoC的一种方法。 在没有IoC设计的场景,没有IoC的程序,我们使用所需的对象时,需手动创建各种对象,对象的创建与对象间的依赖关系完全硬编码在程序中。 有了IoC这样的设计思想,在开发中,意味着将设计好的对象交给容器管理(没有IoC,对象的创建由程序自己控制,有了IoC后将对象的创建转移给第三方),而不再是像传统的编程方式中,在对象内部直接控制对象。 如何理解IoC呢?把握好两块:控制、反转。 1、控制:由谁控制,控制了什么? 由谁控制,由IoC容器来控制,控制了什么?控制了对象 没有IoC的程序中 , 我们使用面向对象编程 , 我们直接在某个对象内部通过new关键字创建另一个对象,是我们主动去创建依赖对象;而IoC的设计思想,是通过专门的对象容器来创建和维护对象。 控制 : 谁来控制对象的创建 , 传统应用程序的对象是由程序本身控制创建的 , 使用Spring后 , 对象是由Spring来创建的 2、反转:什么是反转,反转了哪些方面? 什么是反转,容器帮开发人员创建依赖对象

微服务监测的五大原则

﹥>﹥吖頭↗ 提交于 2020-01-13 19:23:16
一、背景 容器和微服务的出现并得到大量应用,从根本上改变了应用系统的组成和运行方式。而随着开发人员开始利用编排系统来管理和部署容器,规则进一步发生了变化。以往主机上的一个简单应用,现在已成为一个复杂的、动态编排的、多容器的体系架构,这同时也对应用的监测提出了全新的挑战。 Sysdig,是专注于系统故障排查和监控工具的公司,其产品Sysdig Cloud是定位于容器系统故障排查和监控的平台。在今年召开的JFrog SwampUp用户大会上,Sysdig公司提出监测容器及构建在其上的微服务的五大关键原则。这些原则充分考虑了容器和微服务与传统架构在运维方式上的差异。 本文即是根据Sysdig公司在本次大会上的演讲视频整理而成的。 二、微服务是什么 要正确地监测微服务,首先要正确地理解什么是微服务。 演讲首先引用了Martin Fowler关于微服务的定义(Martin Fowler是国际著名的面向对象分析设计、UML、模式等方面的专家,敏捷开发的创始人之一,现为ThoughtWorks公司的首席科学家。很多人了解微服务架构都是从Martin Fowler的这篇文章开始的),即“微服务架构”描述了一种将软件应用程序设计为一组可独立部署的服务的特定方式。其中,“围绕业务能力的特性”,也就是说,微服务的划分不是依据程序的大小,而是以业务能力的拆分为基准的。这种业务细分后的服务,以及自动化部署

Spring的DI和AOP

☆樱花仙子☆ 提交于 2020-01-12 23:19:26
Spring 为了降低Java开发的复杂性,Spring采取了以下4种关键策略: * 基于POJO的轻量级和最小入侵性编程; * 通过依赖注入和面向接口实现松耦合; * 基于切面和惯例进行声明式编程; * 通过切面和模板减少样板式代码; 几乎Spring所做的任何事情都可以追溯到上面一条或者多条策略。 DI: 控制反转(Inversion of Control,英文缩写为IoC)是框架的重要特征,并非 面向对象编程 的专用术语。它与依赖注入(Dependency Injection,简称 DI )和依赖查找(Dependency Lookup)并没有关系。如设计模式中的模板方法模式就是控制反转的一种。 控制反转即IoC (Inversion of Control),它把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现对象组件的装配和管理。所谓的"控制反转"概念就是对组件对象控制权的转移,从程序代码本身转移到了外部容器。 IoC是一个很大的概念,可以用不同的方式来实现。其主要实现方式有两种:<1>依赖查找(Dependency Lookup):容器提供回调接口和上下文环境给组件。EJB和Apache Avalon都使用这种方式。<2>依赖注入(Dependency Injection):组件不做定位查询,只提供普通的Java方法让容器去决定依赖关系

Docker(四):Docker 三剑客之 Docker Compose

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

容器技术Docker、Docker-Compose、k8s的演变

匆匆过客 提交于 2020-01-12 18:38:22
  越来越多的应用开始容器化以及上云,可能有些人直接接触的就是k8s(Kubernetes)的概念以及操作了,但是理清一下容器化技术的一些演变过程,是一件很有意思的事情,同时也可以加强我们对容器化技术的深入理解和具体场景下运用哪种技术。 一、Docker vs 虚拟机   KVM技术的发展,解放了单台服务器物理机的资源过剩的浪费,虚拟机的资源互相独立,部署应用不受影响,但缺点是占用资源多,有安全补丁更新时候要一起更新,管理起来比较麻烦。容器Docker就是为了解决这种困境,在耗费资源低的情况下,又可以方便部署资源和依赖互相独立的应用,从而实现快速部署。他们俩的层级差异如图:   正如docker的鲸鱼图上的集装箱一样,docker的容器运行是以沙盒的机制运行,共享底层操作系统,会把应用需要的依赖打包在一起,以沙盒的方式,在同类型的操作系统上,可以自由迁移部署运行,如此就可以极大地解放了部署环境不一致的问题。 二、Docker-Compose 的诞生   容器化的盛行,也带来了新的问题,那就是如何高效地去部署和管理这些镜像呢?因为比较大型的应用服务,往往需要多个组件一起合作才能正常运行,这就给单docker容器部署提出了挑战,Docker-Compose就像下面这只八爪章鱼,可以同时进行多容器的构建以及部署运行。 三、k8s(Kubernetes)的横空出世 vs Docker

一篇搞定Docker是什么

半世苍凉 提交于 2020-01-12 05:38:15
一、 Docker 是什么 1.1 什么是 Docker docker是一个开源的软件部署解决方案; docker也是轻量级的应用容器框架; docker可以打包、发布、运行任何的应用。 Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新,并于 2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 GitHub 上进行维护。Docker 项目后来还加入了 Linux 基金会,并成立推动 开放容器联盟(OCI)。 Docker 自开源后受到广泛的关注和讨论,至今其 GitHub 项目已经超过 4 万 6 千个星标和一万多个 fork。甚至由于 Docker 项目的火爆,在 2013 年底,dotCloud 公司决定改名为 Docker。Docker 最初是在 Ubuntu 12.04 上开发实现的;Red Hat 则从 RHEL 6.5 开始对 Docker 进行支持;Google 也在其 PaaS 产品中广泛应用 Docker。 Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 AUFS 类的 Union FS 等技术,对进程进行封装隔离,属于

Docker入门---介绍和安装Docker

删除回忆录丶 提交于 2020-01-12 00:00:02
Docker安装文档 Docker介绍 背景 由于不同的机器有不同的操作系统,以及不同的库和组件,在将一个应用部署到多台机器上需要进行大量的环境配置操作。Docker 主要解决环境配置问题,它是一种虚拟化技术,对进程进行隔离,被隔离的进程独立于宿主操作系统和其它隔离的进程。使用 Docker 可以不修改应用程序代码,不需要开发人员学习特定环境下的技术,就能够将现有的应用程序部署在其它机器上。 简介 Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到 任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 Docker是世界领先的软件容器平台。开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。 运维人员利用 Docker 可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用 Docker 可以构建敏 捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为 Linux 和 Windows Server 应用发布新功能。 框架 Docker使用C/S架构,Client通过接口与Server进程通信实现容器的构建,运行和发布,如图: Host(Docker 宿主机) 安装了Docker程序,并运行了Docker daemon的主机。 Docker

linux-----docker

可紊 提交于 2020-01-11 20:46:17
docker简介 Docker时Docker.Lnc公司开源的一个基于LXC技术之上搭建的Container容器引擎,源代码托管在Github上,基于Go语言并遵从Apache2.0协议开源。 Docker属于Linux容器的一种封装,提供简单易用的容器使用接口。 docker的三大概念   镜像:我们可以理解为系统盘的dvd镜像,轻量级的镜像文件   仓库:存储docker镜像   容器:是基于镜像运行的,容器实例 docker的安装 1.安装docker   yum install docker -y 2.启动docker   systemctl start docker 3.docker加速器下载,以及配置    curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io   会生成一个docker配置文件,路径是/etc/docker/daemon.json 4.配置了docker加速器,需要重启docker   systemctl restart docker docker基本命令   增:     docker pull 镜像名字 #下载镜像     docker run 镜像名字 #运行镜像,产生容易实例     docker run

Fabric1.4:手动启动 first-network 网络(三)

人盡茶涼 提交于 2020-01-11 18:22:09
注意:本文所使用的 fabric 版本为 v1.4.3,与其它版本的网络存在差异。 手动启动 first-network 网络系列分为三部分: 手动启动 first-network 网络(一) 手动启动 first-network 网络(二) 手动启动 first-network 网络(三) 第一篇单纯使用命令行的形式执行 byfn.sh 脚本中的内容,第二篇和第三篇是对手动启动网络过程所使用的命令和配置文件的解释。 1 启动分布式网络 手动生成 fabric 网络所需的配置文件后,接下来需要启动区块链中提供网络服务的各个节点。fabric 采用容器技术,使用 docker-compose 这个工具来实现区块链网络所需的节点容器管理,实现方式只需要编写节点相应的配置文件即可。 1.1 docker-compose-cli.yaml 在 first-network 目录下提供了一个 dokcer-compose 工具所需的配置文件 docker-compose-cli.yaml,我们使用该文件启动网络节点,下面是该文件的内容: version: '2' # 表示用的版本 2 的 YAML 版本 volumes: orderer.example.com: peer0.org1.example.com: peer1.org1.example.com: peer0.org2.example

以编程方式使用 Microsoft Office Visio 2003 ActiveX 控件

主宰稳场 提交于 2020-01-11 07:26:05
以编程方式使用 Microsoft Office Visio 2003 ActiveX 控件 2007/10/29 Mark Bukovec Empire Down Development 适用于: Microsoft® Office Visio® 2003 **摘要:**学习将 Microsoft® Office Visio® 2003 ActiveX® 控件(即 Visio 绘图控件)集成到应用程序中。查看最佳作法以及如何以编程方式使用 Visio 绘图控件。 本页内容 简介 了解 Visio 绘制控件 使用 Visio 绘图控件的场景 设计最佳作法 开始使用 将控件与主机容器相结合 部署 小结 简介 Microsoft® Office Visio® 2003 ActiveX® Control(Visio 绘图控件)通过丰富的 Visio 对象模型,作为可嵌入组件来提供 Visio 应用程序的完整功能。您可以通过宿主应用程序中的事件或代码,以编程方式驱动 Visio 绘图控件。此外,Visio 绘图控件可以在您自己的应用程序用户界面 (UI) 的上下文中为应用程序用户提供图表制作环境。 在本文中,您将学到: Visio 绘图控件的功能和示例使用场景。 在 Visio 解决方案中使用 Visio 绘图控件的最佳作法。 如何将 Visio 绘图控件嵌入到各种宿主应用程序中,包括