容器

spring源码解读(二)基础篇之servlet3.1规范

你说的曾经没有我的故事 提交于 2019-12-11 06:00:10
目录 servlet接口 request servletContext response filter filter生命周期 filter环境 在Web应用中配置filter filter和RequestDispatcher 会话 Cookies URL 重写 会话完整性 注解 @WebServlet @WebFilter @WebInitParam @WebListener @MultipartConfig 其他注解/惯例 可插拔性 web fragment web.xml和web-fragment.xml顺序 可插拔性 web应用 Web应用程序部署 包含web.xml部署描述文件 servlet3.1规范中文版。 参考文章: Servlet 是基于 Java 技术的 web 组件,容器托管的,用于生成动态内容。    早期的Web应用主要用于浏览新闻等静态页面,Http服务器(比如Apache,Nginx)向浏览器返回静态HTML,浏览器负责解析HTML,将结果呈现给用户。   需求:为了不仅仅浏览静态页面,还希望通过一些交互操作,来获取动态结果。那么可以通过让HTTP服务器调用服务端程序来实现。   那么服务端如何来实现这个需求呢?   Sun公司就推出了Servlet技术。Servlet可以理解为运行在服务端的Java小程序,因为Servlet不能独立运行

SpringBoot2(七)系统事件

三世轮回 提交于 2019-12-11 04:46:13
之前写SpringBoot系列的文章,已经是1年前了,如果没什么特殊需求,基本不会去改动代码,自己写的东西多了,重构代码就相当费劲,因为要做SpringCloud,打算用SpringBoot2重构一下系统。 与传统的Spring不同,SpringBoot有很多默认配置,就像HandlerMethodReturnValueHandler接口,框架直接帮我们写了一个,自己再写直接就不生效了。 系统事件,主要作用在启动方面: 1、ApplicationStartingEvent:springboot启动开始的时候执行的事件,在该事件中可以获取到SpringApplication对象,可做一些执行前的设置。 2、ApplicationEnvironmentPreparedEvent:spring boot 对应Enviroment已经准备完毕,但此时上下文context还没有创建。在该监听中获取到ConfigurableEnvironment后可以对配置信息做操作,例如:修改默认的配置信息,增加额外的配置信息等等。 3、ApplicationPreparedEvent:SpringBoot上下文context创建完成,但此时spring中的bean是没有完全加载完成的。在获取完上下文后,可以将上下文传递出去做一些额外的操作。 4、创建对象 5、初始化对象 6

微服务

你。 提交于 2019-12-11 03:40:54
微服务 微服务是一个新兴的软件架构,就是把一个大型的单个应用程序和服务拆分为数十个的支持微服务。一个微服务的策略可以让工作变得更为简便,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。 一、微服务应用设计原则 (一)AKF扩展立方体:是一个叫AKF的公司的技术专家抽象总结的应用扩展的三个维度。理论上按照这三个扩展模式,可以将一个单体系统,进行无限扩展。 X 轴 :指的是水平复制,很好理解,就是讲单体系统多运行几个实例,做个集群加负载均衡的模式。 Z 轴 :是基于类似的数据分区,比如一个互联网打车应用突然或了,用户量激增,集群模式撑不住了,那就按照用户请求的地区进行数据分区,北京、上海、四川等多建几个集群。 Y 轴 :就是我们所说的微服务的拆分模式,就是基于不同的业务拆分。 (二)无状态服务: 什么是状态:如果一个数据需要被多个服务共享,才能完成一笔交易,那么这个数据被称为状态。进而依赖这个“状态”数据的服务被称为有状态服务,反之称为无状态服务。 那么这个无状态服务原则并不是说在微服务架构里就不允许存在状态,表达的真实意思是要把有状态的业务服务改变为无状态的计算类服务,那么状态数据也就相应的迁移到对应的“有状态数据服务”中。 (三)无状态通信—Restfu API Restful 通信风格 : 无状态协议HTTP,具备先天优势,扩展能力很强。例如需要安全加密是

容器监控之 cadvisor

不打扰是莪最后的温柔 提交于 2019-12-11 01:02:53
###docker stats 对 cadvisor dokcer stats 可以查看运行的 Docker 镜像的运行状态,例如: 这种方式比较原始,因为你无法通过 http 的方式来获取数据,而且没有界面,数据可视化还需要做大量的工作。 由于 dokcer stats 有这些问题,所以 cadvisor 诞生了。 cadvisor 不仅可以搜集一台机器上所有运行的容器信息还提供基础查询界面和 http 接口,方便 Prometheus 进行数据抓取。 正是因为 cadvisor 与 Prometheus 的完美结合,所以它成为了容器监控的第一选择。 ###cadvisor 的安装 使用 docker pull 下载最新版本的 cadvisor docker pull google/cadvisor:latest 使用 docker run 启动 docker run \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:rw \ --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro \ --volume=/dev/disk/:/dev/disk:ro \ --publish=8080:8080 \ --detach=true \ --name

c++之STL总结

浪尽此生 提交于 2019-12-11 00:59:23
c++中的STL(Stand Template Library)提供了最基本的数据结构和算法,功能十分强大。主要分为 容器 (数组,队列,链表,栈,集合等等), 迭代器 (一种对象,用来遍历容器中的元素)和常见算法(排序,反转等) 文章目录 容器 字符串 vector list deque stack multiset&set multimap&map 容器 字符串 包含文件:c++头文件中: #include<string> 常用方法: 初始化: string str:生成空字符串 string s ( str ) :生成字符串为str的复制品 string s ( str , strbegin , strlen ) :将字符串str中从下标strbegin开始、长度为strlen的部分作为字符串初值 string s ( cstr , char_len ) :以C_string类型cstr的前char_len个字符串作为字符串s的初值 string s ( num , c ) :生成num个c字符的字符串 string s ( str , stridx ) :将字符串str中从下标stridx开始到字符串结束的位置作为字符串初值 直接用另一个字符串赋值 如str2 . assign ( str1 ) ; 即用str1给str2赋值 . 用另一个字符串的一个子串赋值 如str3

宜信容器云排错工具集

匆匆过客 提交于 2019-12-11 00:03:42
宜信容器云是一套基于kubernetes的容器管理平台。业务线用户在容器云上部署应用程序时,常常会遇到容器无法启动或者应用程序运行不正常的情况。为了方便用户排查在应用上云过程中的问题,我们在web端集成了一系列的排错方式,如下图: 一、终端信息 终端信息查看的是容器实例运行时的标准输出日志。 效果等同于: kubectl logs PODNAME [-c CONTAINER] 基本原理如下图: 应用部署时,所属节点的kubelet通过grpc调用容器运行时接口(container runtime interface),来请求docker守护进程创建容器运行时。 此时,docker守护进程会创建一个协程来接收容器运行时的标准输出日志,这个协程最终将STDOUT(标准输出)的日志写到容器运行时所在节点的对应目录下: /var/lib/docker/containers/container_id/{container_id-json.log} 如下图: 在web端查看对应实例的终端信息时,kubelet将接收的Api-server请求转化成docker client来请求docker守护进程。Docker守护进程到相应的目录下读取对应容器的日志文件数据,再由kubelet返回日志数据到Api-server,最终显示到web端,供用户查看。 容器日志的生命周期与容器的生命周期一致

面试官会问关于spring的哪些问题?

依然范特西╮ 提交于 2019-12-10 23:49:01
什么是spring? Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。 使用Spring框架的好处是什么? 轻量:Spring 是轻量的,基本的版本大约2MB 控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们 面向切面的编程(AOP):Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开 容器:Spring 包含并管理应用中对象的生命周期和配置 MVC框架:Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品 事务管理:Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA) 异常处理:Spring 提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO抛出的)转化为一致的unchecked 异常 Spring由哪些模块组成? 以下是Spring 框架的基本模块: Core module Bean module Context module Expression Language module JDBC module ORM module OXM

编辑docker容器中的文件

↘锁芯ラ 提交于 2019-12-10 21:46:15
一般docker中没有VI或者其它相应的文本编辑器,为了写个东西安装个vi就可以解决问题,除此之外还有别的办法 登陆docker中找到需要编辑的文件的位置 sudo docker ps -a sudo docker exec -it xxx /bin/bash    通过docker cp把这个文件拷贝出来 sudo docker cp xxxx:/etc/mysql/my.cnf /home/tom/    再拷贝回去 sudo docker cp /home/tom/my.cnf xxxx:/etc/mysql/   注意这个xxxx是docker ps -a 获取的container id 来源: https://www.cnblogs.com/gelandesprung/p/12019157.html

Prometheus监控docker容器

只愿长相守 提交于 2019-12-10 20:27:19
### 中文文档 ####需了解 cadvisor ###首先在监控服务器安装: ####1.安装Node Exporter 来收集硬件信息 所有节点运行以下命令安装Node Exporter 容器 docker run -d -p 9100:9100 \ -v "/proc:/host/proc" \ -v "/sys:/host/sys" \ -v "/:/rootfs" \ -v "/etc/localtime:/etc/localtime" \ --net=host \ prom/node-exporter \ --path.procfs /host/proc \ --path.sysfs /host/sys \ --collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)($|/)" 注意: 这里我们使用了 --net=host,这样 Prometheus Server 可以直接与 Node Exporter 通信 ####2.安装cAdvisor 来收集容器信息 所有节点运行以下命令来安装cAdvisor docker run -d \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:rw \ --volume=/sys:/sys:ro

docker入门与实践之【08-数据管理】

做~自己de王妃 提交于 2019-12-10 19:36:54
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1.数据卷 数据卷 是一个可供一个或多个容器使用的特殊目录,它绕过UFS,可以提供很多有用的特性: 数据卷 可以在容器之间共享和重用 对 数据卷 的修改会立马生效 对 数据卷 的更新,不会影响镜像数据卷 默认会一直存在,即使容器被删除 注意:数据卷 的使用,类似于 Linux 下对目录或文件进行 mount,镜像中的被指定为挂载点的目录中的文件会隐藏掉,能显示看的是挂载的 数据卷。 1.1 创建一个数据卷 $ docker volume create my-vol 查看所有的 数据卷 $ docker volume ls 查看指定的数据卷信息 $ docker volume inspect my-vol [ { "Driver": "local", "Labels": {}, "Mountpoint": "/var/lib/docker/volumes/my-vol/_data", "Name": "my-vol", "Options": {}, "Scope": "local" } ] 1.2 启动一个挂载数据卷的容器 在用 docker run 命令的时候,使用 --mount 标记来将 数据卷 挂载到容器里。在一次 docker run 中可以挂载多个 数据卷。 示例: $ docker run -d