捉虫大师 捉虫大师
3年前
服务探活的五种方式
几个月前,我在这篇文章中给自己挖了个坑:文中提到的实际问题就是服务探活,今天来填上这个坑。在微服务架构下,服务提供方(Provider)的节点一般不止一个,消费方(Consumer)根据负载均衡算法挑选一个健康的节点进行调用。识别Provider节点是否健康,这便是服务探活要讨论的内容。健康的节点可定义为能正常响应Consumer请求的节点,不健康自然是不
Jacquelyn38 Jacquelyn38
3年前
手写一个仿微信登录的nodejs程序
前言首先,我们看一下微信开放文档中的一张图:上面的一幅图中清楚地介绍了微信登录整个过程,下面对图上所示进行总结:一、二维码的获得1.用户打开登录网页后,登录网页后台根据微信OAuth2.0协议向微信开发平台请求授权登录,并传递事先在微信开发平台中审核通过的AppID和AppSecrect等参数;2.微信开发平台对AppID等参数进行验证,并向
Wesley13 Wesley13
3年前
TCP三次握手的过程
TCP(TransmissioncontrolProtocol)是一种面向连接,可靠的,基于字节流的运输层通信协议,是专门为了在不可靠的互联网络上提供一个可靠的端到端字节流而设计的。每一次tcp连接需要3个阶段:连接建立,数据传送和连接释放三次握手发生在连接建立阶段,目的是为了防止已失效的连接请求报文端突然又传送到服务器端,因而产生错误三
Wesley13 Wesley13
3年前
CDN是什么?
CDN是ContentDeliveryNetwork的简称,即“内容分发网络”的意思。一般我们所说的CDN加速,一般是指网站加速或者用户下载资源加速。CDN是通过在网络各处放置节点服务器,形成在现有的互联网基础之上的一层智能虚拟网络。CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户
Wesley13 Wesley13
3年前
APM 原理与框架
APM简介随着微服务架构的流行,一次请求往往需要涉及到多个服务,因此服务性能监控和排查就变得更复杂:不同的服务可能由不同的团队开发、甚至可能使用不同的编程语言来实现服务有可能布在了几千台服务器,横跨多个不同的数据中心因此,就需要一些可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题,这就是
Wesley13 Wesley13
3年前
23种架构模式
1、FACTORY?追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做
Stella981 Stella981
3年前
Redis缓存被污染了,该怎么办?
在一些场景下,有些数据被访问的次数非常少,甚至只会被访问一次。当这些数据服务完访问请求后,如果还继续留存在缓存中的话,就只会白白占用缓存空间。这种情况,就是缓存污染。1.如何解决缓存污染问题?要解决缓存污染,我们也能很容易想到解决方案,那就是得把不会再被访问的数据筛选出来并淘汰掉。这样就不用等到缓存被写满以后,再逐一淘汰旧
Stella981 Stella981
3年前
Redis客户端多线程跟多个连接不是一回事
先抱怨一波,大国庆节的放假前一天的下班前15分钟,通知让我加班,因为一个Redis的bug,而这个bug我在1个半小时之前刚听说了个大概,心里很不情愿;好了,说正事;问题现象:bug是这样的,两个线程同时请求Redis服务器,但是只有一个线程收到了回复,另一个线程卡死;拿到这个问题,我先是想了想到底怎么查,于是想了可能出问题的
Stella981 Stella981
3年前
Redis几个问题总结
redis持久化策略redis是一个内存数据库,但是它提供了持久化机制。即把数据永久的存储在磁盘上。我们来看看这个redis保存数据的流程(1)客户端向服务端发送写操作(数据在客户端的内存中)。(2)数据库服务端接收到写请求的数据(数据在服务端的内存中)。(3)服务端调用write这个系统调用,将数据往磁盘上写(数据在系
Stella981 Stella981
3年前
Spring Boot + Spring Cloud 构建微服务系统(七):API服务网关(Zuul)
技术背景前面我们通过Ribbon或Feign实现了微服务之间的调用和负载均衡,那我们的各种微服务又要如何提供给外部应用调用呢。当然,因为是RESTAPI接口,外部客户端直接调用各个微服务是没有问题的,但出于种种原因,这并不是一个好的选择。让客户端直接与各个微服务通讯,会有以下几个问题:客户端会多次请求不同的微服务,增加了客