热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:当业务需要大量IP的时候,该如何操作?每天产生IP量:w级,Easy

本文由编程笔记#小编为大家整理,主要介绍了当业务需要大量IP的时候,该如何操作?每天产生IP量:w级,Easy相关的知识,希望对你有一定的参考价值。当业务需要
本文由编程笔记#小编为大家整理,主要介绍了当业务需要大量IP的时候,该如何操作?每天产生IP量:w级,Easy相关的知识,希望对你有一定的参考价值。


当业务需要对外大量爬取数据的时候,往往会碰到被目标网站限流或者直接封堵。这时候就要进行层层应对,代码要被改造成模拟人的行为浏览器访问目标网站,这中操作,当需要获取目标网站数据量不大,时间充裕的情况下,足够了。但当我们需要短时间内大并发爬取内容的时候,这只从代码上进行改造往往达不到效果;这个时候就需要进行大量的IP配合。

大量IP架构V1

技术分享图片
在各地机房部署ADSL线路,利用定时任务不停调用ADSL重拨,从而刷新IP。

程序任务下载中心把任务程序包下发到各个节点,节点上任务运行爬取数据的工作。

缺点:

由于投入各地的机房,有些甚至私人机房,不太稳定,机器出问题的时候,投入太多人力处理。

ADSL申请监管加大,不好申请。

成本高。

爬取内容增大,这种布线方式不利于扩容。

大量IP架构V2

技术分享图片

本版因为考虑到快速扩容引入容器,并搭配K8S进行集群管理。

本版本丢弃ADSL,选用×××进行IP变化,可以是收费×××、免费×××等。

SQUID:用于为服务提供请求代理。

队列:用于接受重连×××指令,重连一次×××则IP会重新更换。

监控程序:1.接受指令,重连×××;2.监控×××网络的连通性,如果掉线则重连。

×××-Client:×××客户端。

任务集群:上面跑着各需求的程序,当需要进行爬取数据时候通过链接squid代理进行对外访问。

实施遇到的一些问题:

容器权限问题

在yaml部署文件中需要为容器提供管理员权限:securityContext: {privileged: true}

内核问题

×××需要一些系统内核支持,所以,需要进行相应挂载。

volumeMounts:

- {mountPath: /lib/modules, name: modules}

通过该命令进行判断:cat /dev/net/tun

返回结果为cat: /dev/net/tun: File descriptor in bad state:就表示该系统支持。

现已跑一段时间,情况稳定。

现情况如下:

并发在线容器:几百+。年内预计会增长到k+

现每天产生IP量:10几w 很轻松。

更多文章,请关注×××公众号:轻量运维。
技术分享图片


推荐阅读
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • TiDB | TiDB在5A级物流企业核心系统的应用与实践
    TiDB在5A级物流企业核心系统的应用与实践前言一、业务背景科捷物流概况神州金库简介二、现状与挑战神州金库现有技术体系业务挑战应对方案三、TiDB解决方案测试迁移收益问题四、说在最 ... [详细]
  • 云原生SRE
    序言年底了,没有分手的朋友的赶紧分了,所谓新年新气象,年年不重样。去留无意,望看风卷残云。。。运维不会消失,但 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了如何在Mac上使用Pillow库加载不同于默认字体和大小的字体,并提供了一个简单的示例代码。通过该示例,读者可以了解如何在Python中使用Pillow库来写入不同字体的文本。同时,本文也解决了在Mac上使用Pillow库加载字体时可能遇到的问题。读者可以根据本文提供的示例代码,轻松实现在Mac上使用Pillow库加载不同字体的功能。 ... [详细]
  • JavaScript和HTML之间的交互是经由过程事宜完成的。事宜:文档或浏览器窗口中发作的一些特定的交互霎时。能够运用侦听器(或处置惩罚递次来预订事宜),以便事宜发作时实行相应的 ... [详细]
  • 用LGWR WORKER的例子介绍strace分析Oracle数据库行为的方法
    可观测性能力是IT运维的强有力的支撑。日志告警、指标是两种在运维中很常用的可观测性指标。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
author-avatar
挚友刘洋共
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有