zoukankan      html  css  js  c++  java
  • 三、(项目架构的过去与现在)亿级用户行为之大数据实时分析

     

    1.  一期工程项目技术架构

    1)业务驱动

    2)问题驱动

    2. 二期工程项目技术架构

    项目优化原则:

    1)优先从架构和程序进行优化

    2)考虑增加集群扩容

    做任务为什么不适用kafka?

    1)此业务用户量还小

    2)数据量小

    3)使用kafka大材小用,资源浪费

    为什么同时使用db和redis

    1)用户成长值需要存储在db

    2)提高用户查询性能需要使用缓存redis

    3)数据写入db同时还需要写入redis

    为什么这个业务线使用kafka而不使用Rabbit Mq

    1)kafka支持高并发

    2)kafka属于大数据生态组件,提供了成熟接口,很好的支持流式计算

    3)RabbitMQ对spark Storm flink支持不好

    当前遗留问题/隐患:此时kafka生产者在业务系统里面,耦合度太高

    3. 三期工程项目技术架构

    kafka中的数据为什么消费多次?

    1)kafka中的数据需要使用Spark Streaming 做汇总统计

    2)kafka中的数据加成长值,存入redis缓存,加快查询速度

    3) kafka中的数据加成长值之后,HBase和db都保存一份

    4. 项目流式计算框架

    Nginx上面是一个硬件F5,F5可以实现负载均衡,用户访问请求发送过来之后,F5会按照一定的

    规则轮询发送给Nginx,Nginx又按照一定的规则轮询分发给Tomcat。

    无论硬件还是软件,都达到一个负载均衡的策略

    F5硬件层面主备高可用,软件层面Nginx、Tomcat、Flume、kafka、Spark on yarn、HBase

      都是高可用。

    总结:端到端全链路都是高可用。如果整个环节/流程有一个环节不是高可用,那么整个系统

      就存在风险。

    哈哈

  • 相关阅读:
    匿名方法
    优化从 App.config 读取配置文件
    显示(explicit )与隐式(implicit)转换操作符
    ( 转 ) 聊一聊C#的Equals()和GetHashCode()方法
    协变和逆变
    html frameset的介绍
    html <frame>标签使用
    html <table>标签信息
    html 列表相关信息
    html <form>相关表单
  • 原文地址:https://www.cnblogs.com/hanchaoyue/p/13286160.html
Copyright © 2011-2022 走看看