高性能、高并发、高可用、高安全
高性能、高并发、高可用是构建现代大规模系统的三个关键目标,它们各自解决不同的问题,但在实际系统中往往需要综合考虑,互为补充。例如,高并发可能会带来性能瓶颈,而高可用需要在性能和资源消耗之间找到平衡。通过合理的架构设计和技术选型,可以构建出既能应对大量并发请求,又具有快速响应和高可用性的系统。
参考文章:
高性能、高并发、高可用
高并发、高性能、高可用、高安全架构设计
程序员的三高:高并发、高性能、高可用
高性能(High Performance)概念高性能指的是系统在处理请求时能够以最快的速度响应(程序处理速度非常快,所占内存少,cpu占用率低)。性能通常与系统的吞吐量和响应时间相关联。高性能系统能够在单位时间内处理大量请求,并在尽可能短的时间内提供响应。应用性能优化的时候,对于计算密集型和IO密集型还是有很大差别,需要分开来考虑。还可以增加服务器数量,内存,IO等参数提升系统的并发能力和性能,但不要浪费资源,要考虑硬件的使用率最高才能发挥到极致。
关键指标
吞吐量(Throughput):系统在单位时间内处理的请求数量。通常以每秒请求数(Requests Per Second, ...
java的加密方式
在Java中,加密英文文本通常涉及到使用加密算法,比如对称加密(如AES)或非对称加密(如RSA)。本文整理了几种java常用的几种加密方法。
参考文章:
Java常用加密方式
加密算法分类
对称加密:指加密和解密的密钥相同,优点就是加解密的效率高且易于实现。
非对称加密:指加密和解密的密钥不相同,也称为公私钥加密。
不可逆加密:特征就是加密过程不需要密钥,并且加密后的数据不能被解密,只能输入同样的数据并且经过同样的不可逆加密算法才能获取同样的加密数据。
加密算法的应用
数字签名:进行身份认证和数据完整性验证,主要用到了非对称密钥加密技术与数字摘要技术。
数字证书:主要用来确保数字签名是安全有效的,数字证书由独立的证书发行机构发布。数字证书各不相同,每种证书可提供不同级别的可信度,该证书内包含用户的个人信息和他的公钥信息,同时还附有认证中心的签名信息。
MD5:对用户密码进行加密并进行保存。
网络数据加密:保障传输的数据安全,即使被截获报文,在没有密匙的情况下也无法得知报文真实内容。
SSL协议:在握手阶段使用的是非对称加密,在传输阶段使用的是对称加密,即在SSL上传送的数据是使 ...
超文本传输协议HTTP、HTTPS
本文整理了一些关于HTTP和HTTPS的相关内容。
参考文章链接: http和https的区别?(详细图文讲解)
什么是 HTTP、HTTPSHTTP(超文本传输协议,Hypertext Transfer Protocol)是一种用于分布式、协作式、超媒体信息系统的应用层协议。它允许客户端(如浏览器)与服务器之间进行通信,以请求和传输网页、图片、视频等资源。HTTP 基于请求-响应模型,客户端发送请求到服务器,服务器处理请求后返回响应。
HTTPS(安全超文本传输协议,Hypertext Transfer Protocol Secure)是 HTTP 的安全版本,通过在 HTTP 的基础上添加 SSL/TLS(安全套接字层/传输层安全性)协议来实现数据加密和安全传输。HTTPS 不仅能够传输数据,还能确保数据的机密性、完整性和身份验证,防止数据在传输过程中被窃取或篡改。
HTTP 在传输敏感信息(如用户登录信息、金融交易数据等)时存在较大的安全隐患,容易被中间人攻击、数据泄露等问题所困扰。为了解决这些问题,HTTPS 应运而生。它通过加密技术保护数据传输过程中的隐私和完整性,同 ...
InnoDB 的 MVCC 实现
InnoDB,是MySQL的数据库引擎之一,现为MySQL的默认存储引擎,为[MySQL AB](https://baike.baidu.com/item/MySQL AB/2620844?fromModule=lemma_inlink)发布binary的标准之一。InnoDB由Innobase Oy公司所开发,2006年五月时由甲骨文公司并购。与传统的ISAM与MyISAM相比,InnoDB的最大特色就是支持了ACID兼容的事务(Transaction)功能,类似于PostgreSQL。InnoDB采用双轨制授权,一个是GPL授权,另一个是专有软件授权。
参考原文:MySQL高级篇——MVCC多版本并发控制
推荐文章:InnoDB存储引擎对MVCC的实现
多版本并发控制(MVCC)MVCC 概述MVCC (Multiversion Concurrency Control),多版本并发控制。MVCC 通过数据行的多个版本管理来实现数据库的并发控制,支持高并发环境下的读写操作,而不会互相阻塞。这项技术使得在InnoDB的事务隔离级别下执行一致性读操作有了保证,即当前事务读取正在被其他 ...
大模型
人工智能大模型(简称“大模型”)是指由人工神经网络构建的一类具有大量参数的人工智能模型。其通常先通过自监督学习或半监督学习在海量数据上进行预训练,然后通过指令微调和人类对齐等方法进一步优化其性能和能力。大模型具有参数量大、训练数据大、计算资源大等特点,拥有解决通用任务、遵循人类指令、进行复杂推理等能力。器主要类别包括:大语言模型、视觉大模型、多模态大模型以及基础科学大模型等。目前,大模型已在多个领域得到广泛应用,包括搜索引擎、智能体、相关垂直产业及基础科学等领域,推动了各行业的智能化发展。
参考原文: 大模型
大模型定义大模型(Large Models)通常指参数规模庞大(通常在十亿到万亿级别)的深度学习模型。这类模型通过在大规模数据集上进行训练,具备强大的泛化能力和复杂的任务处理能力,尤其在自然语言处理(NLP)、计算机视觉(CV)和多模态任务中表现突出。例如,GPT-3(1750亿参数)和PaLM(5400亿参数)是典型的大模型。
大模型和小模型的区别
维度
大模型
小模型
参数规模
十亿到万亿级(如GPT-3:175B)
百万到十亿级(如BERT-base:110M ...
Spring上下文
在Spring框架中,上下文(Context)是一个非常重要的概念,它代表了Spring应用的核心,用于管理应用程序中的bean(组件)的生命周期,配置信息等。Spring框架提供了多种类型的上下文实现,其中最常用的是ApplicationContext接口及其实现类。
ApplicationContextApplicationContext是Spring框架中的核心接口,它继承自BeanFactory接口,提供了更丰富的功能。ApplicationContext不仅管理bean的创建和依赖注入,还提供了其他高级功能,如国际化和资源加载等。
ApplicationContext的实现类
ClassPathXmlApplicationContext:从类路径下的XML文件中加载配置文件。
1ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
FileSystemXmlApplicationContext:从文件系统中的XML文件中加载配置文 ...
Spring注解
在Spring框架中,注解是一种非常重要的特性,它极大地简化了配置和开发过程。Spring注解是Spring框架中用于简化配置和开发的核心机制,主要分为组件管理、依赖注入、配置类、AOP、Web开发等类别。
参考原文:
Java注解底层实现原理 - 源码分析
Spring注解的底层实现逻辑实践案例Java注解的底层实现逻辑主要包括定义注解、使用注解和通过反射获取注解。
定义注解注解是通过@interface关键字定义的,例如:
123456@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)public @interface MyAnnotation { String value() default ""; // 默认值 int[] numbers() default {};}
这里,@Target和@Retention是元注解,分别指定了注解的应用目标和保留策略。ElementType.TYPE表示该注解可以应用于类、接口或枚举上,R ...
RestfulApi
RESTful(Representational State Transfer,表述性状态转移)是一种基于HTTP协议的架构风格,利用URI、HTTP方法(如GET、POST、PUT、DELETE等)以及表示层数据格式(如JSON)来创建具有高度可扩展性的服务。其核心原则包括资源导向设计、无状态通信、标准HTTP方法使用(GET/POST/PUT/DELETE)以及统一接口规范,广泛应用于微服务、移动应用和物联网等领域。
参考原文:Restful API
什么是 RESTful API
REST API是一种应用程序编程接口(API 或 Web API),遵循一组关于应用程序如何使用 HTTP 方法相互通信的架构规则。 RESTful Web 服务使用 REST API 协议,因此有时也称为 RESTful API。
REST 通常用于构建 Web API,允许客户端与服务器之间通过 HTTP 协议进行交互。
REST 并不是一种协议或标准,而是一组指导原则,旨在帮助开发人员创建可扩展、性能良好且易于维护的 Web 服务。
REST 的核心思想是通过一组简单、统一的接口来管理和操 ...
Spring事务
事务是一组操作的集合,是一个不可分割的操作。事务会把所有的操作作为一个整体,一起向数据库提交或者是撤销操作请求。所以这组操作要么同时成功,要么同时失败。我们在进行程序开发时,也会有事务的需求。
参考文章:
深入解析 @Transactional——Spring 事务管理的核心
Springboot @Transactional大事务处理的几点建议
Spring事务基本信息Spring事务在解决什么问题
数据一致性:在分布式系统中,多个服务或组件可能需要同时操作同一数据,事务确保这些操作要么全部成功,要么全部失败,从而保持数据的一致性。
并发控制:在多用户并发访问的情况下,事务可以控制对共享资源的访问,避免数据冲突和损坏。
故障恢复:当操作过程中发生错误时,事务可以回滚到操作前的状态,确保系统不会处于不一致的状态。
Spring事务的实现原理Spring事务的实现基于 AOP (面向切面编程)和 动态代理 。Spring通过代理机制对目标对象进行包装,插入事务管理的逻辑,包括开启事务、提交事务和回滚事务等。具体来说:
动态代理:Spring使用 JDK动态代理 或 ...
并发编程
并发,在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。本文转载自Java并发编程详解。
线程线程基础线程的本质线程是轻量级进程:在同一个进程中,多个线程共享内存空间(堆、方法区),但每个线程拥有独立的栈和程序计数器(PC)。并发 vs 并行:
并发:线程在单核CPU上交替执行(时间片轮转)。
并行:多核CPU上线程真正同时运行
创建线程的两种方式123456789101112131415161718192021222324// 方式1:继承Thread类class MyThread extends Thread { @Override public void run() { System.out.println("Thread running by extending Thread"); }}// 方式2:实现Runnable接口(推荐,避免单继承限制,在Java中,类只能继承一个父类( ...





