Arganzheng's Blog

stay hungry, stay foolish

Design Pattern

设计模式分享 开发模式 (OOP) 面向对象编程 (DDD) 领域驱动开发 (TDD) 测试驱动开发 设计模式的8个基本原则 单一职责原则(Single Responsibility Principle): 一个类只负责一个功能领域中的相应职责(只做一类事情) 里氏代换原则(Lisko...

log4j2如何动态的创建logger和appender

背景 平台现在通过页面通过 SparkLauncher 提交Spark训练任务,随着而来的一个问题就是任务出错之后不知道哪里出问题,而日志在提交节点上,并且所有的任务混在一起打印日志,很不方便查看。能不能把 Spark 任务的日志分别打印在自己的日志文件呢? 解决方案 Spark2.x 有 redirectToLog 方法可以把任务日志重定向,但是 Spark1.x 没有提供这个功能,...

Spark任务读取HDFS文件报Filesystem closed异常

现象 今天早上过来发现昨天晚上浏览器搜索样本生成任务出问题了。日志显示: [INFO ] 2018-10-18 22:03:41.443 [launcher-proc-1] spark-sample-generate - at com.argan.internt.ai.platform.datadriver.sample.plugin.DefaultPluginService...

配置Nginx支持CORS的一个『坑』

前几天遇到前端跨域问题,之前也整理过这方面的问题:JS跨域问题及解决方案。第一种方案 Cross Origin Resource Sharing(CORS) 是目前主流的解决方案。 http { ... upstream scheduler { server 10.21.8.66:8080; } server { lis...

nginx proxy_pass 的一个『坑』

前几天在配置线上的 nginx 的时候,遇到一个诡异的问题,还搞了蛮久,记录一下。 首先配置入口:nginx.conf #user nobody; worker_processes 4; error_log /home/work/nginx/logs/error.log; pid /home/work/nginx/logs/nginx.pid; #Specifi...

maven如何deploy到多个repositories

背景 公司的私服部署在测试环境,跟线上的环境在网络上是物理隔离的。导致在线上无法使用 maven 编译,因为拉取不到测试环境的私服。只能在线下进行打包,然后通过终端上传到线上机器,问题是打出来的包往往有几十上百 M,上传速度超级慢,还容易断开出错。 解决方案 因为网络是物理隔离的,所以只能在线上部署一个maven私服了。部署过程很简单,这里不赘述。但是部署完成之后有一个问题,就是需要将...

关于编码规范的一些建议

1、为什么要编码规范 无规矩不成方圆,无规范不能协作。 在百度,每次代码提交都强制编码规范检查,不通过则不允许提交。 提升编码质量 提升代码的可读性、可测性、可维护性 提升团队开发协作的效率 个人品牌 2、业界大公司的编码规范 谷歌 java编码规范中文版本 java编码规范英文版本: Google Java Style Guide Java编码...

AI基础架构:从大数据到深度学习

背景 这个分享来自于创新工场人工智能工程院副院长王咏刚给创新工场暑期深度学习训练营 DeeCamp的培训课程的第一节课。(ps:这个训练营太火了,只招生 36 名,总共有 1000 多计算机专业同学报名,同学们来自 CMU、北大、清华、交大等最好的大学),后续会给大家讲《TensorFlow 实战》、《自然语言处理》、《机器视觉》、《无人驾驶实战》等框架和算法方向的课。 课件分享:AI ...

关于微服务架构

我 和 微服务架构 我算是完整的经历了服务端架构发展的整个历程。 09年进入阿里巴巴的时候,那时候整个阿里巴巴就是一个典型的单体应用,整个国际站业务,部署上就三个巨大的单体应用: MyAlibaba:供应商发布编辑管理商品的地方 BOPS: 运营人员审核商品(机器审核+人工审核的一条工作流)、管理类目和属性的运营管理后台。 Aisn: 海外买家浏览搜索商品的地方 数据...

Redis集群学习

Redis3.0版本加入了cluster功能,解决了Redis单点无法横向扩展的问题。 分布式系统要解决的不外乎以下两个问题: sharding/partition 以提高系统的吞吐率 replication 以提供系统的高可用 然后因为sharding了,所以就有一个 哈希或者路由 的事情要处理。引入的问题包括: 数据分布方式:取模, 范围映射,一致性哈希, et...