简单地说,我们从事视频输出方面的工作——我们提供实时的视频。我们负责“NTV-Plus”和“MatchTV”频道的视频平台。该平台有30万的并发用户,每小时输出300TB的内容。这是一个很有意思的任务。那么我们是如何做到的呢?这背后都有哪些故事?这些故事都是关于项目的开发和成长,关于我们对项目的思考。总而言之,是关于如何提升项目的伸缩能力,承受更大的负载,在不宕机和不丢失关键特性的情况下为客户提供更多的功能。我们总是希望能够满足客户的需求。当然,这也涉及到我们是如何实现这一切,以及这一切是如何开始的。在最开始,我们有两台运行在Docker集群里的服务器,数据库运行在相同机器的容器里。没有专用的
2021-02-25 16:06:45 2.75MB 高负载微服务系统的诞生过程
1
我一直在用draw.io做一些和UML流程图,图表或者曲线图相关的事情。它在丰富的功能和用户的手工控制方面做出了合理的权衡。但是,接下来我会告诉你如何自动化一些无聊的鼠标点击;)DanielWoods的“Microservices:TheRightWay”演讲里其中一张幻灯片如果它不是这样的话事情也不会变得这么有趣。事实上,这里最好能有一张更清晰地展现组件之间关系和职责的图片。不然的话最终结果就是像上面看到的这样;)诀窍便是在做的时候不断审视它哪个地方不对,这样一来便不太可能做的这么糟了。在做图的时候——你也在同时给自己一个整体的感觉,它们将会怎么交互,问题域是什么,上下文,边界,等等。"光纸
1
简单来说,服务化的核心就是将传统的一站式应用根据业务拆分成一个一个的服务,而微服务在这个基础上要更彻底地去耦合(不再共享DB、KV,去掉重量级ESB),并且强调DevOps和快速演化。这就要求我们必须采用与一站式时代、泛SOA时代不同的技术栈,而SpringCloud就是其中的佼佼者。DevOps是英文Development和Operations的合体,他要求开发、测试、运维进行一体化的合作,进行更小、更频繁、更自动化的应用发布,以及围绕应用架构来构建基础设施的架构。这就要求应用充分的内聚,也方便运维和管理。这个理念与微服务理念不谋而合。接下来我们从服务化架构演进的角度来看看为什么Spring
1
软件工程发展大师级人物MartinFowler在他谈论微服务的个人主页上提到,微服务并没有一个非常明确的定义。事实上有很多种分布式系统的实现都可以被看成(或者说勉强看成)是面向微服务架构的。微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务于服务间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTfulAPI)。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言
1
之前一段时间,有听部门架构说起接下来公司要使用微服务架构来研发系统,当时没怎么在意,因为是第一次听说微服务这个名词(果然无知者无畏啊);正好赶上五一假,我自告奋勇的,接了编写微服务架构培训文档这个任务(也许因为我是文科生,文笔稍微好点)。五一假期三天,基本都是在看资料,梳理思路以及编写接下来的培训文档中度过。下面,就说说我这几天的一些收获吧;先说说资料来源吧:有架构给我的一些资料,以及自己百度和论坛、社区找来的一些资料,权当做一个总结式的简介。。。微服务架构(MicroserviceArchitecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。你可以将其
1
最近因业务需要,小拾君深入学习了一下微服务架构相关的技术,跟大家分享一下。本文并不会涉及太多晦涩难懂的技术术语以及技术细节,只是对架构设计做一个简单的梳理归纳,让大家从宏观上对微服务架构设计有一个初步的了解。本文涉及的内容以及知识点如下:1、单体架构2、单体架构的拆分3、SOA与微服务4、微服务的优缺点5、微服务的消息6、服务集成7、服务发现8、服务注册9、数据的去中心化Web应用程序发展的早期,大部分web工程是将所有的功能模块(serviceside)打包到一起并放在一个web容器中运行,很多企业的Java应用程序打包为war包。其他语言(Ruby,Python或者C++)写的程序也有类似
1
导读:随着业务流量增长,现有架构模式遇到了挑战,有赞业务从2015年开始也经历类似变化,之后,有赞迅速开始朝着业务拆分和服务化方向迈进。2017年他们在服务化的基础上更近一步,向微服务架构渐变。2014年公司所有业务(交易、商品、UMP、支付等等)都在一个单体应用中完成,使用PHP开发,满足了公司快速发展(我们姑且称为v1.0)。2015年到2016期间,随着业务流量增长,现有架构模式遇到了挑战,公司开始朝着业务拆分和服务化方向迈进。开始采用Java作为开发语言,服务化框架使用公司改进过的Dubbox,支持跨语言服务调用的Nova框架(v2.0)。2017年在服务化的基础上我们更近一步,向微服
2021-02-25 14:08:06 1MB 有赞支付微服务实践
1
采用技术,springcloud、dubbo、nacos、mybatisplus、redis、mysql、elasticsearch、swagger、lombok等,线订餐项目
2021-02-25 14:04:17 1.02MB springcloud dubbo nacos elasticsearch
1
非常好和最为全面的DDD领域建模知识总结资料并包含了简单样例代码解读,该资料包含8个部分 1. 什么是DDD? 2. 为什么要使用DDD? 3. DDD核心概念 4. DDD需求分析、设计、开发流程 5. 基于微服务架构构建旅程 6. DDD设计原则 7. DDD常用架构模式 8. 简单代码案例讲解
2021-02-25 11:03:06 19.97MB DDD 微服务架构 领域驱动建模 战略设计
本文来自简书,介绍了领域驱动的微服务架构设计工作坊的详细步骤,包括产品价值、命令风暴、聚合以及问题域和解决方案域等。领域驱动的微服务架构设计工作坊,能使软件开发团队所有成员在短时间内,迅速就新产品或遗留系统的价值、用户画像、关键场景、聚合达成一致,以便让团队快速识别软件产品的问题域和解决方案域,发现微服务之间的API接口契约,并据此拆分微服务(或模块)和团队,来开发新产品或重构遗留系统。对于不打算实践微服务的团队拆分模块也有参考意义。1)召集所有相关领域专家和开发团队成员(包括:业务分析、开发、测试、DBA等)参加工作坊,准备大白纸、6种颜色(深黄-DomainEvent、深蓝-Command
1