logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

常用算法详解

算法英文对应的单词是Algorithm,它的本意为解决问题的方法,所以算法直接理解就是解决问题的方法。在计算机领域定义就是一系列解决问题的、清晰、可执行的计算机指令。算法是在计算机科学中用于解决特定问题的一系列明确且有限的步骤或规则。它以输入数据为基础,通过确定性操作生成输出结果,强调高效性和可行性。常见算法包括排序、查找、动态规划、分治法和贪心算法等,主要评估指标为时间复杂度和空间复杂度。算法的

文章图片
#算法#排序算法#java
分布式ID详解

在分库之后, 数据遍布在不同服务器上的数据库,数据库的自增主键已经没办法满足生成的主键唯一了,这个时候就需要生成分布式。适用于并发不高,但是数据量太大导致的分库分表扩容,可能每秒最高并发最多就几百,那么就走单独的一个库和表生成自增主键即可。雪花算法相对来说还是比较靠谱的,毫秒数在高位,自增序列在低位,整个ID都是趋势递增的。不依赖数据库等第三方系统,以服务的方式部署,稳定性更高,生成ID的性能也是

文章图片
#分布式
分布式锁详解

它管理数据一致性,防止多个节点同时修改相同数据,处理资源竞争,保障事务原子性,避免任务重复执行,同时协调和同步节点操作,减少死锁的可能性。例如,在表中记录锁的创建时间,并定期检查是否超时,如果超时则自动释放锁。只有在比自己序号小的节点被删除后,才会再次检查自己是否成为最小的节点,进而获取锁。利用顺序节点实现锁的公平性,保证了锁的获取顺序。,查出来的数据是相同的,然后依次执行库存减一操作,此时库存会

文章图片
#分布式#java
gitlab-runner 设置用户为root

安装gitlab-runner默认会将用户设置为:gitlab-runner,该设置会使编写.ci的脚本,操作带来很大不便,本人深受其害。1.通过ps aux|grep gitlab-runner命令查看gitlab-runner进程,可以查看到gitlab-runner的工作目录和默认用户等一系列相关信息。2.通过该命令sudo gitlab-runner uninstall可以删除掉gitla

文章图片
#linux#gitlab
SpringMVC与SpringWebFlux

SpringWebFlux相比较SpringMVC最大的优势在于它是异步非堵塞的框架,可以让我们在不扩充硬件资源的前提下,提升系统的吞吐量和伸缩性。而SpringMVC是同步阻塞的,如果你目前在SpringMVC框架中大量使用异步方案,那么WebFlux可能才是你想要的,否则使用SpringMVC才是你的首选。SpringMVC的核心思想是将MVC设计模式应用于Spring框架,实现了请求-响应模

文章图片
#spring#servlet#mvc
Netty详解

Netty是一个高性能、异步的网络应用框架,用于开发高效的网络通信程序。它是JavaNIO的一个抽象,简化了网络编程的复杂性,并提供了一系列高级功能,使网络编程变得更简单。Netty是一个高效的网络框架,专注于处理大量并发连接。它通过异步IO处理来避免阻塞,这让它在处理高并发时表现出色。Netty还利用了优化的内存管理和零拷贝技术,降低了性能开销。框架的灵活性也很高,开发者可以通过管道机制自定义数

文章图片
#java
软件开发的未来:AI 大模型与智能代码生成

例如,GitHub Copilot 就是一个典型的应用,通过结合 AI 大模型的技术,能根据开发者输入的函数名称、注释或参数等信息,智能地推测并生成完整的代码块。AI 大模型的应用远不止于自动化代码生成。AI 大模型能够将复杂的编程任务转化为简单的语言描述,开发者只需用自然语言描述他们的需求,AI 就能自动生成符合要求的代码。未来,AI 与开发者的协作将不再是单纯的代码生成,而是更深层次的合作,A

文章图片
#人工智能#驱动开发
SpringBoot整合Nacos

大致原理为: 监听nacos配置改动,通过nacos改动确定改动的配置,进而缩小更新范围,通过反射更新变量.有时候一些老项目或者一些写法会遇到静态的配置,这时候可以利用Java的反射特性来刷新静态变量.一键傻瓜试安装即可,官网写的很清楚这里不在赘述。整合nacos配置中心,注册中心,完整项目地址。

文章图片
#java
Kafka详解

发布者和订阅者之间有时间上的依赖性:针对某个主题的订阅者,它必须创建一个订阅之后,才能消费发布者的消息,而且为了消费消息,订阅者必须保持运行的状态。半数以上完成同步才可以发ACK,如果挂了n台有副本的服务器,那么就需要有另外n台正常发送(这样正常发送的刚好是总数(挂的和没挂的)的一半(n(挂的)+n(正常的)=2n)),因为是半数以上所以2n+1。,但是确实Erlang语言阻止了大量的Java工程

文章图片
#kafka#分布式#java
如何快速打开Github

我们在浏览器输入 GitHub 的网址时,会向 DNS 服务器发送一个请求,获取到 GitHub 网站所在的服务器 IP 地址,从而进行访问。为什么我们打开Github速度很慢?很卡,甚至于访问不了,原因是中间有个域名通过DNS解析的过程,将域名解析为对应的ip地址,主要时间都是花在了DNS解析上了。有时候尝试过手动修改host文件来解决网站的访问问题,及更换网络但还是有时候无法如愿的访问GitH

文章图片
#github
到底了