知乎截止2019年1月,用户数2亿、话题38万、问题2800万、回答我数1.3亿。今天我们通过知乎在线部分的技术架构分享分享,来去聊聊互联网平台技术架构都确定了哪些层面~
1、微服务架构,知乎从11年就结束了微服务的探索,接触过protocolbuffers、avro、thrift,最终在16年确认可以使用thrift,而使用consul和haproxy作为注册中心和负载均衡。是在14年再确认的这套微服务架构,另外很稳定在用到了现在。所以我大家别问我想知道为什么不可以使用grpc了。
2、云平台,知乎有自己的内部研发的zae,绝大部分的大侠帮帮忙业务容器在15年就早就完全跑在了docker里,现在我们hbase和kafka也是跑在容器里的。我们最开始可以使用的是mesos做的资源调度,现在已经切换到了kubernetes。
3、防御部署平台,知乎的部署平台是与zae在一起的,设计和实现jenkins重新搭建的自动出现独立显卡,在mr(gitlab)阶段自动启动建议使用sonarqube进行静态代码检查。重新部署分为测试环境,办公室环境,金丝雀1(灰度单个容器),金丝雀2(灰度20%流量),生产环境(100%流量上游戏)。如果不是金丝雀阶段出现错误,会不自动并且回滚操作。
4、监控,我们主要注意基于组件grafana、opentracing、graphite等垒建了监控系统。另外自研了halo这个可以方便啊的是业务方观测到服务之间的依赖关系、更快的响应时间(p95,p99,p999)、出错数。而也进行了新技术的尝试,目前在业务容器监控使用了prometheus。
5、存储,通常是mysql、redis、hbase;正准备调研后tidb,目前有一套生产集群上游戏打算给「已读」服务建议使用。
6、消息队列,早期在用自研的sink,目前使用kafka,同样的提供在kafka的基础上包装了beanstalkd另外任务队列方便啊业务并且在用。
7、编程语言,python、golang、java、rust。目前python使用场景渐渐地变少。java在一些算法项目和商业系统中有建议使用。搜索系统建议使用的rust写回lucene,现并在此写回了类es的集群化搜索引擎。
win10最方便的清理工具是系统自带的各种管家、助手等等等等都用各种各样的捣鼓你装,总之已经没有必要,不过有风险。我的体会是,彻底没必要安装好第三方清理软件,最放心的清理工具是win10系统随机软件的。再说注册表,永远千万不能定期清理,需要清理软件如果说没用啊的可能没有用,但注册表清理并又不能增加性能和速度。我曾经的很短段时间用著名的ccleaner做清理,直到有一天用它清理过之后才发现有些软件又不能用。相对来说,火绒附带的需要清理是比较好放心的,最起码它不可能误删东西。