本篇主要阐述了为什么需要服务发现功能,对几种服务发现工具进行了比较。同时,在 CentOS 上,对 Etcd、Confd 、Nginx 实现服务发现功能进行了实践。1. 服务注册与发现1.1 为什么需要注册和发现服务随着微服务的兴起,大量接口服务化。当新的微服务加入或微服务的信息发生变更时,服务方如何通知周边系统、使用方如何知道这些变更呢?这时就需要服务的注册配置和发现功能。服务注册配置——存储的 ...
阅读更多 »
互联网的服务常依赖于成千上万的主机,而这些主机又部署在世界各地,再加上错综复杂的用户环境,要保证服务的稳定可靠,就需要对服务进行监控。监控的目的可以从这几个方面考虑:从系统维度,了解CPU、内存、硬盘使用情况;从网络监控维度,了解网络上行、下行速率;从服务监控维度,了解应用程序的健康性、可用性。当然,有了监控数据,还可以配置告警,通知维护人员、辅助排查故障问题。1. 监控开源工具1.1 Nagio ...
阅读更多 »
本文主要简单介绍了 ELK 的技术栈,并给出了 Docker compose 的编排配置。阅读本文,可在本地通过 Docker 将 ELK 跑起来。后续会将 ELK 在服务器上进行部署,相关的配置再补充。1. ELK 技术栈介绍ELK 其实并不是一款软件,而是一整套解决方案,是三个软件产品的首字母缩写,Elasticsearch,Logstash 和 Kibana。这三款软件都是开源软件,通常是配 ...
阅读更多 »
1. 如何更好做 CodeReview要求事项代码提交者的要求小粒度原子性有注释工具检查对代码 Review 者的要求一看规范二看逻辑&性能三看设计对团队的要求温故而知新2. 制定CodeReview CheckList要求事项命名变量名字类命名方法命名参数命名代码长度类长度不超过1000行方法长度不超过100行条件嵌套避免多个 If,循环语句嵌套避免判断条件过长参数、返回值检查参数个数建 ...
阅读更多 »
本文主要约定在 Django 开发过程中,需要注意的一些事项。统一的编码风格,良好的设计理念,有利于项目的开发和维护,值得开发人员不断地研究和探讨。1. 编码声明在 Python 解释器执行代码时,需要告诉解释器代码的编码方式。Python 代码实际上是文本数据,如果代码的编码方式与解释器读取的编码方式不一致,将会因编码错误,代码无法执行。Python 2 解释器读取代码时,默认的编码方式是 AS ...
阅读更多 »