容器技术

侯捷 STL

泄露秘密 提交于 2020-01-22 16:42:24
侯捷 STL 源码之前 了无秘密 1.1 headers、版本、重要资源 C++ Standard Library(标准库) vs. Standard Template Library(标准模板库) 2.2 STL 体系结构基础 六大部件: 容器(Container) 分配器(Allocators) 算法(Algorithms) 迭代器(Iterators) 适配器(Adapters) 仿函数(Functors) #include<vector> #include<algorithm> #include<functional> #include<iostream> using namespace std; int main() { int ia[6] = {27, 210, 12, 47, 109, 83}; vector< int , allocator<int> > vi(ia,ia + 6); cout << count_if(vi.begin(), vi.end(), not1(bind2nd( less<int>(), 40 ))); return 0; } 复杂度,Complexity,Big-Oh “前闭后开”区间 range-base for statement and auto (C++11) 3.3 容器 - 结构与分类(一) 大致上分为两种,一个叫做序列式

Docker容器内数据如何映射到本地(数据卷)

浪子不回头ぞ 提交于 2020-01-22 16:15:46
第一种:用户自行维护挂载目录 此种方式涉及到权限问题,用户必须手动处理,如果权限处理不好就会报Permission Denied等问题。 (docker run --name nginx -v /nginx/html:/usr/local/nginx/html -v /nginx/logs:/usr/local/nginx/logs -p 80:80 7743d9092020) 有2种解决方式。 ①、可以通过 setenforce 0 来关闭安全,关闭以后再通过setenforce 1开启 (docker run -d --name nginx -v /nginx/html:/usr/local/nginx/html -v /nginx/logs:/usr/local/nginx/logs -p 80:80 7743d9092020) ②、通过privileged=true (docker run -d --name nginx2 -v /nginx/html:/usr/local/nginx/html -v /nginx/logs:/usr/local/nginx/logs -p 81:80 --privileged=true 7743d9092020) 创建成功以后,容器nginx和nginx2就共享了/nginx/html和/nginx/logs,写一个html测试下 第二种

Doker01

本秂侑毒 提交于 2020-01-22 00:41:02
英[ˈdɒkə(r)] 码头工人; 传统的交付模式:只给软件,不给环境==>研发和运维的 运行环境 差异导致纠纷。 大部分软件都是部署在虚拟机上。 Docker是基于Go语言实现的一种容器技术,比如,它可以包含【程序+文档+配置+数据】等,可以理解成一个集装箱,实现一次封装,到处运行。 www.docker.com--官网(速度慢) www.docker-cn.com--中国雷锋做的中国版的官网(貌似打不开) www.hub.docker.com --仓库,比较慢 --改用阿里云镜像加速器 vim /etc/docker/daemon.json 建议Centos7版,老版本不支持Docker Docker CE社区办 Docker EE 企业版-收费 官网下载安装步骤: https://docs.docker.com/install/linux/docker-ce/centos/ 1, $ sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 2, $ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo 命令中的反斜杠:续行符 3,安装 $ sudo yum

Spring IoC - Spring IoC 的设计

╄→尐↘猪︶ㄣ 提交于 2020-01-21 17:11:47
前言 本文为解读Spring IoC 模块源码的开篇介绍。介绍Spring IoC 的相关概念与设计。 What is IoC 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用传递(注入)给它。 – 摘自维基百科 大型应用中,需要多个类组合工作来实现业务逻辑。这使得每个对象都需要在工作的时候获取到与其合作的对象的引用。 如果这个获取过程要靠自身来实现,那么,代码会变得高度耦合并且难以测试。这对复杂的OOP系统的设计是非常不利的。 在OOP系统中,对象封装了数据和对数据的处理动作,对象的依赖关系体现在了对数据和方法的依赖上。这些依赖关系,可以通过把对象的依赖注入交给框架或IoC容器来完成。 简单来说: 控制:当前对象对其内部成员对象的控制权/获取组装对象的过程 反转:上述的过程/控制权,交由专门的第三方组件(容器或者说平台)来管理 这种从具体对象手中,交出控制的做法,在解耦代码的同时提高了代码的可测试性。好处具体如下: 不用自己组装,拿来就用。 享受单例的好处

Redux入门示例-TodoList

戏子无情 提交于 2020-01-20 22:39:06
Tip 前端技术真是日新月异,搞完 React 不搭配个数据流都不好意思了。 满怀期待的心去翻了翻 flux,简直被官方那意识流的文档折服了,真是又臭又长还是我智商问题?😖 转战 redux ,越看越有意思,跟着文档做了个 TodoList 的入门小例子。 废话不多说,先贴上文章用到例子的源码 https://github.com/TongchengQiu/TodoList-as-redux-demo redux 的 Github 仓库 https://github.com/rackt/redux 还有个中文的 gitbook 翻译文档 http://camsong.github.io/redux-in-chinese/index.html advantage 随着spa(不是SPA,是单页应用)的发展,以 react 来说,组件化和状态机的思想真是解放了烦恼的 dom 操作,一切都为状态。state 来操纵 views 的变化。 然而,因为页面的组件化,导致每个组件都必须维护自身的一套状态,对于小型应用还好。 但是对于比较大的应用来说,过多的状态显得错综复杂,到最后难以维护,很难清晰地组织所有的状态,在多人开发中也是如此,导致经常会出现一些不明所以的变化,越到后面调试上也是越麻烦,很多时候 state 的变化已经不受控制。对于组件间通行、服务端渲染、路由跳转、更新调试

读懂这一篇,集群节点不下线

ぐ巨炮叔叔 提交于 2020-01-20 21:19:02
作者 | 声东 阿里云售后技术专家 导读 :排查完全陌生的问题、完全不熟悉的系统组件,是售后工程师的一大工作乐趣,当然也是挑战。今天借这篇文章,跟大家分析一例这样的问题。排查过程中,需要理解一些自己完全陌生的组件,比如 systemd 和 dbus。但是排查问题的思路和方法基本上还是可以复用了,希望对大家有所帮助。 问题一直在发生 1. I’m NotReady 阿里云有自己的 Kubernetes 容器集群产品。随着 Kubernetes 集群出货量的剧增,线上用户零星的发现,集群会非常低概率地出现节点 NotReady 情况。 据我们观察,这个问题差不多每个月就会有一到两个客户遇到。在节点 NotReady 之后,集群 Master 没有办法对这个节点做任何控制,比如下发新的 Pod,再比如抓取节点上正在运行 Pod 的实时信息。 2. 需要知道的 Kubernetes 知识 这里我稍微补充一点 Kubernetes 集群的基本知识。Kubernetes 集群的“硬件基础”,是以单机形态存在的集群节点。这些节点可以是物理机,也可以是虚拟机。集群节点分为 Master 和 Worker 节点。 Master 节点主要用来负载集群管控组件,比如调度器和控制器; 而 Worker 节点主要用来跑业务。Kubelet 是跑在各个节点上的代理,它负责与管控组件沟通,并按照管控组件的指示

Spring-IOC原理简述

淺唱寂寞╮ 提交于 2020-01-20 04:23:29
今天的这个IOC,不打算分析源码了,一方面觉的Spring的源码很庞大,一步步跟的话容易陷入很深的某一个分支里,而且容易遗忘。所以打算简单的说下原理,大家可以先记下来简单的原理,然后再看看大佬们的博客,然后再一步步debug源码,这样估计也就差不多了。那么接下来就先简单说下IOC的原理吧。 IOC的从广义范围来说,意思是控制反转,什么是控制反转呢,大家肯定都知道,以前我们要使用一个类里的方法或者属性的时候,我们先要new 这个类,然后用这个对象调用里面的方法的。这是传统方式上的使用类里的方法和属性,但是这种方式存在很大的耦合性。为了降低耦合性,Spring出了IOC控制反转,它的含义是指,Spring帮助我们来创建对象就是我们所说的bean,并且管理bean对象,当我们需要用的时候,需要Spring提供给我们创建好的bean对象。这样就从之前我们的主动创建对象变为了,由Spring来控制创建对象,来给我们使用,也就是控制反转的意思。 对于IOC它的设计包括了: 依赖注入、依赖检查、自动配置、支持集合、指定初始化方法和销毁方法、支持回调某些方法。 它主要设计了两个接口用来表示容器 一个是BeanFactory 一个是ApplicationContext 对于BeanFactory这个容器来说,它相当一个HashMap,BeanName作为key,value就是这个bean的实例化对象

.NET Core开发的iNeuOS工业互联平台,iNeuKernel物联网核心组件在Docker容器中部署。

耗尽温柔 提交于 2020-01-19 13:20:59
目 录 1. 概述... 2 2. 演示信息... 2 3. 安装Docker容器... 2 4. 安装dotnet镜像... 3 5. 复制iNeuKernel到容器中... 4 6. 进入指定容器... 4 7. 安装dotnet框架... 4 8. 在Docker容器中运行iNeuKernel物联网框架... 5 1. 概述 最近有客户需求:把iNeuOS部署在Docker下。以前实践过部署在Linux的Ubuntu和树莓派中。参见: https://www.cnblogs.com/lsjwq/p/11655093.html , https://www.cnblogs.com/lsjwq/p/11716909.html 这次我们实践了把物联网核心组件iNeuKernel部署在了Docker容器下,实践证明.NETCore支持云原生方面表现的很好。 今天就放假了,放了15天。最后一天,发一篇文章。 2. 演示信息 iNeuOS在线演示: http://demo.ineuos.net (注:服务器比较慢,请耐心等待。自已注册用户,体验系统功能) 视频演示: http://www.ineuos.net/video/iNeuOS%20and%20app.mp4 驱动开发: http://www.ineuos.net/index.php/products/ineukernel-15

面试之spring

試著忘記壹切 提交于 2020-01-19 04:42:19
1.什么是spring框架? Spring框架 是帮助开发者解决开发中基础性的问题,让开发专注于应用程序的开发。 Spring框架本身是按照设计模式精心打造的 ,我们可以在开发环境中放心的集成spring框架,不必担心spring如果在 后台运行工作的。 spring框架至今 大概集成了 20 多个模块。主要分为核心容器、数据访问 / 集成、web、aop、工具、消息和测试模块等。 2.使用框架带来的好处? 简单列举一些主要好处 : 1 )Dependency Injection ( DI ) 方法使得构造器和javabean properties文件中的依赖关系一目了然。 2 )于ejb容器比较,ioc容器更加轻量,这样ioc容器在有限的内存和cpu资源的情况下,开发和发布就十分有利。 3 )spring没有闭门造车,利用了已有的技术;如orm框架、logging框架、j2ee、quartz、和jdk timer等。 4 )要测试一项用spring开发的程序很简单,因为测试环境代码都已经集成在框架中了 ,更简单的是,利用javabean 形式的pojo类,可以很方便的利用依赖注入写入测试数据。 5 )spring的web框架是一个精心设计的web mvc框架,为开发者们在web框架的选择上提供了一个更好的选择。 6 )spring提供了便捷的事务管理接口,适用于小型的本地事务处理

docker和k8s网络模型复盘

元气小坏坏 提交于 2020-01-19 04:36:46
Docker K8S网络模型复盘 网络模式简介 常见网络模型 docker网络模式 默认模式Bridge详解 Kubernetes网络通信原理 Flannel NetWork原理: 网络模式简介 Docker和k8s跟着老师学了一遍,容器化技术及其编排如此强大,最近让我想不通的是docker及k8s的网络通信是如何实现的,无论是虚拟机还是物理机都有自己的ip,网卡,虚拟网卡等等,然而容器也有自己的ip地址,到了大规模容器编排的阶段,如此大量的容器网络访问管理,虽然了解到他们都有自己的网卡,k8s也有flannel来解决容器通信,但是仍感觉不够透彻,在此通过网上了解和学习理解进行一些梳理,不见得能够彻底理解,仅作复习。 常见网络模型 首先看一下虚拟机常用的网络模式: bridged(桥接模式) ,在桥接模式下,你需要手工为虚拟 系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,由于这个虚拟系统是局域网中的一个独立的主机 系统,那么就可以手工配置它的TCP/IP配置信息,以实现通过局域网的网关或路由器访问互联网。 NAT(网络地址转换模式) ,在NAT网络中,会使用到VMnet8虚拟交换机,Host上的VMware Network Adapter VMnet8虚拟网卡被连接到VMnet8交换机上,来与Guest进行通信