首页 文章 精选 留言 我的

精选列表

搜索[类型混淆],共10000篇文章
优秀的个人博客,低调大师

kubernetes资源类型--pod和job

pod Pod是K8S的最小操作单元,一个Pod可以由一个或多个容器组成;整个K8S系统都是围绕着Pod展开的,比如 如何部署运行Pod、如何保证Pod的数量、如何访问Pod等。 特点 Pod是能够被创建、调度和管理的最小单元; 每个Pod都有一个独立的IP; 一个Pod由一个或多个容器构成,并共享所有资源,主要包括:PID、Network、IPC、UTS、共享存储等;Pod所有容器在同一个Node上; 容器生命周期管理; 对资源使用进行限制,resources(requests、limits); 对容器进行探测:livenessProbe; 集群内的Pod之间都可以任意访问,这一般是通过一个二层网络来实现的。 Pod与容器 在Docker中,容器是最小的处理单元,增删改查的对象是容器,容器是一种虚拟化技术,容器之间是隔离的,隔离是基于Linux Namespace实现的。 而在K8S中,Pod包含一个或者多个相关的容器,Pod可以认为是容器的一种延伸扩展,一个Pod也是一个隔离体,而Pod内部包含的一组容器又是共享的(包括PID、Network、IPC、UTS)。除此之外,Pod中的容器可以访问共同的数据卷来实现文件系统的共享。 Pod生命周期 Pod被分配到一个Node上后,就不会离开这个Node,直到被删除。当某个Pod失败,首先会被K8S清理掉,之后将会在其它机器上(或本机)重建Pod,重建后Pod的ID发生变化,那将会是一个新的Pod。所以,K8S中Pod的迁移,实际指的是在新Node上重建Pod。 生命周期回调函数:PostStart(容器创建成功后调用该回调函数)、PreStop(在容器被终止前调用该回调函数)。以下示例中,定义了一个Pod,包含一个JAVA的web应用容器,其中设置了PostStart和PreStop回调函数。即在容器创建成功后,复制/sample.war到/app文件夹中。而在容器终止之前,发送HTTP请求到http://monitor.com:8080/waring,即向监控系统发送警告。 一pod多容器 Pod主要是在容器化环境中建立一个面向应用的“逻辑主机”模型,它可以包含一个或多个相互间紧密联系的容器。当其中任一容器消失时,该节点上的Pod也随之被删除。 一pod多容器,让多个同应用的单一容器整合到一个类虚拟机中,使其所有容器共用一个vm的资源,提高耦合度,从而方便副本的复制,提高整体的可用性。 一pod多容器的优势: 同个Pod下的容器之间能更方便的共享数据和通信,使用相同的网络命名空间、IP地址和端口区间,相互之间能通过localhost来发现和通信。 在同个Pod内运行的容器共享存储空间(如果设置),存储卷内的数据不会在容器重启后丢失,同时能被同Pod下别的容器读取。 相比原生的容器接口,Pod通过提供更高层次的抽象,简化了应用的部署和管理,不同容器提供不同服务。Pod就像一个管理横向部署的单元,主机托管、资源共享、协调复制和依赖管理都可以自动处理。 yaml文件格式请见http://blog.csdn.net/liyingke112/article/details/76155428 Job 在有些场景下,是想要运行一些容器执行某种特定的任务,任务一旦执行完成,容器也就没有存在的必要了。在这种场景下,创建pod就显得不那么合适。于是就是了Job,Job指的就是那些一次性任务。通过Job运行一个容器,当其任务执行完以后,就自动退出,集群也不再重新将其唤醒。 从程序的运行形态上来区分,可以将Pod分为两类:长时运行服务(jboss、mysql等)和一次性任务(数据计算、测试)。RC创建的Pod都是长时运行的服务,Job多用于执行一次性任务、批处理工作等,执行完成后便会停止(status.phase变为Succeeded)。 在Job的定义中,restartPolicy(重启策略)只能是Never和OnFailure。 OnFailure(当容器异常终止退出时重启):在出现故障时其内部重启容器,而不是创建。 Never(从不重启):会在出现故障时创建新的,且故障job不会消失。 设置超时:job执行超时时间可以通过spec.activeDeadlineSeconds来设置,超过指定时间未完成的job会以DeadlineExceeded原因停止 apiVersion: v1 kind: Job metadata: labels: name: lykops-job name: lykops-job spec: template: metadata: name: lykops-job spec: containers: - name: lykops-job image: web:apache command: - sleep - 300 在v1.5无法实现,使用pod来代替 apiVersion: v1 kind: Pod metadata: labels: app: container1 version: apache namespace: default name: container1 spec: containers: -args: -"30" command: -sleep image: web:apache name: container1 restartPolicy: OnFailure #或者Never本文转自开源中国- kubernetes资源对象--ResourceQuotas

优秀的个人博客,低调大师

Java中有几种类型的流?

字节流和字符流。字节流继承于InputStream、OutputStream,字符流继承于Reader、Writer。在java.io 包中还有许多其他的流,主要是为了提高性能和使用方便。关于Java的I/O需要注意的有两点:一是两种对称性(输入和输出的对称性,字节和字符的对称性);二是两种设计模式(适配器模式和装潢模式)。另外Java中的流不同于C#的是它只有一个维度一个方向。

优秀的个人博客,低调大师

活动事务日志以及事务的类型

活动事务日志 所谓活动事务日志,就是所有没有提交的事务所产生的日志记录,以及在它们之后的所有日志记录。 如果一个事务还没有提交,那它可以在任何时候回滚。SQL Server必须做好这种准备,以便能够从日志记录中找回修改前的数据内容,完成回滚。在SQL Server里面,所有的日志记录都有严格顺序,中间不可以有任何跳跃。所以如果某个数据库有没有提交的事务,SQL Server会标记所有从这个事务开始的日志记录(不管和这个事务有没有关系)为活动事务日志。这些日志记录都有可能“需要”被用来做回滚。 事务的提交与回滚 事务在提交前,所有的操作都是在虚拟的环境中进行的,事务提交时才将事务进行的所有修改更新到数据库的存储介质上,如硬盘。在事务提交前,如果有操作失败的情况,那么需要进行回滚操作,便可以取消事务所进行的修改,当事务被提交后,再执行回滚是无效的。 实验 --实验1----------事务回滚------------- --检查最老的活动事务 DBCC OPENTRAN use TESTDB1 --开始事务 begin tran --插入一条数据 INSERT INTO test VALUES ('4', 'bbb'); --查询这个插入语句的事务,可以查到 DBCC OPENTRAN --查询表,发现存在插入结果。 select * from test; --回滚事务 rollback; --再次检查最老的活动事务,发现没有事务了 DBCC OPENTRAN --再次查询发现找不到刚才插入的数据了。 select * from test; --实验2-------------事务提交后回滚------------ --检查最老的活动事务 DBCC OPENTRAN use TESTDB1 --开始事务 begin tran --插入一条数据 INSERT INTO test VALUES ('adfs', 'ddfs'); --查询这个插入语句的事务,可以查到 DBCC OPENTRAN --查询表,发现存在插入结果。 select * from test; --提交事务 commit --再次检查最老的活动事务,发现没有事务了 DBCC OPENTRAN --回滚事务,报错:The ROLLBACK TRANSACTION request has no corresponding BEGIN TRANSACTION. --证明:已提交事务无法回滚。 rollback; 事务的分类 一类是Explicit Transactions,另外一类是Implicit Transactions。 Explicit Transactions(显式事务) 所谓的Explicit Transactions,就是我们需要在TSQL中显式定义的事务,由BEGIN TRANSACTION开头,由COMMIT TRANSACTION或者是ROLLBACK TRANSACTION结尾的事务。 Implicit Transactions(隐式事务) Implicit Transactions是不需要声明事务的开始与结束,每一条语句本身就是一个事务,这样定义语句有: ALTER TABLE INSERT CREATE OPEN DELETE REVOKE DROP SELECT FETCH TRUNCATE TABLE GRANT UPDATE INSERT INTO test VALUES ('bbbb', 'bbbb');--无法被回滚 rollback;--The ROLLBACK TRANSACTION request has no corresponding BEGIN TRANSACTION. Autocommit Mode 这是SQL Server的默认事务提交模式,在这种模式下,所有的TSQL语句都会在其执行完的时候,执行成功的被提交,执行失败的被回滚。 常见的错误有三种,不同的错误有不同的提交回滚方式: 编译错误:编译错误主要就是语法错误。例如,在一个事务中,你又有一条语句中某一个关键字写错了,比如你将values达成了valuse,那么整个事务中的所有语句都不会被执行,相当于全部被回滚。 主键冲突:如果存在主键冲突的话,那么那些冲突的语句会被回滚,也就是插入失败,但是之前或者之后不冲突的语句插入成功,不会被回滚。 表不存在错误:假如一条插入语句的表名写错了,那么只回滚错误的那条语句,以及在错误语句之后的所有语句,这个跟前面的主键冲突有区别,前面主键冲突只回滚冲突语句,不影响后面的语句,而表不存在错误会影响错误语句后面的语句。 举例实例如下面三个例子所示: -- compile error -- 编译 错误,那么下面的三条插入语句一条都不执行,虽然看上去好像是回滚了。 USE AdventureWorks2008R2; GO CREATE TABLE TestBatch (Cola INT PRIMARY KEY, Colb CHAR(3)); GO INSERT INTO TestBatch VALUES (1, 'aaa'); INSERT INTO TestBatch VALUES (2, 'bbb'); INSERT INTO TestBatch VALUSE (3, 'ccc'); -- Syntax error. VALUES打错了。 GO SELECT * FROM TestBatch; -- Returns no rows. GO -- run-time error. -- 主键冲突错误, -- 会回滚错误的语句,执行正确的语句 GO INSERT INTO TestBatch VALUES (1, 'aaa'); INSERT INTO TestBatch VALUES (2, 'bbb'); INSERT INTO TestBatch VALUES (1, 'ccc'); -- Duplicate key error. GO SELECT * FROM TestBatch; -- Returns rows 1 and 2. GO -- 表不存在错误。 GO INSERT INTO TestBatch VALUES (3, 'aaa'); INSERT INTO TestBatch VALUES (4, 'bbb'); INSERT INTO TestBch VALUES (5, 'ccc'); -- Table name error. GO SELECT * FROM TestBatch; -- Returns rows 1 and 2. GO 本文转自xwdreamer博客园博客,原文链接:http://www.cnblogs.com/xwdreamer/archive/2012/07/12/2588629.html,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册