响应式编程入门之 Project Reactor
本文目标理解响应式编程前言之前的 《聊聊 IO 多路复用》 中,我们理解了非阻塞 IO 的意义。但是 Spring MVC 并不能完美的应用非阻塞编程,于是 Spring 团队开发了 WebFlux,而 WebFlux 的基础正是本文要讲到的 Project Reactor(下文简称为 Reactor)本文以 Reactor 为例带大家入门响应式编程版本
本文目标理解响应式编程前言之前的 《聊聊 IO 多路复用》 中,我们理解了非阻塞 IO 的意义。但是 Spring MVC 并不能完美的应用非阻塞编程,于是 Spring 团队开发了 WebFlux,而 WebFlux 的基础正是本文要讲到的 Project Reactor(下文简称为 Reactor)本文以 Reactor 为例带大家入门响应式编程版本
目录SpringSecurity设置角色和权限概念使用mock代码在controller中为方法添加权限控制Security角色和权限的概念Security中一些可选的表达式SpringSecurity设置角色和权限概念在UserDetailsService的loadUserByUsername方法里去构建当前登陆的用户时,你可以选择两种授权方法,即角色授权和权限授权,对应使用的代码是hasRole和hasAuthority,而这两种方式在设置时也有不同,下面介绍一下:角色授权:授权代码需要加ROLE_前缀,controller上使用时不要加前缀权限授权:设置和使用时,名称保持一至即可使用mock代码@Componentpublic class MyU...阅读全文
本文分享自天翼云开发者社区《Serverless函数计算介绍》,作者:余凯随着互联网和移动互联网的快速发展,越来越多的应用程序需要具备高可用性、高扩展性和高性能等特点。而云计算作为一种新兴的计算模型,可以帮助开发者更快速、更高效地开发和部署应用程序。Serverless函数计算作为云计算的一种重要形式,正在逐渐成为云计算的主流模型。1.Serverless函数计算的概念和优势Serverless函数计算是一种无服务器的计算模型,它可以帮助用户更轻松地构建和运行应用程序,无需管理底层的服务器和操作系统。在Serverless函数计算中,用户只需编写函数代码并上传到云端,云服务提供商将会负责管理计算资源和网络架构,用户只需按照实际使用情况支付相应的费用。Serverless函数计算的优势包括:1...阅读全文
本文分享自天翼云开发者社区《如何通过云函数操作云数据库?》,作者:不知不觉随着云计算的普及,云数据库作为一种高效、灵活和可靠的数据存储和管理服务,为企业提供了强大的支持。而云函数作为云计算的重要组成部分,为开发者提供了在云端执行代码的能力。本文将探讨如何通过云函数操作云数据库。一、云函数概述云函数是一种在云端执行代码的函数,它允许开发者在云端编写、部署和执行代码。云函数具有高可用性、弹性扩展和安全性等特点,为企业提供了更加高效、灵活和可靠的开发方式。二、通过云函数操作云数据库的步骤创建云函数:首先,需要在云服务提供商的平台上创建一个云函数。这个过程通常包括编写代码、设置函数参数和配置等步骤。连接云数据库:在云函数中,需要使用合适的库或驱动程序来连接云数据库。这通常涉及到提供数据库的连接信息,...阅读全文
[15章]基于C++从0到1手写Linux高性能网络编程框架 学习地址1:https://pan.baidu.com/s/1AISz1k_2uwYAB41St1HxfA 提取码:t2gy 学习地址2:https://pan.baidu.com/s/1MgD4BdeD6V6HfXkoMAZ5Hw 提取码:l5t4 深度掌握网络编程是逆袭成为高阶开发者的秘密法宝,所以今天给大家深度讲解基于C++的Linux高性能事件驱动网络编程框架的设计方法及技巧,我将采取渐进迭代的授课方式,配合C++11新特性的使用,以及网络编程理论的深度讲解,并手把手带着大家落地实现,助力在网络编程领域有更大的技术提升! TCP/IP协议在设计和实现上并没有客户端和服务器的概念,在通信过程中所有机器都是对等的。但由于资源(...阅读全文
【24章】Qt 全流程实战企业级项目 - 云对象存储浏览器 给大家分享一套课程——Qt 全流程实战企业级项目 - 云对象存储浏览器,课程共24章,包更新。附源码+PDF课件。 开发QT有两种IDE可以使用,一种是使用 VS + Qt 的插件,另一种就是使用QtCreator工具。前一种是微软的工具,用的都比较多容易上手,缺点是信号槽的支持不太好,需要手写,不能自动生成,另外可能有中文编码的问题。后一种是Qt的官方IDE,智能提示与调试功能不如VS强大,但是是跨平台的IDE,其QtDesigner设计UI界面操作比较方便,并且由于是QT官方的IDE,对编码等支持都比较好,里面集成了Qt的帮助文档。不得不说Qt的帮助文档做的是非常好的,集成进QtCreator环境之后更加方便。 QT中最常用的控...阅读全文
Kernel-bypass,即绕过内核的意思,是一种计算机科学中的技术方法,用于减少操作系统内核在数据处理路径中的参与,从而降低系统调用的开销,提高数据传输和处理的效率。在高吞吐量、低延迟的应用场景中,如高性能网络通信、大数据处理、金融交易系统等,kernel-bypass技术尤为重要。传统的数据传输流程需要经过用户空间(User Space)到内核空间(Kernel Space)的上下文切换,这个过程会引入额外的延迟。Kernel-bypass技术允许应用程序直接访问硬件资源(如网卡、存储设备),跳过了内核参与的数据路径,减少了系统调用和内存拷贝的次数,进而提升应用的性能。一些常见的kernel-bypass技术包括:DPDK (Data Plane Development Kit): 为...阅读全文
这篇文章介绍如何使用 PromQL 查询 Prometheus 里面的数据。包括如何使用函数,理解这些函数,Metrics 的逻辑等等,因为看了很多教程试图学习 PromQL,发现这些教程都直说有哪些函数、语法是什么,看完之后还是很难理解。比如 [1m] 是什么意思?为什么有的函数需要有的函数不需要?它对 Grafana 上面展示的数据有什么影响?rate 和 irate 的区别是什么?sum 和 rate 要先用哪个后用哪个?经过照葫芦画瓢地写了很多 PromQL 来设置监控和告警规则,我渐渐对 PromQL 的逻辑有了一些理解。这篇文章从头开始,通过介绍 PromQL 里面的逻辑,来理解这些函数的作用。本文不会一一回答上面这些问题,但是我的这些问题都是由于之前对 PromQL 里面的逻辑...阅读全文
基于SpringBoot3.x+Vue3.x整合从0到1一步一步实现酒店管理系统 给大家分享一套课程——基于SpringBoot3.x+Vue3.x整合从0到1一步一步实现酒店管理系统,附源码+笔记+数据库脚本下载。 Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架...阅读全文
 C++大厂面试汇总,希望对大家的面试有帮助: 1、C和C++的区别 C是面向过程的语言,而C++是面向对象的语言。 C和C++动态管理内存的方法不一样,C是使用malloc/free函数,而C++除此之外还使用new/delete关键字。 C++的类是C里没有的,但是C中的struct是可以在C++中正常使用的,并且C++对struct进行了进一步的扩展,使得struct在C++中可以和class有一样的作用。而唯一和class不同的地方在于struct成员默认访问修饰符是public,而class默认的是private。...阅读全文
【完结13章】高性能多级网关与多级缓存架构落地实战 给大家分享一套网关课程——高性能多级网关与多级缓存架构落地实战,已完结13章,附源码+电子书。 多级网关与多级缓存架构是一种常用的系统架构设计模式,用于提高系统性能和可扩展性。下面详细介绍一下这两种架构。 多级网关架构(Multi-tier Gateway Architecture): 多级网关架构是指将系统划分为多个层次或级别的网关,每个网关层次负责执行特定的功能。每个网关层次都有其特定的职责,可以是协议转换、数据加工、请求分发等。不同的网关层次可以部署在不同的服务器上,通过网络连接起来。 多级网关架构的主要优点包括: 1. 模块化和可扩展性:通过将系统划分为多个网关层次,可以方便地扩展和替换某个特定层次的功能模块,而无需影响整个系统。 ...阅读全文
学习地址1:https://pan.baidu.com/s/1qOyFstIuAnTIlBo0-K1YDg 提取码: 68vv 学习地址2:https://share.weiyun.com/VAU3sFU2 密码:9cqtcj WPF 主要编程模型通过托管代码公开。 在 WPF 的早期设计阶段,曾有过大量关于如何界定系统的托管组件和非托管组件的争论。 CLR 提供一系列的功能,可以提高开发效率和可靠性(包括内存管理、错误处理和通用类型系统等),但这是需要付出代价的。 PresentationFramework、PresentationCore 和 milcore是 WPF 的主要代码部分。 在这些组件中,只有一个是非托管组件 - milcore。 milcore 是以非托管代码编写的,目的是...阅读全文
在开发 JavaScript 应用程序时,经常需要检查对象是否为空。这是因为在处理和操作对象数据时,我们需要确保对象包含有效的值或属性。以下是一些常见情况,我们需要检查 JavaScript 对象是否为空: **防止空引用错误:** 当我们尝试访问或使用一个空对象时,可能会导致空引用错误(如 TypeError: Cannot read property ‘x’ of null)。通过检查对象是否为空,我们可以避免这些错误的发生,并采取相应的处理措施。 **数据验证和表单提交:** 在表单提交之前,通常需要验证用户输入的数据是否有效。如果对象为空,表示用户未提供必要的数据或未填写表单字段,我们可以显示错误消息或阻止表单提交。 **条件逻辑和流程控制:** 根据对象是否为空,可以根据不同的条件...阅读全文
本文分享自天翼云开发者社区《存储结构的种类与比较》,作者:3****m一、存储结构的种类顺序存储结构顺序存储结构是一种线性数据存储方式,数据按照顺序方式存储在一片连续的存储区域中。顺序存储结构的特点是数据元素之间的逻辑关系与物理位置的存储顺序一致。这种存储结构适用于数据量较小、数据元素之间关系简单的情况。链式存储结构链式存储结构是一种非线性数据存储方式,通过指针或链接将各个数据元素链接起来。链式存储结构的特点是数据元素的物理位置可以不相邻,但通过指针或链接保持逻辑上的关联。这种存储结构适用于数据量大、数据元素之间关系复杂的情况。散列存储结构散列存储结构是一种基于哈希函数的数据存储方式,通过将数据元素的键值映射到固定大小的数组中,实现数据的快速检索。散列存储结构的特点是数据的检索速度快,但需要...阅读全文
学习地址1:https://pan.baidu.com/s/1OeNVv-9zowTbFVIpjSl8aQ 提取码:86h5 学习地址2:https://pan.baidu.com/s/187GgonRED21EseHMNE5ayg 提取码:bwsj 今天给大家讲解关于Qt的内容,我会在文章里面带着大家从0到1为你系统构建Qt知识体系,然后全流程实战开发项目“云对象存储浏览器”,让大家少走弯路,更快速的掌握Qt技术。 那么我们先来认识一下,什么是QT,他的具体作用是什么,应用在哪些方面? Qt是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。 QT之所以能够在全世界范围内得到广大软件...阅读全文
HBase模式设计是需要注意的问题:1.设计准则1)行键设计读访问模式:通过行键索引提升查询效率。HBase中唯一可用的索引只有行键索引,需要对行键精心设计来尽可能地优化数据查询。某项数据放在行键中会得到更好的查询性能,但是行键的长度变长,行键索引会占用更多的内存资源,由于行键在每个列族中保存,也会需要更多的磁盘空间。写访问模式:避免同一时间段里写入的数据形成热点。随机前缀:在原先彼此相邻的行键前面加上一个随机生成的前缀。哈希前缀:针对随机前缀生成的行键具有不确定性的缺陷,哈希前缀做了改进,通过对原行键调用选定的哈希函数生成前缀。反转键:将原先彼此相邻的行键按字节序反转生成新的行键。以上几种策略都会失去数据按特定行键顺序存放的特性,在进行范围查询时需要访问全部索引数据且需要有更多的磁盘IO操...阅读全文
在前面的两篇文章中,我们已经详细介绍了MyBatis的工作原理和基本使用。今天,我们将深入探讨MyBatis的一个重要特性——注解。如果你对MyBatis的注解还不熟悉,那么这篇文章将为你打开一扇新的大门。 ## 一、什么是注解(Annotation) 首先,我们需要明白什么是注解。注解 Annotation 是从JDK1.5开始引入的新技术。 在Java中,注解是一种用于描述代码的元数据,它可以被编译器、库和其他工具读取和使用。MyBatis的注解就是用来简化XML配置的,它们可以让你的代码更加简洁、易读。 **注解的作用:** - 不是程序本身,对程序作出解释 - 可以被其他程序读取到 **Annotation格式:** 注解是以@注解名的方式在代码中实现的,可以添加一些参数值 如:@S...阅读全文
本文分享自天翼云开发者社区《ISA-L库调研》,作者:何****尔1.Intel SIMD指令集SIMD(single instruction multiple data)单指令多数据流,能够复制多个操作数,并把它们打包在大型寄存器的一组指令集。以同步方式,在同一时间内执行同一条指令。以加法指令为例,单指令单数据(SISD)的CPU对加法指令译码后,执行部件先访问内存,取得第一个操作数;之后再一次访问内存,取得第二个操作数;随后才能进行求和运算。而在SIMD型的CPU中,指令译码后几个执行部件同时访问内存,一次性获得所有操作数进行运算。这个特点使SIMD特别适合于多媒体应用等数据密集型运算。目前主流的支持SIMD相关指令的寄存器有128bit(XMM 指令)、256bit(YMM 指令)这两...阅读全文
相关阅读 【小家java】java5新特性(简述十大新特性) 重要一跃 【小家java】java6新特性(简述十大新特性) 鸡肋升级 【小家java】java7新特性(简述八大新特性) 不温不火 【小家java】java8新特性(简述十大新特性) 饱受赞誉 【小家java】java9新特性(简述十大新特性) 褒贬不一 【小家java】java10新特性(简述十大新特性) 小步迭代 【小家java】java11新特性(简述八大新特性) 首个重磅LTS版本 【小家java】Java中的线程池,你真的用对了吗?(教你用正确的姿势使用线程池) 小家Java】一次Java线程池误用(newFixedThreadPool)引发的线上血案和总结 【小家java】BlockingQueue阻塞队列详解以及5...阅读全文
步骤1: 设置HBase环境与连接确保已经正确配置了HBase的客户端依赖(如hbase-client、hbase-common等),并设置了HBase的ZooKeeper地址。以下是一个简化的示例,假设您已经有了一个配置好的Configuration对象(conf)和表名(tableName):import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.TableName;import org.apache.hadoop.hbase.client.Connection;import org.apache.hadoop.hbase.client.ConnectionFactory;// 创建...阅读全文
10章-SpringBoot 3 + Flutter3 实战低代码运营管理 地址1:https://pan.baidu.com/s/1Uay0bc6ghAVf401t-OdXiQ 提取码:sqcs 地址2:https://pan.baidu.com/s/1l3kJpBzm9tw0xbTC2BVbew 提取码:2law 1、什么是低代码 低代码(Low Code)是一种可视化的应用开发方法,用较少的代码、以较快的速度来交付应用程序,将程序员不想开发的代码做到自动化,称之为低代码。Gartner随后又提出了aPaaS和iPaaS的概念,其中aPaaS概念和低代码非常吻合。随着这一概念的不断推广,全球市场上都涌现出了很多低代码平台。 2、低代码起源 Gartner随后又提出了aPaaS和iPaaS...阅读全文
万字文让你了解 Java 8 Lambda、函数式接口、Stream 用法和原理一定要看到最后,那是心动的感觉! 我是风筝,公众号「古时的风筝」。一个兼具深度与广度的程序员鼓励师,一个本打算写诗...IT领域君阅读 401评论 0赞 ...阅读全文
PostgreSQL DBA实战视频教程(10门课程合集) PostgreSQL作为一款功能强大的开源关系型数据库,其DBA(数据库管理员)在日常管理和维护中需要掌握一系列的SQL语句来确保数据库的性能和安全,以下是一些PostgreSQL DBA最常使用的SQL命令和技术介绍: 数据库连接与信息查询 连接到数据库并获取基本信息是DBA的日常任务之一,使用以下命令可以查看数据库的版本信息、当前设置的参数以及数据库列表。 -查看 PostgreSQL 版本 SELECT version(); -查看所有数据库 SELECT datname FROM pg_database; -查看当前设置的参数 SHOW config_file; 数据库维护 数据库维护包括备份恢复、性能调优、索引管理等。 数...阅读全文
近日,由天翼云弹性网络产品线撰写的《Small Scale Data-free Knowledge Distillation》长文被IEEE Conference on Computer Vision and Pattern Recognition收录。IEEE CVPR是人工智能与模式识别技术领域的顶/级国际学术会议,也是中国计算机学会CCF推荐的A类国际会议之一。该会议始于1983年,是业界公认的全球计算机视觉三大顶/级会议之一。此次论文被IEEE CVPR成功收录,不仅展现了天翼云在AI领域的创新能力,也意味着中国企业在国际学术舞台上的影响力日益增强。《Small Scale Data-free Knowledge Distillation》这篇长文提到,知识蒸馏技术(Knowled...阅读全文
【完结28章】Go开发疑难杂症终结者通关指南 随着互联网的普及和信息化的发展,软件项目的开发也越来越受到重视。在众多的编程语言中,Go语言因其强大的性能、高效的并发能力和简单易学的语法成为了众多开发者的首选。 并发控制与竞态条件 Go语言的并发模型被称为“goroutine”,它使得并发开发变得非常简单。但是并发开发也会面临一些挑战,特别是竞态条件。竞态条件指在多线程环境下,由于线程执行的顺序不确定,导致程序输出结果的不确定性。在Go语言中,可以使用互斥锁(mutex)或通道(channel)来解决竞态条件的问题。互斥锁可以在访问共享资源前进行加锁,在访问结束后释放锁,保证同一时间只有一个goroutine可以访问该资源。而通道可以将数据从一个goroutine发送给另一个goroutine...阅读全文
本文分享自天翼云开发者社区《Ceph的crush算法与一致性hash对比介绍》,作者:l****n首先,我们先回顾下一致性hash以及其在经典存储系统中的应用。一致性hash的基本原理一致性hash的基本思想是,有一个hash函数,这个hash函数的值域形成了一个环(收尾相接:the largest hash value wraps around to the smallest hash value),然后存储的节点也通过这个hash函数随机的分配到这个环上,然后某个key具体存储到哪个节点上,是由这个key取hash函数对应到环的一个位置,然后沿着这个位置顺时针找到的第一个节点负责这个key的存储。这样环上的每个节点负责和它前面节点之间的这个区间的数据的存储。如上图所示,hash函数的总...阅读全文
近日,天翼云TeleDB数据库在中国信通院“可信数据库”系列测试的赛道上,一次性跨越“分布式事务型数据库基础能力测试”与“性能测试”的双重大关,以云服务国家队的卓越实力为数据库领域树立了新标杆。中国信通院开展的“可信数据库”系列测试是国内面向数据库产品及周边工具、数据库服务商和应用侧为评价目标的权威测试体系,是厂商产品研发和用户采购选型的风向标。其中,分布式事务型数据库基础能力测试依据YD/T 3775-2020《大数据 分布式事务数据库技术要求与测试方法》行业标准,对分布式事务型数据库的基础能力、兼容能力、管理能力、高可用能力、扩展能力、安全能力、性能七大能力域进行测试;分布式事务型数据库性能测试则是针对金融场景下分布式事务型数据库的性能水平进行测试的标准化测试体系,并能对数据库在故障场...阅读全文
本文分享自天翼云开发者社区《接口性能测试---locust脚本编写(一)》,作者:丁****乐一、安装locust是用python编写的一款开源接口性能测试工具,以python3为例,直接使用pip安装即可,pip3 install locust。安装完成之后可使用locust --version查看对应的版本。二、脚本编写通过编写python脚本模拟用户行为进行性能测试,locust python脚本一种比较常见的写法是将脚本分成三部分,第一部分进行相关导入、第二部分进行用户行为定义,第三部分进行用户定义。以一个例子进行讲解首行进行了包导入,导入了常用的类、装饰器和函数。Behave定义了进行用户行为定义,声明了两个操作,一个是get请求,一个是post请求。TestUser定义了用户...阅读全文
本文分享自天翼云开发者社区《CBAM注意力模型介绍》,作者:Liuzijia近年来,注意力机制在各项深度学习任务中表现出色。研究表明,人类视觉感知过程中,注意力机制发挥了积极的效果,可以帮助人们高效和自适应的处理视觉信息并聚焦于显著的画面区域,从而能够做出最准确的判断。因此,通过模拟视觉注意力机制,在网络结构中加入注意力模块,使模型可以更加关注待分类图像中的关键信息,抑制不相关的特征信息,促使模型对重要的特征区域更加敏感,从而有效提升相关任务的性能。本文简要介绍一种经典的混合注意力模型CBAM。CBAM[1]是一种结合了通道与空间注意力的混合注意力模块,通过该模块可以自适应的强化特征提取过程。图1 CBAM结构(引用自文献[1])图1为CBAM的结构。对于输入特征图,该模块会依次推断出一个...阅读全文
在Hive中会有很多数据是用Json格式来存储的,如开发人员对APP上的页面进行埋点时,会将多个字段存放在一个json数组中,因此数据平台调用数据时,要对埋点数据进行解析。接下来就聊聊Hive中是如何解析json数据的。 本文首发于公众号【五分钟学大数据】 Hive自带的json解析函数 1. get_json_object 语法:get_json_object(json_string, '$.key') 说明:解析json的字符串json_string,返回path指定的内容。如果输入的json字符串无效,那么返回NULL。这个函数每次只能返回一个数据项。 示例: select get_json_object('{"name":"zhangsan","age":18}','$.name')...阅读全文
C++大厂面试真题宝典 精选100道 好课大家一起分享——C++大厂面试真题宝典 精选100道,附课程源码下载。 C和C++的区别 C是面向过程的语言,而C++是面向对象的语言。 C和C++动态管理内存的方法不一样,C是使用malloc/free函数,而C++除此之外还使用new/delete关键字。 C++的类是C里没有的,但是C中的struct是可以在C++中正常使用的,并且C++对struct进行了进一步的扩展,使得struct在C++中可以和class有一样的作用。而唯一和class不同的地方在于struct成员默认访问修饰符是public,而class默认的是private。 C++支持重载,而C语言不支持。 C++有引用,C没有。 C++全部变量的默认链接属性是外链接,而C是内链...阅读全文
【完结16章】手把手带你实战一线大厂微服务全链路追踪 微服务全链路追踪详解 1. 什么是微服务全链路追踪? 微服务全链路追踪是一种用于监控和分析微服务架构中请求传递过程的技术。它能够将一次分布式请求还原成调用链路,进行日志记录、性能监控,并将一次分布式请求的调用情况集中展示。这包括各个服务节点上的耗时、请求具体到达哪台机器上、每个服务节点的请求状态等信息。 2. 微服务全链路追踪的必要性 故障排查:当系统出现故障时,可以通过追踪请求的路径和性能指标,快速定位故障的根本原因。 性能优化:通过分析请求的性能指标,可以找到系统中的性能瓶颈,并进行优化。 容量规划:通过分析请求的负载情况,可以对系统的容量需求进行评估和规划。 依赖分析:通过分析请求的依赖关系,可以了解系统中各个微服务...阅读全文
MySQL必会核心问题50讲(完结9章) 什么是数据库 数据库就是用于存储和管理数据的仓库,英文:DataBase(简称:DB),而在数据库中的数据也是有组织的进行存储! 采用的数据库的好处 如果我们采用数据库存储数据的话,我们不仅可以持久化存储数据(瞬时数据转化为永久数据),也可以方便存储和管理数据(因为文件不便于管理数据,那就由数据库来管理),还可以统一的方式操作数据库 SQL(MySQL、Oracle、SqlServer等关系型数据库管理系统 SQL操作方式基本一致,但是关系型数据存在SQL方言) SQL简介 MySQL是属于关系型数据库的一类,它是开源免费的中小型数据库,后来Sun公司收购了MySQL,而Oracle又收购了Sun公司,现在,MySQL属于Oracle,目前,MySQ...阅读全文
void关键字表示函数没有返回结果,是java中的一个关键字。 java.lang.Void是一种类型。例如给Void引用赋值null。 Void nil = null; 通过Void类的代码可以看到,Void类型不可以继承与实例化。 public final class Void { /** * The {@code Class} object representing the pseudo-type corresponding to * the keyword {@code void}. */ @SuppressWarnings("unchecked") public static final Class
副本集的主要功能 副本集是MongoDB高可用的基础,其主要作用 归纳为以下几点: (1)高可用,防止设备(服务器、网络)故障。提供自动FailOver功能。 (2)无需配置高可用性虚拟节点;无论是SQL Server 的AlwaysOn 还是 MySQL 的 MHA方案 都需要有可用性组 或集群的虚拟IP,要求程序连接使用这个虚拟IP。但是MongoDB 副本集不需要 配置虚拟IP,而是当我们在连接字符串中指定replicaSet 参数设置 后,会自动识别查找master节点。这样 可以省去 DBA 对虚拟高可用IP的配置和管理。另外,还有一点 可以保证 主节点、辅助节点切换 对程序的影响,比如丢数据的影响。就是 程序驱动到每个几点都预先建立了一个连接,这个连接 会实时监控节点状态。当主节...阅读全文
xia仔ke:xingkeit.top/9447/ 获取ZY↑↑方打开链接↑↑ Swift是一种由苹果公司开发的编程语言,旨在取代Objective-C,提供更现代化的编程体验。自2014年首次发布以来,Swift迅速成为开发iOS、macOS、watchOS和tvOS应用的主流语言。Swift的语法设计简洁明了,易于学习和使用,适合从初学者到专业开发者的各类开发需求。本文将介绍Swift的基础语法,包括变量与常量、数据类型、控制流、函数、类与结构体等核心概念。 1. 变量与常量 在Swift中,变量和常量用于存储数据。 变量:使用var关键字定义,表示可以改变其值。 swiftvar name = "Alice"name = "Bob" // 可以修改 常量:使用let关键字定义,表示不可...阅读全文
引言 在实际业务开发中,随着业务的变化,数据的复杂性和多样性不断增加。传统的关系型数据库模型在这种情况下会显得受限,因为它们需要预先定义严格的数据模式,并且通常只能存储具有相同结构的数据。而面对非结构化或半结构化数据的存储和处理需求,选择使用非关系型数据库或者创建子表存储这些变化的结构可能会变得复杂。在这种情况下,我们可以利用MySQL的JSON字段类型来解决这个问题。JSON字段提供了灵活的数据存储方式,能够轻松应对数据结构的变化和动态性,从而更好地满足业务需求。 MySQL5.7.8版本引入了JSON数据类型,允许在数据库表中存储和操作符合JSON格式的数据。这种原生支持JSON(JavaScript对象表示法)的数据类型遵循RFC 7159标准,提供了有效存储复杂、半结构化数据的方式。...阅读全文
「2024期」奇牛 跨平台Qt高级开发获课:aixuetang点xyz/14215/获取ZY↑↑方打开链接↑↑QtQQ-常用操作类在开发基于Qt框架的QQ类应用(如QtQQ)时,会用到一系列常用的操作类。这些类不仅帮助开发者构建用户界面,还实现了与QQ相关的各种功能。以下是一些在QtQQ开发中可能会用到的常用操作类及其简要说明:核心框架类QObject:它是所有Qt对象的基类,提供了对象模型的核心功能,如信号与槽机制。QWidget:所有窗口部件的基类,提供了窗口部件的基本功能,如大小、位置、显示等。QMainWindow:代表一个带有菜单栏、工具栏和状态栏的主窗口。用户界面类QPushButton:按钮类,用于触发事件,如点击事件。QLabel:用于显示文本或图像,可以作为静态文本展示或动...阅读全文
今天打算写一下 Javaagent,一开始我对它的概念也比较陌生,后来在别人口中听到 字节码插桩,bTrace,Arthas后面才逐渐了解到Java还提供了这么个工具。 JVM启动前静态Instrument Javaagent 是什么? Javaagent是java命令的一个参数。参数 javaagent 可以用于指定一个 jar 包,并且对该 java 包有2个要求: 这个 jar 包的 MANIFEST.MF 文件必须指定 Premain-Class 项。 Premain-Class 指定的那个类必须实现 premain() 方法。 premain 方法,从字面上理解,就是运行在 main 函数之前的的类。当Java 虚拟机启动时,在执行 main 函数之前,JVM 会先运行-javaa...阅读全文
本文分享自天翼云开发者社区《遗传算法介绍》,作者:朱****洲遗传算法(Genetic Algorithm, GA)起源于对生物系统所进行的计算机模拟研究。它是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法,借鉴了达尔文的进化论和孟德尔的遗传学说。由于遗传算法是模拟自然规律的一种算法,它常用术语也都是用自然科学的名词来代替,主要有以下部分:1.个体:问题的一个解(无论可行)2.种群:问题的一个解的集合,包含多个个体3.染色体:个体以编码形式的存在方式4.基因:标识染色体的信息最小存在5.遗传:产生新个体的方式6.适应度:个体对应问题的解决能力遗传算法简单来说分为以下几个阶段:编码、生成初始种群、遗传操作、筛选。图为遗传算法运用的流程图,其分为以下步骤:1.编码编码是体现遗传算法借鉴...阅读全文
xia仔ke:itazs.fun/13402/ 一、NestJS 简介 NestJS 是一个基于 Node.js 的渐进式框架,用于构建高效、可维护和可扩展的服务器端应用程序。它结合了面向对象编程(OOP)、函数式编程(FP)和响应式编程(RP)的最佳特性,深受 Angular 开发者的喜爱,因为它的架构和概念与 Angular 有很多相似之处。 核心概念 模块(Modules):NestJS 应用程序是由模块构建的。模块是一个带有@Module()装饰器的类,这个装饰器提供了元数据,用于组织应用程序的结构。例如,一个典型的模块可能包含控制器(Controllers)、服务(Services)、提供者(Providers)等。模块可以导入其他模块,实现功能的复用和组合。 控制器(Contro...阅读全文
「完结18章」C++大型流媒体项目-从底层到应用层千万级直播系统实战获课:「完结18章」C++大型流媒体项目-从底层到应用层千万级直播系统实战获取ZY↑↑方打开链接↑↑C++通用基础函数库实现构建一个C++通用基础函数库是一个有助于提高代码复用性和开发效率的好方法。这个库可以包含一系列常用的数据结构、算法以及工具函数,以支持各种编程任务。以下是一些建议的模块和它们可能包含的功能:1. 数据结构智能指针:尽管C++11已经引入了std::shared_ptr, std::unique_ptr等,但你可以实现自己的版本来学习内存管理。容器类:如链表、栈、队列、哈希表等,这些可以基于STL(标准模板库)进行扩展或自定义实现。2. 算法排序算法:实现快速排序、归并排序、堆排序等多种排序算法,并考虑...阅读全文
本文由得物技术团队Uni分享,即时通讯网收录时有内容修订和大量排版优化。 1、引言 关于Java网络编程中的同步IO和异步IO的区别及原理的文章非常的多,具体来说主要还是在讨论Java BIO和Java NIO这两者,而关于Java AIO的文章就少之又少了(即使用也只是介绍了一下概念和代码示例)。 在深入了解AIO之前,我注意到以下几个现象: 1)2011年Java 7发布,它增加了AIO(号称异步IO网络编程模型),但12年过去了,平时使用的开发框架和中间件却还是以NIO为主(例如网络框架Netty、Mina,Web容器Tomcat、Undertow),这是为什么?2)Java AIO又称为NIO 2.0,难道它也是基于NIO来实现的?3)Netty为什么会舍去了AIO的支持?(点此查看...阅读全文
Go从入门到进阶,大厂案例全流程实践 获课:jzit.top/5244/ 获取ZY↑↑方打开链接↑↑ 如何极速构建实用的Go语言体系 要极速构建一个实用的 Go 语言体系,主要可以从以下几个步骤进行系统化学习和实践: 1. 掌握 Go 语言基础 语法基础:首先要理解 Go 语言的基本语法和特性,包括数据类型、控制结构、函数、数组、切片、映射等。 数据类型:了解常见的数据类型(int, float, string, bool等)及其零值、声明方式。 控制结构:掌握 if, switch, for, defer, go, select 等基本控制语句。 函数:学会如何定义函数、传参、返回值及匿名函数的使用。 结构体和接口:深入理解 Go 的面向对象特性,例如结构体(struct)、接口(inte...阅读全文
### Spring AI 的核心功能与应用场景解析 Spring AI 是 Spring 官方推出的开源框架,旨在为 Java 开发者提供便捷的 AI 能力集成方案,通过标准化接口和模块化设计,降低大模型应用开发门槛。以下是其核心能力与应用场景的详细解读: --- #### **一、核心功能** 1. **跨模型统一接口** • 支持 **20+主流AI服务商**(如 OpenAI、DeepSeek、Hugging Face、通义等)的文本生成、多模态模型调用,开发者无需关注不同服务商的底层 API 差异。 • 提供 **ChatClient** 和 **ChatModel** 两类组件,分别对应直接调用模型的“电话听筒”和封装业务逻辑的“智能助手”。 2. **工程化增强能力** • *...阅读全文
React面试宝典 React 是靠数据驱动视图改变的一种框架,它的核心驱动方法就是用其提供的 setState 方法设置 state 中的数据从而驱动存放在内存中的虚拟 DOM 树的更新。 更新方法就是通过 React 的 Diff 算法比较旧虚拟 DOM 树和新虚拟 DOM 树之间的 Change ,然后批处理这些改变。 React 性能优化的手段 React 中进行性能优化的手段可以从多个维度进行分类,以下是一些关键类别及其对应的优化策略: 1. 组件优化 使用PureComponent或React.memo:对于仅根据props和state改变才重新渲染的组件,使用React.PureComponent或者对其包装一层React.memo,它们都能通过浅比较props来避免不必要的重...阅读全文
本文分享自天翼云开发者社区《Qwik-能帮你移出项目中99%的JS代码》,作者:尹****勇什么是 QwikQwik 是一款全栈SSR框架,它号称 -能帮你移出项目中99%的JS代码-FCPFCP (First Content Paint 首次内容绘制)测量 页面从开始加载到页面内容的任何部分在屏幕上完成渲染的时间现在基本采用 react、vue 等框架进行开发,这就需要如下过程1.下载框架代码2.执行框架代码3.由框架完成页面渲染这无疑导致了FCP指标的下降Qwik 采用了SSR,这就省去了上述三个步骤,无疑加快了FCP但是TTI仍然需要优化TTITTI (Time to Interactive 用户可交互时间)测量页面变得完全可交互所需要的时间主要衡量如下指标1.FCP2.为页面所有元素...阅读全文
C/C++企业级项目实战班(浏览器/即时通讯/网盘/安全卫士/播放器)获课:C/C++企业级项目实战班(浏览器/即时通讯/网盘/安全卫士/播放器)获取ZY↑↑方打开链接↑↑C和C++是两种密切相关的编程语言,但它们有着不同的设计目标和发展历程。以下是关于这两种语言的详解:C 语言简介诞生:C语言由Dennis Ritchie在1972年左右为Unix操作系统开发。特点:C是一种中级语言,它结合了高级语言的特性和低级(汇编)语言的功能。这意味着程序员可以用C编写接近硬件级别的代码,同时享受结构化编程的优势。核心特性简洁性:语法简单,关键字少,使得学习曲线相对平缓。指针操作:提供了直接访问内存地址的能力,使程序员可以高效地管理和操作内存。函数库:标准库功能强大,包括输入输出、字符串处理、数学运...阅读全文
嵌入式Linux与C语言:从入门到精通的进阶教程在科技日新月异的今天,嵌入式系统作为连接硬件与软件的桥梁,广泛应用于智能家居、工业控制、汽车电子等领域,成为推动各行业创新发展的关键力量。而嵌入式Linux与C语言,作为嵌入式系统开发的两大核心技术,更是每一位有志于该领域工程师的必修课。本文将带领读者从入门到精通,逐步掌握嵌入式Linux与C语言的进阶知识。获课:jzit点top/13690/获取ZY↑↑方打开链接↑↑一、入门基础:打好坚实的基础1. C语言入门C语言作为嵌入式系统开发的基石,其语法简洁、执行效率高,深受开发者喜爱。初学者应从C语言的基本语法入手,掌握数据类型、运算符、控制结构等基础知识。同时,通过编写简单的程序,如计算器、学生成绩管理系统等,逐步培养编程思维。2. Linux...阅读全文