zoukankan      html  css  js  c++  java
  • 近一月翻阅资料小结

    近一个月接触的东西比较多,梳理一下。

     

    Nginx+Tomcat

    实现负载均衡,同时采用keepalived的形式实现HA。负载后,关键问题就是session共享的问题,可实现的思路较多:Tomcat6以后本身可以使用cluster技术达成。也可以借鉴第三方软件实现。Memcachedredis都是采用的方案,【tomcat8redis的方案中兼容性稍差,可以改造原有jar包,目前已测试通过】。

     

    NOSQL

    Mongodb,文档数据库。实现集群有三种方式,一种是M-S方式,官方不建议采用此方案。一种是rep复制集方式,使用率较高。再者就是sharding方式,需要数据量较大以后建议使用,一般情况下无须此方式。其HA方式也是基于复制集的形式实现。Springmongodb支持较多,如jdbcTemplate等等使用方式即可。

    Rediskey-value数据库。支持的数据格式较memcached较多,比如string,map,list等等,一般情况下memcachedredis效率上基本上差不多。其HA方式,同样可以采用Keepalived方式实现,采用VIP的结构。Redis本身也支持sentinl的方式实现HA,集成在redis内部。Redis3之后本身支持cluster方式。采用3台机器或以上交叉部署,3Master-3Slave,除非两台机器全部down掉。

     

    Supervisor,进程监控工具,以确保某些关键服务在无端断掉之后能监控到,实现自动重启。

     

    Crontablinux系统自带的定时任务工具,采用cron方式,当前任务不能实现分布式运行时,可采用特殊部署的形式达到只启动一个任务。

     

    Kafka,一个消息传输开源工具,效率上要优于activeMQ。可以与log4jappender结合,直接将log4j的日志统一收集起来集中式管理,然后存储起来。主要有三个关键概念。Producerbrokerconsumer。集群部署也有几种方式,单broker,多broker,多producer/consumer方式等。采用zookeeper实现服务的注册,其本身也自带zookeeper,当然也可以采用zookeeper独立的服务。

     

    Log4j 2log4j/logback后又一力作,log4j 2优于两者,效率上要更快,但针对不是很大型的应用而言,log4j/logback基本上可以满足需求。

     

    Logstash,日志收集工作,可以收集多种日志格式,比如nginx,tomcat,mysql等等,采用Input的形式,设置来源,其后output到指定的存储容器中。中间也可以采用filterinput的数据进行格式化处理。多用于系统的监控,特别是集群环境的监控,不必再一个一个机器来查看日志。

     

    Elsticcsearch,基于lucene的搜索引擎工具,存储数据量很大,搜索速度快。Logstash收集的日志可以直接存储到elasticsearch中,方便数据存储及后期数据的分析。

     

    KibanaELKlogstashelsticsearchkibana)组件中三者中的一个,可以WEB的形式查看日志,监控报警等等。安装比较简单,在Linux中部署中就可以启动看到UI

     

    Hadoop,现下的大数据默认的标准,一说大数据就联想到hadoop。其有两个关键概念,一个mapreduce,一个是HDFSHadoop2版本之后,mapreduce全新升级为Yarn架构,实现方式上差别很多,但效率稍微较1版本中效率高不少。HDFS,分布式文件系统,多用于数据存储,结合其它开源工具使用。Namenode/datanode两个主要的概念,namenode类似目录服务,datanode存储数据。

     

    Hive,数据仓库工具,可以理解为MYSQL来使用。Hive+HDFSHIVE的数据是存储在HDFS中,但Hive的元数据是存储在关系性数据库中,如debrymysql等。

    部署方式有三种,

    一是嵌入式部署,直接内置的debry,此方式只能用于单连接测试使用,生产开发都不建议使用。

    二是本地化部署,本机安装数据库,

    三是远程式部署,与本机安装类似,多用于生产环境部署。

    其专用的HQL语法,使用起来与SQL语法类似,但其可以直接翻译成mapreduce任务来执行,大大降低了编写mapreduce的工作量,但有些问题无法通过HQL解决时,只能编写mapreduce来实现。

     

    Spark,一种内存计算的大数据工具,对机器内存要求较高,但其运行效率是hadoop中的MR远远不及的。

     

    Flume,中文翻译为管道,由名知意。可以JAVA API采用,也可以与log4j集成,对应的有appender,可以将log4j的日志注入flume中。关键因素有sourcechannelsink。可以多节点部署,前后衔接。Log4j + flume + hdfs/elsticsearch是比较可行的架构。

     

    Sqoop,之前用过penthon kettle,有点类似。Sqoop主要用于数据传输,从关系库中往非关系库中导入导出。

    成长的乐趣,在于分享!
    大龄程序员,一路走来,感慨颇多。闲暇时写写字,希望能给同行人一点帮助。
    本文版权归作者growithus和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    Codeforces Gym 100571A A. Cursed Query 离线
    codeforces Gym 100500 J. Bye Bye Russia
    codeforces Gym 100500H H. ICPC Quest 水题
    codeforces Gym 100500H A. Potion of Immortality 简单DP
    Codeforces Gym 100500F Problem F. Door Lock 二分
    codeforces Gym 100500C D.Hall of Fame 排序
    spring data jpa 创建方法名进行简单查询
    Spring集成JPA提示Not an managed type
    hibernate配置文件中的catalog属性
    SonarLint插件的安装与使用
  • 原文地址:https://www.cnblogs.com/growithus/p/11012251.html
Copyright © 2011-2022 走看看