好系统的特点

最近在想一个问题,一个系统在达到什么标准才可称得上是优秀的系统。对我个人而言,需要达到三个指标:

  1. 简单性:一个系统本身设计上就应该简洁,没有冗余的功能,容易升级和维护。
  2. 可用性:可用性是互联网产品必备特点,随时保持产品功能线上可用,不至于宕机造成大量用户流失。
  3. 自动化:系统的运维自动化,不该人力介入。在一般的错误情况能自动修复。因此对系统的监控在开发阶段提前设计

多语言编程

编程语言的百花齐放,造成在个个场景上有专门适合的语言。因此在单个系统运用多种编程语言来实现也慢慢进入程序员的思维方式。像交互,业务逻辑和数据方面都有相应的语言,这样就出现多语言编程方式。然而多种语言如何实现交互,是通过服务接口还是语言内置的调用其它语言的方式? 发挥语言在特定场景效果以及组合多语言的能力。

如何将kafka的数据导入到Elastic

想到有三种方法:

1. logstash

2. kafka-connect-elasticsearch

3. elasticsearch-river-kafka-1.2.1-plugin

方法一:简单,只需启动一个代理程序

方法二:与confluent绑定紧,有些复杂

方法三:代码很久没更新,后续支持比较差

 

logstash使用如下:

input {
kafka {
zk_connect => “kafka:2181”
group_id => “logstash”
topic_id => “apache_logs”
consumer_threads => 16
}
}
output {
elasticsearch {
document_id => “%{my_uuid}”
}
}

https://www.elastic.co/blog/just-enough-kafka-for-the-elastic-stack-part2

Spark整合Elastic

环境: spark 1.6, ElasticSearch 1.6.1, elasticsearch-hadoop

通过 elasticsearch-hadoop可以将spark 处理后的数据保存在Elastic上,后续数据的检查和查询非常方便。

https://db-blog.web.cern.ch/blog/prasanth-kothuri/2016-05-integrating-hadoop-and-elasticsearch-%E2%80%93-part-2-%E2%80%93-writing-and-querying

https://www.elastic.co/guide/en/elasticsearch/hadoop/master/spark.html

https://spark-packages.org/package/elastic/elasticsearch-hadoop

好记忆不如烂笔头

之前解决问题的时候忘了做笔记,后来遇到相同的问题的时候,不记得之前有个解决方案。年纪大了好多东西都得记得做,有时候忘了这忘了呢,以后做这种技术的话最好还是自己做一下笔记,用wordpress