- 博客(36)
- 收藏
- 关注
原创 分布式架构网络通信(RPC,RMI) 03
网络IO,主要有bio、nio、 aio三种方式,所有的分布式应用通讯都基于这个原理而实现,只是为了应用的易用,各种语言通常都会提供一些更为贴近应用易用的应用层协议。
2024-07-30 14:44:47
1276
原创 分布式系统设计策略 02
在分布式环境下,有几个问题是普遍关心的,我们称之为设计策略:如何检测当前节点还活着? 如何保障高可用? 容错处理负载均衡
2024-07-30 14:22:52
735
原创 一文弄懂 Servlet
Servlet 是 Java EE(现称 Jakarta EE)平台中的一个组件,用于扩展服务器的功能,特别是处理客户端请求和生成动态响应。Servlet 通常用于创建基于 Web 的应用程序,如 Web 应用程序、RESTful 服务等。
2024-07-26 14:36:47
997
原创 Mysql 集群搭建 05
Mycat是开源的、活跃的、基于Java语言编写的MySQL数据库中间件。可以像使用mysql一样来使用 mycat,对于开发人员来说根本感觉不到mycat的存在。开发人员只需要连接MyCat即可,而具体底层用到几台数据库,每一台数据库服务器里面存储了什么数据,都无需关心。具体的分库分表的策略,只需要在MyCat中配置即可。
2024-07-25 11:03:37
890
原创 详解Mysql InnoDB引擎 04
InnoDB 是MySQL数据库管理系统的一个存储引擎,它为MySQL提供了事务处理、外键约束和并发控制等关系型数据库管理系统(RDBMS)中重要的功能。以下是关于InnoDB存储引擎的一些关键特点和特性:
2024-07-24 23:35:30
811
原创 一文搞懂Mysql中的锁 03
MySQL中的锁,按照锁的粒度分,分为以下三类: 1. 全局锁:锁定数据库中的所有表。 2. 表级锁:每次操作锁住整张表。3. 行级锁:每次操作锁住对应的行数据。
2024-07-24 23:12:24
593
原创 Mysql进阶篇02
介绍 索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足 特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。在无索引情况下,就需要从第一行开始扫描,一直扫描到最后一行,我们称之为 全表扫描,性能很 低。如果我们针对于这张表建立了索引,假设索引结构就是二叉树,那么也就意味着,会对age这个字段建 立一个二叉树的索引结构。
2024-07-24 22:58:14
752
原创 Mysql基础入门 01
存储数据的容器:数组,集合,容器,数组和集合都是写到内存中的。文件是存储到硬盘中的。当文件很大时,想要查询相关特性的文件就需要分类,这时候我们引入了数据库这个概念。DB:数据库(database)存储数据的仓库。它保存了一系列的有组织的数据。DBMS:数据库管理系统(Database Management System)数据库是通过DBMS创建的和操作的容器。数据库软件,数据库管理系统。SQL:结构化查询语言(Structure Query Language)专门用来与数据库通信的语言。
2024-07-24 15:07:30
684
原创 Spring 高级解析 07
Spring 是分层的 full-stack(全栈) 轻量级开源框架,以 IoC 和 AOP 为内核,提供了展现层 Spring MVC 和业务层事务管理等众多的企业级应⽤技术,还能整合开源世界众多著名的第三⽅框架和类库,已经成为使⽤最多的 Java EE 企业应⽤开源框架。
2024-07-24 11:04:08
1180
原创 Spring 简化jdbc开发 05
JdbcTemplate 是 Spring 提供的 JDBC 抽象类,它封装了 JDBC 的常用操作,如执行 SQL 语句、处理结果集、管理连接等,简化了 JDBC 的使用方式。在 Spring 框架中,通过其提供的 JDBC 抽象和工具类,可以极大地简化 JDBC 的开发过程,减少了传统 JDBC 开发中的样板代码和错误处理。)来构建 SQL 查询语句,可以提高 SQL 的可读性和安全性,避免 SQL 注入攻击。等繁琐的操作,提高了代码的可读性和可维护性。
2024-07-24 00:01:36
536
原创 Spring 事务管理 04
事务Transaction)是数据库管理系统(DBMS)中的一个重要概念,它确保数据库操作的**一致性**、**完整性**和**持久性**。在软件开发中,特别是涉及到多个数据库操作或者复杂的数据更新过程时,使用事务能够有效地保证数据操作的正确性和可靠性。以下是几个需要事务的主要原因:
2024-07-23 23:58:27
972
原创 Spring 面向切面编程 03
面向切面编程(Aspect-Oriented Programming, AOP)是一种软件开发的技术,它的主要目的是通过将横切关注点(cross-cutting concerns)从核心业务逻辑中分离出来,实现对系统中的横切关注点进行模块化和集中化管理。在 Spring 框架中,AOP 是其核心特性之一,提供了方便的方式来实现切面编程。
2024-07-23 23:49:06
621
原创 Spring 依赖注入02
接口注入(Interface Injection)是依赖注入(DI)的一种形式,它通过实现特定接口来实现依赖的注入。设值注入(Setter Injection)是依赖注入(DI)的一种形式,它通过对象的公共设值方法(setter 方法)来注入依赖。在使用设值注入时,依赖关系不是通过对象的构造函数传入,而是在对象创建后,通过调用特定的设值方法来设置依赖。在依赖注入中,对象的依赖关系不是在内部创建,而是由外部容器(比如 Spring 框架)在对象创建时将依赖对象注入进来。
2024-07-23 23:21:45
913
原创 Spring从入门到精通 01
Spring 提供了与多种第三方框架和技术的集成支持,包括 Hibernate、MyBatis、JPA、JMS、Quartz 等,使得应用开发更加灵活和高效。Spring 提供了声明式的事务管理,通过注解或 XML 配置可以简化事务管理的配置和使用,支持不同的事务管理器实现。Spring 框架被设计为一个模块化的框架,不同的功能组件可以根据需要选择性地集成和使用,使得框架具有很强的扩展性。Spring 框架通过依赖注入来管理组件之间的依赖关系,降低了组件之间的耦合度,使得代码更加灵活和可维护。
2024-07-23 23:10:44
443
原创 Rabbitmq从入门到精通
交换机和队列的名称是不能相同的。相互隔离,不同用户之间创建的交换机是不可见的。生产者通过tcp连接到broker,broker是接收和分发消息的实体,vhost是一个虚拟主机,不同用户之间的隔离。每次连接占用一个管道,每一次连接可以多次发送消息。exchange:交换机,queue:存放消息的队列rabbitMQ四大核心:生产者,交换机,队列,消费者AMQP协议四大核心:消息,没交换,队列,绑定。
2024-07-23 17:18:56
1336
原创 [K8S] K8S-Volume存储(6)
当我们创建 PVC 时指定对应的 StorageClass 就能和 PV的StorageClass 关联,StorageClass 会 交由与他关联 Provisioner 存储插件来创建与管理存储,它能帮你创建对应的 PV 和在远程存储上创建 对应的文件夹,并且还能根据设定的参数,删除与保留数据。(持久化卷声明): PersistentVolumeClaim 简称 PVC,是用户存储的一种声明,类似于对存储资源的申请,它属于一个 Namespace 中的资源,可用于向 PV 申请 存储资源。
2024-07-22 17:29:28
1024
原创 [K8S] K8S Service(5)
Ingress Controller:监听APIServer,根据用户编写的ingress规则(编写ingress的yaml文件), 动态地去更改nginx服务的配置文件,并且reload重载使其生效,此过程是自动化的(通过lua脚本 来实现)。NodePort 我们的场景不全是集群内访问,也需要集群外业务访问。反向代理负载均衡器:通常以service的port方式运行,接收并按照ingress定义的规则进行转发, 常用的有nginx,Haproxy,Traefik等,本次实验中使用的就是nginx。
2024-07-22 16:16:25
907
原创 [K8S] K8S资源控制器Controller Manager(4)
Deployment为Pod和Replica Set(下一代Replication Controller)提供声明式更新。只需要在 Deployment 中描述想要的目标状态是什么,Deployment controller 就会帮您将 Pod 和 ReplicaSet 的实际状态改变到您的目标状态。也可以定义一个全新的 Deployment 来创建 ReplicaSet或者删除已有的 Deployment 并创建一个新的来替换。
2024-07-22 15:20:44
1540
原创 [K8S] K8SPod进阶(3)
pod对象自从创建开始至终止退出的时间范围称为生命周期,在这段时间中,pod会处于多种不同 的状态,并执行一些操作;其中,创建主容器为必须的操作,其他可选的操作还包括运行初始化容器 (init container)容器启动后钩子(start hook)postStart容器的存活性探测(liveness probe)就绪性 探测(readiness probe)容器终止前钩子(pre stop hook)PreStop。
2024-07-22 10:21:26
623
原创 [K8S] k8s快速入门(1)
Namespace是对一组资源和对象的抽象集合,比如可以用来将系统内部的对象划分为不同的项目组或 用户组。对于具体应用而言,Pod是它们的逻辑主机,Pod包含业务 相关的多个应用容器。: 指定可选的参数。在Kubernetes集群中,Pod是所有业务类型的基础,也是K8S管理的最小单位级,它是一个或多个。网络:每一个Pod都会被指派一个唯一的Ip地址,在Pod中的每一个容器共享网络命名空间,包括Ip地址。存储:Pod能够被指定共享存储卷的集合,在Pod中所有的容器能够访问共享存储卷,允许这些容器共享。
2024-07-18 23:08:30
1032
1
原创 Python对于不定长参数的使用。
对于多个参数的输入,以及对列表和字典的操作。包裹位置参数,我们用(*args)函数是将输入的值传入一个列表中。(**kwrgs)则是传入到字典之中编写函数,求解输入任意个数的同学(学号)输出各自的平均成绩。score_list = { "001": ["小赵", 100, 88, 87, 83] "002": ["小钱", 98, 90, 93, 88], "003": ["小孙", 87, 75, 85, 7
2020-10-24 09:34:22
1118
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人