分布式、微服务、架构
文章平均质量分 94
技术方案及架构
AirGo.
[WHY]每一个你不满意的当下,都有一个你不曾努力的过去。
展开
-
从0到1手撕负载均衡算法
轮询package mainimport ( "fmt" "sync/atomic")var ( nodeAddress = map[string]string{ "A": "127.0.0.1", "B": "127.0.0.2", "C": "127.0.0.3", "D": "127.0.0.4", } nodeIndex = []string{"A", "B", "C", "D"} nodeWeight = map[string]i...原创 2021-07-17 17:42:35 · 481 阅读 · 1 评论 -
微服务注册中心和三种服务发现模式
为何需要在我们日常开发中,需要调用另一个服务时,一般都是通过 API 接口发送请求,解析响应,再处理后续的业务逻辑,在这个过程中有没有思考过下面这些问题:如果我们调用的某个下游服务某个节点挂了,该怎么办? 调用方如何确定调用的是哪个节点? 下游服务进行上线操作时,如何保证上游能够正常调用? K8s 集群内节点的网络地址都是动态分配的,上游调用时如何找到新上线的节点?我们今天的主角,注册中心提供的服务发现能力,就可以解决上述问题。...原创 2021-04-10 15:18:01 · 1417 阅读 · 0 评论 -
PHP实现opentracing链路追踪
说点废话之前写过一个GoLang版本的opentracing客户端实现,由于部门大部分服务还是用PHP实现的,所以打算用PHP实现一个基于jaeger的客户端。GoLang版本:https://success.blog.csdn.net/article/details/104100597参考文档和开源组件opentracing文档:https://wu-sheng.gitbooks.io/opentracing-io/content/pages/spec.htmlopentraci.原创 2020-10-24 23:51:00 · 2482 阅读 · 0 评论 -
高并发场景利器之限流
WHY,为什么需要限流? 举一个常见场景,鄙人居住在北京,大天朝的地铁早高峰远近闻名,地铁人满为患,此时我们的安检员大大们会拉起长长的隔离线,乘客们有序排队进站。为什么要这样做呢,让大家自己随意进入会有什么问题呢?因为通过工作人员慢慢引流,会有效减少站台的压力,不会使大量无秩序乘客蜂拥而至堵在站台,导致想上的人上不去,想下的人下不来,地铁车门关不上,影响地铁正常行驶,还会引发冲突甚至安全事故。所以限流是为了保证每一位乘客最终能够顺利上车,同时保持整个过程井然有序。 回到我们...原创 2020-11-24 17:22:08 · 772 阅读 · 2 评论 -
一个日志系统需要具备哪些功能
在项目开发和线上运行不同场景下,日志系统都是不可或缺的,一般日志有以下几个作用:记录错误、性能分析、查看服务间的调用关系、记录时间等。所以我们的日志系统,就需要围绕这些需求出发来设计,一般要有如下功能点:日志配置读取:方便不同项目部署,通过更改配置文件即可 日志级别:为了减少线上日志大小,开发环境和线上环境记录错我的级别一般是不一样的,比如一般线上只记fatal和error,开发环境则需要记...原创 2020-03-16 23:29:56 · 5773 阅读 · 0 评论 -
面试中常问的HTTPS、SSO单点登录、Oauth认证、正向代理和反向代理
SSO单点登录准备:父应用提供GET的登录接口给子应用 子应用提供token验证接口给父应用子应用登录步骤:用户通过子应用重定向请求父应用的登录接口,如果没有登录返回父应用的登陆界面进行登录 如果已经登陆则生成加密的token,携带token请求子应用验证token的接口(扫码登录实际上也是实现了这一步) 子应用验证token的接口对token解密校验,校验成功后反馈给用户登录...原创 2020-03-15 19:09:10 · 1393 阅读 · 0 评论