spring-cloud服务网关中的Timeout设置
大家在初次使用spring-cloud的gateway的时候,肯定会被里面各种的Timeout搞得晕头转向。hytrix有设置,ribbon也有。我们一开始也是乱设一桶,Github上各种项目里也没几个设置正确的。对Timeout的研究源于一次log中的warningThe Hystrix timeout of 60000 ms for the command “foo” is set lower...
View ArticleService Mesh 及其主流开源实现解析
什么是 Service meshService Mesh 直译过来是 服务网格,目的是解决系统架构微服务化后的服务间通信和治理问题。服务网格由 sidecar 节点组成。在介绍 service mesh 之前,我们先来看一下什么是 sidecar.Sidecar 在软件系统架构中特指...
View Article程序员练级攻略(2018) 与我的专栏
写极客时间8个月了,我的专栏现在有一定的积累了,今天想自己推荐一下。因为最新的系列《程序员练级攻略(2018)版》正在连载中,而且文章积累量到了我也有比较足的自信向大家推荐我的这个专栏了。推荐就从最新的这一系统的文章开始。2011年,我在 CoolShell上发表了 《...
View Article在 Linux 上用 DNS 实现简单的负载均衡
DNS 轮询将多个服务器映射到同一个主机名,并没有为这里展示的魔法做更多的工作。如果你的后端服务器是由多台服务器构成的,比如集群化或者镜像的 Web 或者文件服务器,通过负载均衡器提供了单一的入口点。业务繁忙的大型电商在高端负载均衡器上花费了大量的资金,用它来执行各种各样的任务:代理、缓存、状况检查、SSL...
View Article闲聊 Flutter
移动端开发从08年开始就有个大家前赴后继不断追求的目标:跨平台,15年时 nwind 有篇 雄文,详细调研了跨平台各流派,其中最后的 Dart 栏可以看到现在 Flutter 的雏形。可以看出来,Flutter 是从精简浏览器的思路演化过来的,实际上 web 与 Flutter 从底层看是一致的,web 是提供了一层平台无关的独立引擎,可以看成平台只提供了画布,所有的UI组件、框架、事件处理都是...
View ArticleLinux 查看进程消耗内存情况总结
在Linux中,有很多命令或工具查看内存使用情况,今天我们来看看如何查看进程消耗、占用的内存情况,Linux的内存管理和相关概念要比Windows复杂一些。在此之前,我们需要了解一下Linux系统下面有关内存的专用名词和专业术语概念: 物理内存和虚拟内存 物理内存:就是系统硬件提供的内存大小,是真正的内存,一般叫做内存条。也叫随机存取存储器(random access...
View Article图像主题色提取算法
许多从自然场景中拍摄的图像,其色彩分布上会给人一种和谐、一致的感觉;反过来,在许多界面设计应用中,我们也希望选择的颜色可以达到这样的效果,但对一般人来说却并不那么容易,这属于色彩心理学的范畴(当然不是指某些伪神棍所谓的那种)。从彩色图像中提取其中的主题颜色,不仅可以用于色彩设计(参考网站: Design...
View ArticleJava 内存溢出排查
Java OOM 毫无疑问是开发人员常见并且及其痛恨的问题,但是任何服务的开发都没法避免 OOM。 因此,OOM 的排查及定位是每个 Java 工程师都必备的技能。所遇到的问题在使用 scala 开发的一个 web 服务,在用户使用中,经常出现: java.lang.OutOfMemoryError: Java heap space 。而且还束手无策,每次都只能重启服务解决。准备服务使用...
View ArticleRedis 的 KEYS 命令引起 RDS 数据库雪崩,宕机 2 次,造成几百万损失
最近的互联网线上事故发生比较频繁, 9月19日网上爆料出顺丰近期发生了一起线上删库事件,在这里就不介绍了。在这里讲述一下最近发生在我公司的事故,以及如何避免,并且如何处理优化。 该宕机的直接原因是使用 Redis 的 keys *...
View ArticleRedis基础、高级特性与性能调优
本文将从Redis的基本特性入手,通过讲述Redis的数据结构和主要命令对Redis的基本能力进行直观介绍。之后概览Redis提供的高级能力,并在部署、维护、性能调优等多个方面进行更深入的介绍和指导。...
View Article使用Thread Pool不当引发的死锁
简介多线程锁定同一资源会造成死锁线程池中的任务使用当前线程池也可能出现死锁RxJava 或 Reactor 等现代流行库也可能出现死锁死锁是两个或多个线程互相等待对方所拥有的资源的情形。举个例子,线程 A 等待 lock1,lock1 当前由线程 B 锁住,然而线程 B 也在等待由线程 A 锁住的 lock2。最坏情况下,应用程序将无限期冻结。让我给你看个具体例子。假设这里有个...
View ArticleAI产品再出发:给产品和CEO们的建议!
基于用户画像的商品和服务能够提升平台服务体验并促进服务的个性化、精准化实现,本篇文章为大家详细地讲解了如何运用AI技术构建用户画像。在帮独角兽企业做产品咨询顾问工作的过程中,多有CEO说:“诗路我要买数据,哪里有卖数据的,我想用我2千万用户的手机号去碰撞数据”。我常问您要用手机号碰撞数据,碰撞出来的用户偏好还是第三方的,也不是您平台的用户行为,更不能在你的场景业务形成交易落地。然后CEO们会追问诗路...
View Article微软变了!招程序员的流程完全改了
【伯乐在线导读】:在微软新 CEO 萨蒂亚·纳德拉的领导下,微软试图改革公司文化,让整个公司朝着同一个方向发展。为此,微软在 2016 年开始研究「替代面试框架(Alternative Interview...
View Article用户端智能的应用实践
去年团队在用户端上进行了一些简单的智能应用探索实践,这里记录梳理下。现在很多“智能”,是普通推荐算法借深度学习的风包装的,核心也就是决策树/随机森林/SVM这些90年代已经提出的算法,我们这里的实践也是这样。在用户端上,智能应用最广泛的目前两个点:个性化和多媒体识别,我们主要实践是在个性化上,从原来所有用户都用同一套或几套规则,换成根据推荐算法给每个用户制定符合他个性化特征的不同规则。实际上简单的个...
View Article十大常用软件架构模式简介
大型的企业级系统是如何设计的呢?想必大家都曾经有过这样的疑惑。大型软件开发前,我们必须选择一种合适的架构,它既要提供我们想要的功能,质量也要过关。因此,在应用不同的架构之前,我们有必要熟悉一下这些架构。什么是架构模式?根据维基百科,针对软件架构中给定上下文的常见问题,架构模式是一种通用的、可复用的解决方案。它与软件设计模式相似,但范围更广。在这篇文章中,我将简要地说明一下10种常用的架构模式,以及它...
View Article四大模块,带你了解阿里大数据产品技术架构
本文笔者将从数据采集层、数据计算层、数据服务层、数据应用层四大层次来带大家了解阿里大数据的产品技术架构。2014年,马云提出:“人类正从IT时代走向DT时代”。如果说在IT时代是以自我控制、自我管理为主,那么到了DT (Data...
View ArticleHTTPS劫持研究
这篇文章描述了我们对哈萨克斯坦政府实施的电信级HTTPS劫持的分析。哈萨克斯坦政府最近开始使用一个假的根证书颁发机构,对包括Facebook,Twitter和Google等网站在内的HTTPS连接进行中间人(MitM)攻击,在此文中,我们给出了还在进行中的研究的初步结果,以及哈萨克劫持系统中新的技术细节。情况提要...
View ArticleHTTP的前世今生
HTTP (Hypertext transfer protocol) 翻译成中文是超文本传输协议,是互联网上重要的一个协议,由欧洲核子研究委员会CERN的英国工程师 Tim Berners-Lee v发明的,同时,他也是WWW的发明人,最初的主要是用于传递通过HTML封装过的数据。在1991年发布了HTTP...
View Article