架构设计
文章平均质量分 87
yaocoder
做一个深懂业务的科技人,搭建业务与科技的桥梁!
展开
-
实践总结:【用户画像运营分析系统】的工程实践
用户画像是根据用户特征、业务场景和用户行为等信息,构建一个标签化的用户模型,简单来说就是用户信息的标签化。例如:通过收集用户的人口属性、行为属性、消费习惯、偏好特征等多个维度的数据,进而对用户或者产品特征属性进行刻画,并对特征进行分析、统计,挖掘潜在价值信息,抽象出用户的信息全貌。原创 2023-02-12 17:27:02 · 305 阅读 · 0 评论 -
云原生技术系列:Service Mesh 的实现—— Istio
Istio是ServiceMesh实现中最成熟也最受欢迎的项目,由Google、IBM和Lyft开源。Istio是一个用于服务治理的开放平台。Istio是一个ServiceMesh形态的用于服务治理的开放平台。Istio是一个与Kubernetes紧密结合的适用于云原生场景的ServiceMesh形态的用于服务治理的开放平台。......原创 2022-07-27 20:03:23 · 1047 阅读 · 0 评论 -
云原生技术系列:Service Mesh(服务网格)
在服务治理组件的功能升级、bug修复过程中,业务系统需要升级依赖的服务组件包,然而升级过程中还可能存在各种版本冲突,另外灰度验证过程也可能引入新的bug,业务开发人员升级组件版本痛苦不堪,抵触情绪很大,往往一个组件包想要全覆盖升级,需要耗费相当长的时间,交付效率极其低下。然而,服务框架的SDK通常实现都比较“重”,需要实现服务注册与发现、服务路由、负载均衡、服务鉴权、服务降级、服务限流、网络传输等功能,复杂度大、成本投入高、稳定健壮性隐患多。服务网格可以使服务与服务之间的通信更加流畅、可靠和安全。.....原创 2022-07-25 19:56:29 · 2386 阅读 · 0 评论 -
云原生技术系列:Kubernetes
Kubernetes是Google开源的一个容器编排引擎,提供了⾯向应⽤的容器集群部署和管理。Kubernetes的⽬标旨在消除编排物理/虚拟计算,⽹络和存储基础设施的负担,并使应⽤程序运营商和开发⼈员完全将重点放在以容器为中⼼的原语上进⾏⾃助运营。Kubernetes也提供稳定、兼容的基础(平台),⽤于构建定制化的工作流和更⾼级的⾃动化任务。服务发现和负载均衡Kubernetes可以使用DNS或IP地址来暴露容器,并且使用负载均衡机制平衡网络流量。存储编排自动部署和回滚容器资源的自动调度自我修复。....原创 2022-07-24 22:29:39 · 1176 阅读 · 0 评论 -
云原生技术系列:容器 | Docker
容器是一种相对于虚拟机来说更加轻量的虚拟化技术,能为我们提供一种可移植、可重用的方式来打包、分发和运行应用程序。容器的基本思想就是将需要执行的所有软件打包到一个可执行程序包。例如,将一个Java虚拟机、Tomcat服务器以及应用程序本身打包进一个容器镜像。用户可以在基础设施环境中使用这个容器镜像启动容器并运行应用程序,还可以将以容器化运行的应用程序与基础设施环境隔离。容器具有高度可移植性,用户可以轻松地在开发环境、测试环境、预发布环境或生产环境中运行相同的容器。......原创 2022-07-21 21:19:26 · 897 阅读 · 0 评论 -
云原生技术系列:微服务 | DDD(领域驱动设计)| 微服务技术框架
微服务是一种分布式软件架构。使用微服务架构可以将一个大型应用程序按照业务或功能模块拆分成多个独立自治的微服务,每个微服务仅实现一种业务或功能,具有明确的边界。为了让各个微服务之间协同工作,它们之间需要通过互相调用或REST等形式的标准接口进行通信和数据交换,是一种松耦合的交互形式。...原创 2022-07-20 21:31:09 · 3603 阅读 · 2 评论 -
《‘高并发&高性能&高可用服务程序’编写及运维》指南
记得在远2012年时,因为向往着能写高并发程序,自己选择了跳槽。开始时是写支撑数万设备并发的程序(我们物联网设备业务需要保持长连接),随着企业的发展,逐渐增长到十万、数十万设备,当时还讲究挖掘单机性能,所以紧着各种线程模型、I/O模型……不断地挖掘潜能,实在挖不动了就开始着手用分布式方案的解决。比如当时开源的一个高性能服务模型:https://github.com/yaocoder/HPNetServer 后来,有幸在这家集团公司开启了内部创业生涯,主导创立运营了一个服务大百万用户的互联网平台级产品..原创 2022-07-11 21:04:40 · 435 阅读 · 0 评论 -
《微服务设计》读书笔记
导言: 《微服务设计》是一本非常出彩的技术书籍,从可读性、实战技术干货方面都非常优秀,甚至让我想起了曾经读《深入理解计算机系统》《UNIX编程艺术》这类经典好书时的感觉。以下是我做的一些概括性的读书笔记,非常希望大家能阅读全书,挖掘更多知识。......原创 2022-07-09 14:45:00 · 219 阅读 · 1 评论 -
分布式系统实战
导言:记得在自己大学毕业的2006年到之后近五年的工作里,源于工作经历和有限的视野,几乎对“分布式系统”没有任何概念。当然,彼时的互联网/移动互联网还未对我们的生活呈覆盖颠覆之势,很多网络应用采用传统的集中式服务便可应对。但是随着互联网大潮的风起云涌,出现了越来越多的细分大流量网站及应用,网民体量也如滚落雪球一般越来越大,这种情况下分布式的概念几乎在技术圈“家喻户晓”,也成了我们追逐的另一颗时代“银弹”。...原创 2022-07-09 14:15:00 · 249 阅读 · 0 评论 -
我的“技术架构”之旅
导言:很久没写过涉及技术的文章了,因为进行职业转型后对技术有种很纠结的心态。热爱——每每看到五颜六色的代码窗口就会心里发酸,想起曾经那是生活中的一份灿烂心情;有些不自信——这么久离开技术会不会已经落后生疏(虽然一直没有脱离技术的学习与参与,但是少了一线写大量代码的实践)。今天恰好去参加AWS(亚马逊云服务)的一个区域讨论会,一位亚马逊的架构师在为大家讲解AWS云服务及一些案例的架构设计,很多熟悉的概念,还有这位架构师的谦逊和真实,一切是那么亲切。所以心血来潮,想回顾一下自己做架构的职业之旅。......原创 2022-07-09 14:00:00 · 115 阅读 · 0 评论 -
HTTP事务的延迟—TCP的影响
导读:最近看完了大部头著作《HTTP权威指南》,对于此类指南类、手册类图书,往往让我们联想到的就是枯燥无味的使用讲解、技术指标讲解......使人头大。但是这本书却让我觉得读起来很“清新”,一方面作者用了浅显易懂的语言和大量的图示让我们很容易知所以然,另一方面应该是我一直以来对网络编程的兴趣和此书的内容有很大的契合点,今天要讲的内容也是与自己的兴趣有关的HTTP协议中有关TCP的部分,是从书中第四原创 2015-04-05 21:09:55 · 1259 阅读 · 0 评论 -
IM系统架构设计之浅见
背景:除去大名鼎鼎的QQ这款即时聊天工具,还有许多细分行业的IM,比如淘宝阿里旺旺、网易泡泡、YY语音......。恰巧公司产品也要开发一款基于我们自己行业的类IM系统,很有幸我担当了这个产品的架构师,核心代码编写、实现者。下面我近年来从技术上我对IM系统(即时消息的传输,不包括语音,视频,文件的传输)的理解和设计分享出来,浅薄之见,望大家别见笑,欢迎给出批评意见。一.网络传输协议的选原创 2014-05-15 19:16:59 · 2020 阅读 · 0 评论 -
从master-worker模型看团队管理
先讲一个场景:“团队负责人接到一个新项目,他会把项目进行需求细化,功能细化,然后他会分配给不同的团队成员完成”。 在这个场景中,团队负责人就是master,团队成员就是worker,至于这样做的好处,不用说大家也明白,如果团队负责人一个人干,估么着他要么累死,要么任务完不成被领导骂死。 master-worker模型的最大作用就是提高处理效率,特别是在多核cpu上,多worker的原创 2013-11-05 16:32:42 · 785 阅读 · 0 评论 -
怎样去平衡C++项目的设计?
前些日子,再看了看一个自己曾经编写过的项目的源码。此前,由于处理核心的增加,实践中发现的问题不断地参入代码,某些模块的代码已经相对混杂,一直想找时间重构但是苦于没有时间。于是,由另一个同事重构后交至我手中。从大局上看代码,确实做到了高度的解耦,也引入了设计模式的一些概念,代码结构比较清晰。可是仔细跟踪分析后才发现,和我重构的思路不太一样,至少要比我想到的要多两层,而且其中复杂数据结构的大量应用,导原创 2013-11-05 16:30:52 · 614 阅读 · 0 评论 -
多线程服务器的适用场合
http://www.cnblogs.com/Solstice/archive/2010/02/28/why_multithreading.html陈硕 (giantchen_AT_gmail)Blog.csdn.net/Solstice2010 Feb 28 这篇文章原本是前一篇博客《多线程服务器的常用编程模型》(以下简称《常用模型》)计划中的一节,今天终于写完了。 “服务器开发”包罗万象,转载 2013-11-05 16:31:28 · 603 阅读 · 0 评论 -
snort源码的详细分析
前段时间由于工作关系,对snort入侵检测系统进行了仔细的研究,起初基本都是通过网上找的资料,对于snort系统的应用,原理,架构,配置,源码机构网上都可以找到比较详细的资料,我自己用vs2010编译了snort的源码,并且进行了调试跟踪,现在把代码更详细的介绍与大家分享,如果其中有什么错误欢迎大家指正!650) this.width=650;" onclick="window.open("htt原创 2013-11-05 16:30:13 · 1964 阅读 · 0 评论 -
浅谈几种序列化协议
工作中用过几种知名的序列化协议,说说自己的感受吧,先独立讲各自的概念,然后比较下他们的优缺点。JSON(Javascript Object Notation) 官方网站是这样叙述的:一种轻量级的资料交换语言。易于人阅读和编写。同时也易于机器解析和生成。json有两种结构:1.名称/值,例如:{ "name" : "xiaoming", "age" : 12}你也可以再嵌套一层,原创 2013-11-05 16:30:54 · 572 阅读 · 0 评论 -
谈谈UML使用
如果有不了解UML的,请先看一下IBM developerworks这篇讲解UML的简短但是高质量的文章http://www.ibm.com/developerworks/cn/rational/r-uml/ 在之前的工作中,我了解UML,会简单使用UML,但是有一种观点,UML只是一个建模方法,目的主要是为了向人们阐述清楚工程的设计目的,工程的基本流程......,应用的场合也只在面向对象的程原创 2013-11-05 16:31:19 · 642 阅读 · 0 评论 -
可伸缩系统的设计模式(译)
Ricky Ho在他的博客中分享了该文章,该文章是一个简单的概括分享,详细的可以参见他博客的其它详细文章。下面主要是意译。1、Load Balancer:负载均衡 – 由分发者来决定哪个工作者处理下一个请求,这种决定可以基于不同的策略。“In this model, there is a dispatcher that determines which worker instance will h转载 2013-11-05 16:33:10 · 776 阅读 · 0 评论 -
三读《UNIX编程艺术》——UNIX哲学
如果在我目前的职业生涯中要选出一本对我影响最大的书籍,我一定会选择ESR的《UNIX编程艺术》。第一次读此书时资历尚浅,更多的是当做一本课外读物来看,但是随着职业中接触了更多不同的操作系统,完成了更多项目产品的设计、架构、实现,对书中所讲内容产生了更大的共鸣。在第三次读此书之际,把书中很多有价值的思想提取出来给自己一个总结,希望也能给大家带来一次分享。本书关注的重点:不止于方法,更重乎原创 2014-01-10 08:34:08 · 1180 阅读 · 1 评论 -
构建高性能服务的考量
做一款互联网产品,人们往往立马就想到了海量用户、海量数据、高并发、高性能。所以起初做架构设计时就把性能提到了一个不得不做的地位。我个人是很反对这种“未雨绸缪”的方式的,因为对于一个新应用来说获取一个互联网用户的成本并不小,而且“海量”不是短期内就会面临的。所以请建议您最好先在基于投入产出比的考量下对快速实现 OR 性能重要程度做出权衡后再做考虑,最好先实现应用再做优化,过早优化是万恶之源这句话不是原创 2014-01-14 19:18:09 · 1018 阅读 · 0 评论 -
Web推送技术研究
Web推送技术研究背景:我们研发的平台已经完成了支持PC端和移动端的针对大量用户的实时消息推送体系,采用原生的socket建立长连接的技术来实现。当前阶段要开发相应支持web端的实时消息推送体系,如何实现摆在了我的面前,以下是我考察和论证的结果,和大家一起分享下,也欢迎大家指正我其中的错误或考虑不周之处。有哪些可以实现web消息推送的技术:我们了解到传统的web服务都是客户原创 2014-01-24 14:27:05 · 805 阅读 · 0 评论 -
jspf插件框架
简介:jspf (Java Simple Plugin Framework) 是一个插件框架,用于减少小型项目的的开发时间,增加代码的可维护性。他完全隐藏了组件的详细实现,只用到他们的接口。加载组件所需要的代码也很少,便于编写。jspf框架完全基于java注释实现@PluginImplementation,@InjectPlugin,@PluginLoaded,@Timer和@原创 2013-11-05 16:30:18 · 1221 阅读 · 0 评论