工具idea

所用的技术类型:

Maven+mybatis+ssm+springboot+springcloud+redis+elasticsearch+mysql

在springcloud中运用到Eureka服务注册与发现的集群分布+feign框架实现的rest接口调用+ribbon的负载均衡+Hystrix的处理分布式系统的延迟和容错的开源库

爬虫流程:

  1. 确定首页URL,在谷歌浏览器中F12,往下滑动页面,找到真正的url,因为页面是以ajax请求进行的。
  2. 发送请求,获取数据。设置定时器持续爬取数据,将爬取的源数据从string转化为json,再将json转化为对象存储带list集合中。
  3. 解析数据。设置条件判断进行数据的有效性检验,采用redis去重,将url设置为redis中的key,判断redis中是否存在相同地址,不存在则添加到数据库和同步到redis,否则不添加数据到数据库。
  4. 存储数据,使用mybatis进行数据的插入。

项目目前流程:.

  1. 用户发起请求,如localhost:9001/search?keyword=黄
  2. 利用feign框架实现rest接口调用
  3. {其服务提供者和服务消费者均注册在eurekaserver中}并且eureka以集群分布式的形式,避免了单点故障,以及eureka所面临的高并发问题
  4. 通过ribbon的自定义负载均衡算法进行负载均衡。然后告知用户下一步的请求资源所在处。
  5. 在整个过程中,服务监控hystrixboard全程监控其流程,以便处理分布式系统的延迟和容错

从理念上讲,分布式的实现有两种形式:

水平扩展:当一台机器扛不住流量时,就通过添加机器的方式,将流量平分到所有服务器上,所有机器都可以提供相当的服务;

垂直拆分:前端有多种查询需求时,一台机器扛不住,可以将不同的需求分发到不同的机器上,比如A机器处理余票查询的请求,B机器处理支付的请求。

在目前的整个项目中,用到了分布式的水平扩展,也就是我们所说的集群。但由于项目板块不多,所以并未使用垂直拆分。

【补充】ribbon实现负载均衡

爬虫 spider12——暂停小总结_爬虫流程_微服务架构流程相关推荐

  1. 微服务的好处与弊端_一文了解微服务的流程和组织

    导语:微服务架构最重要的好处是它可以实现大型的复杂应用程序的持续交付和持续部署.持续交付和持续部署是DevOps的一部分,DevOps是一套快速.频繁.可靠的软件交付实践.高效能的DevOps组织通常 ...

  2. 微服务 松耦合_超值干货:微服务架构下如何解耦,对于已经紧耦合下如何重构?...

    今天准备谈下微服务架构下各个微服务间如何解耦,以及对于已经紧耦合的微服务如何进行重构.要明白实际上微服务后续出现的诸多问题往往都是一开始微服务模块划分就不合理导致,对于具体的模块划分方法和原则,我总结 ...

  3. web服务优化与健壮性改进_创建健壮的微服务架构所涉及的组件

    web服务优化与健壮性改进 在本文中,我们将简要学习构建强大的微服务应用程序所需的各种软件组件. 在简要了解每个架构组件之前,我们将陈述设计微服务架构时出现的一般查询. 1.微服务架构组件 每当我们创 ...

  4. mysql微服务查询问题_【mysql】微服务架构下跨服务查询的聚合有什么好的方案?...

    微服务架构中,每个服务都有自己的独立数据库. 然而现在有个需求,需要生成一张实时的报表,该报表包含两个服务的数据. 如服务A,服务B.B中仅包含A的主键id作为关联. 而此报表的搜索条件包含A服务实体 ...

  5. docker 保存 环境持久化_为什么 Docker 适合微服务架构?

    ContainerDevOps时代 微服务架构日益成熟,不但得到了初创公司和创新型公司的认可,一些传统企业也在逐步接受微服务架构.我们仍然在学习如何利用其在扩展性,易于维护和构建等方面的优势.当然我们 ...

  6. python 微服务架构实战_名师讲坛——Java微服务架构实战(SpringBoot+SpringCloud+Docker+RabbitMQ)...

    内容简介 作者简介 前言 第一部分 SpringBoot篇 第1章 SpringBoot编程起步 1.1 传统开发中痛的领悟 1.2 SpringBoot简介 1.3 SpringBoot编程起步 1 ...

  7. python服务发现与注册_(转)微服务架构中服务注册与发现

    https://blog.csdn.net/u011537073/article/details/69663858 想象一下,如果你在写代码调用一个有REST API或Thrift API的服务,你的 ...

  8. java实现的微服务架构_详解Java 微服务架构

    一.传统的整体式架构 传统的整体式架构都是模块化的设计逻辑,如展示(Views).应用程序逻辑(Controller).业务逻辑(Service)和数据访问对象(Dao),程序在编写完成后被打包部署为 ...

  9. re.containerbase.startinternal 子容器启动失败_微服务架构:基于微服务和Docker容器技术的PaaS云平台架构设计(微服务架构实施原理)...

    走过路过不要错过 点击蓝字关注我们 基于微服务架构和Docker容器技术的PaaS云平台建设目标是给我们的开发人员提供一套服务快速开发.部署.运维管理.持续开发持续集成的流程.平台提供基础设施.中间件 ...

最新文章

  1. 雷林鹏分享:Redis 管道技术
  2. jSearch(聚搜) v0.5.0 发布,多项更新和体验优化
  3. 牛顿法求解方程(python和C++)
  4. android 代码加view,Android中将View添加至窗口的源码分析
  5. 多线程,多进程选择(了解)
  6. 如何去除bootstrap中按钮的黑线边框
  7. Nginx编译安装和平滑升级
  8. 细说ReactiveCocoa的冷信号与热信号(三):怎么处理冷信号与热信号
  9. 设置三个线程顺序打印数字问题(转载)
  10. 松下a6伺服驱动连接光栅尺_闭环伺服系统的数控贴条为什么要安装光栅尺?
  11. Android安全:So分析
  12. 1364:Field 'sex' doesn't have a default value [ SQL语句 ]
  13. 如何快速搭建在线教育知识付费系统(附带源码)
  14. dell刷sn_像API一样地通过Dell设备SN号自动获取准确的设备型号
  15. 部分国家人均GDP和生活满意度可视化
  16. linux、ubuntu如何查看网速
  17. FPGA_UART串口通信
  18. 混沌初开:全新 HarmonyOS 2 正式到来!
  19. 【R语言】他说每个生存曲线一定要看到p值,不能0.05,0.01,0.001
  20. 论如何进行培养独立解决问题的能力

热门文章

  1. 2021牛客多校6 - Defend Your Country(点双缩点求割点)
  2. HDU - 3804 Query on a tree(树链剖分+线段树+离线处理)
  3. python基础语法-三大内建数据结构之集合(set)
  4. eoj程序设计基础(基于 C 语言)1067
  5. 文件夹的位置_感觉电脑变卡了?删除这5个文件夹 C盘立马清爽
  6. HDU1058 Humble Numbers
  7. C++虚继承(十) --- 谈谈陈皓遗留的问题
  8. cocos2d-x游戏实例(21)-纵版射击游戏(8)
  9. [译]BitTorrent协议规范
  10. 第32讲:实时处理利器 mitmproxy 的使用