Wesley13 Wesley13
4年前
100 行写一个 go 的协程池 (任务池)
前言go的goroutine提供了一种较线程而言更廉价的方式处理并发场景,go使用二级线程的模式,将goroutine以M:N的形式复用到系统线程上,节省了cpu调度的开销,也避免了用户级线程(协程)进行系统调用时阻塞整个系统线程的问题。【1】但goroutine太多仍会导致调度性能下降、GC
Stella981 Stella981
4年前
Spring Cloud Eureka 服务关闭但是未从注册中心删除 自我保护机制
自我保护背景首先对Eureka注册中心需要了解的是Eureka各个节点都是平等的,没有ZK中角色的概念,即使N1个节点挂掉也不会影响其他节点的正常运行。默认情况下,如果EurekaServer在一定时间内(默认90秒)没有接收到某个微服务实例的心跳,EurekaServer将会移除该实例。但是当网络分区故障发生时,微服务与EurekaSer
Stella981 Stella981
4年前
Redis 的落地策略
因为之前使用redis一般都只做热数据处理,没有考虑过落地方案,因此,通过很多次不同的交流,发现落地也挺重要的,特来学习一般。落地策略我们知道,redis是纯内存数据库,一旦发生宕机,数据就会丢失,因此,Redis的落地策略其实就是持久化(Persistence),主要有以下2种策略:1.RDB:定时快照方式(snapsho
Stella981 Stella981
4年前
Kotlin (Java) 获取 mysql 数据库的所有表,表的所有字段,注释,字段类型
importcom.mysql.jdbc.jdbc2.optional.MysqlDataSourceimportorg.slf4j.LoggerFactoryimportorg.springframework.stereotype.Serviceimportjava.sql.importjava.
Wesley13 Wesley13
4年前
Java Concurrent包学习之BlockingQueue
BlockingQueue是一个接口,它从Queue继承而来,包含了Queue的所有功能,并在Queue的基础上提供了2个新的功能:1.检索元素时等待队列变为非空2.存储元素时等待空间变得可用。下面抄录一些JDK文档中关于BlockingQueue的介绍:BlockingQueue 可以是限定容量的。它在任意给定时间都可以有一个 
分布式事务的几种实现方式 | 京东云技术团队
基础理论CAP理论一致性(Consistency):在分布式系统中所有的数据备份,在同一时刻都保持一致状态,如无法保证状态一致,直接返回错误;可用性(Availability):在集群中一部分节点故障,也能保证客户端访问系统并得到正确响应,允许一定时间内数
小白学大数据 小白学大数据
11个月前
如何在Java爬虫中设置动态延迟以避免API限制
一、动态延迟与代理服务器的重要性1.动态延迟的重要性动态延迟是指根据爬虫运行时的环境和API的响应情况,动态调整请求之间的间隔时间。与静态延迟(固定时间间隔)相比,动态延迟能够更灵活地应对API的限制策略,同时最大化爬虫的效率。动态延迟的重要性体现在以下几
小白学大数据 小白学大数据
2星期前
随机间隔在 Python 爬虫中的应用实践
一、随机间隔的核心应用价值在深入技术实现之前,我们首先需要明确:为什么随机间隔在爬虫开发中如此重要?1.打破请求规律性,规避反爬检测网站的反爬系统通常会通过分析请求日志,识别具有固定时间间隔(如每1秒发送1次请求)、高频次的请求流量。这类流量明显区别于人类
小白学大数据 小白学大数据
2星期前
随机间隔在 Python 爬虫中的应用实践
一、随机间隔的核心应用价值在深入技术实现之前,我们首先需要明确:为什么随机间隔在爬虫开发中如此重要?1.打破请求规律性,规避反爬检测网站的反爬系统通常会通过分析请求日志,识别具有固定时间间隔(如每1秒发送1次请求)、高频次的请求流量。这类流量明显区别于人类