14 Sep 2016
提到应用网关系统,我们脑海中或多或少都会闪过一些关键词,比如统一入口、高并发、大流量、限流、防刷、实时监控等等。 Youzan Application Gateway Center(公司内部称之为Carmen系统),它就是目前有赞的应用层网关系统。每天承载着亿级别的请求量,持续的为开放平台和多个有赞App应用提供着稳定的服务。 今天我们来一起剖析下整个有赞的应用层网关,聊聊网关的当前的概况、整个网关系统的构成、遇到的一些问题的思考和解决方案。当然在进入正题之前,我们不妨先对这个网关系统提出几个问题: 网关在有赞技术生态系统中的使用场景是什么? 一个请求通过网关,它会有多少额外的性能消耗?…
Read More
28 Aug 2016
前言 有赞大数据团队内部建立机器学习系列课程, 旨在结合实际项目重新讲解一遍核心机器学习技术. 我们始终相信技术是推动业务进步的原动力. 我们把我们学习的重点记录下来, 分享给大家, 一同学习. 和普通机器学习教程不同, 除了讲解重要理论之外, 我们结合scikit-learn源码加强对知识的理解. 文章有大量的讨论, 都是我们实践过程中遇到的问题. 1. 决策树的基本概念 我们这里介绍一下一个比较简单的机器学习系统----决策树. 它的概念最容易理解, 因为人类的许多决策实际上就是一个决策树. 通常使用的分类回归树(class and regress tree)是一个二叉树。它的形式一般为: 每个方框代表一个节点.…
Read More
24 Aug 2016
1、前言 去年年终复盘,测试这边留了两个Action:一是自动化工具推广,提高开发可操作性;二是App自动化稳定性及推广。如何提高可操作性?如何推广?由此便萌生了要做一个专门的App。 今年初,我们上线了买家端入口,产品采用大量H5开发,随着产品迭代的加快以及开发测试比的增加,老的框架已经无法满足新的挑战: 开发自测 前端页面变动频繁(目前来看这点还好) App上各类组件的测试 获取测试覆盖率 无论如何,对于本篇读者我都默认你已经会了一点Android测试开发的基础。本篇不谈论做UI自动化的投入产出比,而是对Android测试技术的研究和一些想法,希望能给到测试开发们工作上的一些帮助。…
Read More
10 Aug 2016
作为一名IT工程师,网络通信编程相信都会接触到,比如Web开发的HTTP库,Java中的Netty,或者C/C++中的Libevent,Libev等第三方通信库,甚至是直接使用Socket API,但是很多程序员都仅限于使用,对于使用的方式是否合理并没有特别深的理解,比如有一股脑的使用线程池解决问题的(虽然大部分情况采用多线程方案不会有什么问题,但是编程复杂度比起单线程提升了很多,线程开的太多也会导致切换过于频繁,性能未必有太大提升),也有始终用一条线程处理所有业务的,然后上线之后经常出现各种服务响应慢等问题。 在介绍TCP的网络通信编程时,不得不提到同步,异步,阻塞,非阻塞这几个概念,C+…
Read More
10 Aug 2016
一、设计背景 Zan是基于PHP协程的网络服务框架,提供最简单的方式开发面向C10K+的高并发HTTP服务或SOA服务。 核心特性: 1. 基于 yield 实现了独立堆栈的协程 2. 类似于 Golang 的并发编程模型实现 3. 基于 swoole 提供非阻塞I/O服务 4. 连接池支持 5. 类似 Golang 的defer机制解决由于异常导致的资源未释放、…
Read More