架构设计
文西
过得太舒服,就是不自在的人
展开
-
互联网大厂的后端技术栈
最近公司招聘海外后端研发,所以整理一份技术栈的资料给他们,但是想来这份整理也适用于所有后端研发,所以去掉了敏感内容,把它呈现于此,本文重在概述,毕竟篇幅有限,欢迎【关注】https://www.zhihu.com/people/wenxi.zhang,后续可能把单点拓展成文,详细地一一阐述,另外笔者见识有限,毕竟也没有可能在所有大厂工作过,所以如果有疏漏可以在留言处赐教目录后端开发概述...原创 2020-02-22 10:28:04 · 3582 阅读 · 1 评论 -
Spring Cloud + Kubernetes 微服务框架原理和实践
早在半年前,公司开始推行容器化部署方案 AppOS,虽然发布界面过于极客,十分晦涩,不过仔细研究起来真的觉得十分强大,容器化推行后,计算资源(CPU、内存)的利用率可以极大提高,降低服务器数量,从而节约技术成本。恰巧,若干个朋友所在创业公司最近也在尝试做微服务、容器化。架构上摒弃 SOA 的 dubbo,加入Spring Cloud阵营;部署方案上从过去的云服务器直接部署,升级到基于Kuberne原创 2017-12-06 16:08:39 · 18855 阅读 · 4 评论 -
机器学习在饿了么竞价广告中的实践
本文介绍的内容,有真亦是假假亦真的部分,请读者自行斟酌。具体数据比较敏感,都使用模糊的描述方式代替。概述竞价广告,这个在大百度的时代就家喻户晓的词汇,相比大家也很熟悉了。顾名思义,竞价、竞价,广告位置有限,满足条件的竞争商家有很多,那么如何选择商家对商家排序。价高者应该是在没有任何数据积累的情况下,最原始的策略。这类广告的收费模型往往是按照点击次数付费(CPC),如果价高者得广告位,但是因为自身原原创 2017-12-22 16:06:07 · 2760 阅读 · 0 评论 -
基于Elastic Search的搜索广告召回方案
如果你对搜索广告,竞价排序,或者Elastic Search技术感兴趣,读读这篇文章或许多少能有所收获。作者不是计算广告领域的专家,如果作为读者的你是这个方面的专家发现本文浅薄,希望留下你宝贵的意见。因为ES版本升级很快,很多功能支持程度也伴随版本的升级而改变,本文内容基于Elastic Search 5.4.1实现。什么是搜索广告举个最常见的例子,当我们在淘宝上购物搜索时候,例如输入“猫粮”在搜原创 2017-08-09 08:23:22 · 8812 阅读 · 0 评论 -
从单一WAR到多活, 记述一个创业公司的架构演变
本故事纯属虚构,如有雷同,实属巧合程 是一个爱折腾,喜欢交朋友的程序员。某一天,程一个朋友介绍了另外一个朋友 创 给他,创说他有个点子,可以改变世界,现在就差一个程序员。程看了创的PPT,觉得还不错,反正也没妹子,平时下班回家或者周末也没事干,就答应创,做他的合伙人,给他开发网站。单一垂直架构程把他自己在大学的时候做的基于Java的考试管理系统,拿来改了改,又自学了原创 2017-07-16 14:29:22 · 12550 阅读 · 26 评论 -
深入理解Java SOA 架构Dubbo系列—— 第二回 搭建dubbo-demo环境
本文目的阶段一 基于本地调用的微服务框架阶段二 基于Zookeeper注册中心的微服务框架相关资料基于本地调用的dubbo微服务代码框架基于注册中心的dubbo微服务代码框架本文目的一旦提到某某架构,可能很多人的第一感觉就是:这个东西很复杂,很难实际操作。其实不然,只要获得对的资料,搭建自己对微服务框架并不是一件难事,不过由于历史原因,很多资料过于老旧,引用的文档也已经被废弃,所以从零搭原创 2016-09-14 13:26:16 · 7104 阅读 · 7 评论 -
深入理解Java SOA 架构Dubbo系列—— 第一回 结缘
一年半以前,我在一家创业公司从事服务器端开发工作,虽然当时公司已经拿到了6000w的A轮融资,并且App已经有超过百万的日活,开发团队已经有10几个人。但是看一眼服务器的代码,却感觉和笔者本科时候做的“学生管理”系统没什么两样。所有的服务器代码,都在一个JavaWeb工程里,然后被打包成War,使用Tomcat部署。为了应对增长的活跃用户,使用Haproxy做了负载均衡,同样的war包会在5-10原创 2016-09-10 22:35:32 · 30804 阅读 · 12 评论 -
RabbitMQ消息队列(五):Routing 消息路由[转]
上篇文章中,我们构建了一个简单的日志系统。接下来,我们将丰富它:能够使用不同的severity(严重程度)来监听不同等级的log。比如我们希望只有error的log才保存到磁盘上。1. Bindings绑定 上篇文章中我们是这么做的绑定:channel.QueueBind(queueName, EXCHANGE_NAME, ROUTING_KEY);//con转载 2017-03-18 09:08:24 · 1463 阅读 · 0 评论 -
RabbitMQ消息队列(四):分发到多Consumer(Publish/Subscribe)[转]
上篇文章中,我们把每个Message都是deliver(提供)到某个Consumer。在这篇文章中,我们将会将同一个Message deliver(提供)到多个Consumer中。这个模式也被成为 "publish / subscribe"。 这篇文章中,我们将创建一个日志系统,它包含两个部分:第一个部分是发出log(Producer),第二个部分接收到并打印(Consumer)。 我们转载 2017-03-18 09:07:00 · 1061 阅读 · 0 评论 -
RabbitMQ消息队列(三):任务分发机制[转]
在上篇文章中,我们解决了从发送端(Producer)向接收端(Consumer)发送“Hello World”的问题。在实际的应用场景中,这是远远不够的。从本篇文章开始,我们将结合更加实际的应用场景来讲解更多的高级用法。 当有Consumer需要大量的运算时,RabbitMQ Server需要一定的分发机制来balance每个Consumer的load。接下来我们分布讲解。转载 2017-03-18 08:56:07 · 1084 阅读 · 0 评论 -
RabbitMQ消息队列(二):"Hello, World"[转]
2. Sending第一个program send.cs:发送Hello world 到queue。正如我们在上篇文章提到的,你程序的第9行就是建立连接,第12行就是创建channel,第14行创建名字为hello的queue。 1 using System; 2 using RabbitMQ.Client; 3 using System.Text; 4 5转载 2017-03-18 08:54:27 · 977 阅读 · 0 评论 -
RabbitMQ消息队列(一): Detailed Introduction 详细介绍[转]
1. 历史 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现。AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP 等),但是在异步消息处理中却不是这样,只有大企业有一些商业实现(如微软的 MSMQ ,IBM 的 Websphere M转载 2017-03-18 08:44:59 · 1572 阅读 · 0 评论 -
商城系统中常见的逻辑陷阱和优化方案(1)
和金钱相关的系统,都很有挑战性,是因为在这里,一切都很严肃 ----by Someone you don't know 伴随着用户群积累,社区的壮大,还有来自投资人对变现渴望的压力,似乎最容易想到的变现途径就是“我们也卖点东西吧”,如果直接给淘宝链接,会显得逼格太低,购买别人的系统,钱不少花,最后为了适应自己的原创 2016-06-18 08:49:12 · 7840 阅读 · 1 评论