刷新
了解多人游戏下的客户端与服务器体系结构

博主头像 ## 直连 直连模式下,选择一个玩家充当服务器(房主)。如果游戏出现不同步,那么均按房主的世界来,玩家1可以作弊修改其游戏来影响其他玩家的世界 针对两个玩家来说,直连连接质量更好,延迟小 如果玩家数量很多,不同玩家间的通信则需要靠房主为中介,那通信质量与房主主机配置、网络情况有很大关系 ## 专用服 ...

软件的设计原则

博主头像 > 任何傻瓜都可以写出计算机能懂的代码,但好的程序员可以写出人类能懂的代码—–Martin Fowler 如果你是新手,你可能会问,为什么代码需要设计原则? 我想说的是肯定不是为了故作高深,存在即是合理。 如果写了一个简单的程序,你可能不需要设计原则。 如果你写了一个复杂的,但是之后再也不会改,那么 ...

DDD中的分层架构

博主头像 领域区域设计的分层架构模型其实是在不断优化和发展的,从最早的传统直肠子式的四层架构模型,逐渐演变成目前以依赖倒置为原则的新的四层架构模型,从而实现了各层对基础设施层的解耦。 DDD中的分层架构很好的应用了[关注点分离原则](http://www.cnblogs.com/LittleFeiHu/p/6 ...

如何快速画出一幅漂亮的架构图

博主头像 这篇文章总结了常用的架构图类型,可以借鉴笔者提供的模板,快速地产出符合业务需要的架构图。 为什么要画好一幅架构图?一幅漂亮的架构图既是创作者的深度结构化思考和表达,对于读者来说也更加容易理解架构所要表达的意思。 然而不擅长画图的程序员,在大脑里已经有了思路,如何快速能够产出精美的架构图呢?这篇文章帮 ...

分布式存储系统举例剖析(elasticsearch,kafka,redis-cluster)

博主头像 1. 概述 对于分布式系统,人们首先对现实中的分布式系统进行高层抽象,然后做出各种假设,发展了诸如CAP, FLP 等理论,提出了很多一致性模型,Paxos 是其中最璀璨的明珠。我们对分布式系统的时序,复制模式,一致性等基础理论特别关注。 在共识算法的基础上衍生了选举算法,并且为分布式事务提供了部分 ...

设计模式(二)工厂方法

博主头像 ##一、前言 **工厂模式常见的词:简单工厂、工厂方法、抽象工厂。简单工厂不属于23种经典设计模式,但通常将它作为学习其他工厂模式的基础。** ##二、简单工厂 ###1、定义 **定义一个工厂类,它可以根据参数的不同返回不同类型的实例,被创建的实例通常都具有共同的父类。由于简单的工厂模式中用于创建 ...

状态机的介绍和使用

博主头像 一、状态机简介 1.1 定义 我们先来给出状态机的基本定义。一句话: 状态机是有限状态自动机的简称,是现实事物运行规则抽象而成的一个数学模型。 先来解释什么是“状态”( State )。现实事物是有不同状态的,例如一个自动门,就有 open 和 closed 两种状态。我们通常所说的状态机是有限状态 ...

ES+Redis+MySQL,这个高可用架构设计太顶了

博主头像 一、背景 会员系统是一种基础系统,跟公司所有业务线的下单主流程密切相关。如果会员系统出故障,会导致用户无法下单,影响范围是全公司所有业务线。所以,会员系统必须保证高性能、高可用,提供稳定、高效的基础服务。 随着同程和艺龙两家公司的合并,越来越多的系统需要打通同程APP、艺龙APP、同程微信小程序、艺 ...

一文了解DDD分层架构演进

博主头像 1.3 分层架构演进 1.3.1 传统四层架构 将领域模型和业务逻辑分离出来,并减少对基础设施、用户界面甚至应用层逻辑的依赖,因为它们不属业务逻辑。将一个夏杂的系统分为不同的层,每层都应该具有良好的内聚性,并且只依赖于比其自身更低的层。 传统分层架构的基础设施层位于底层,持久化和消息机制便位于该层。 ...

linux环境下监控docker进程运行情况,使用钉钉群机器人报警异常服务

博主头像 背景:在linux环境下,很多服务我们都使用docker来跑,很是方便,容器服务独立,配置独立,数据独立等等,但是有个问题,就是如果某个服务异常了,暂停了,停止了,一直重启中,我们要怎么及时的知道是哪个服务,并进行处理,保证业务正常运行。 本文主要介绍使用docker服务自带的一些命令来实现一个基本 ...

【设计模式之禅】单一职责

博主头像 最近前辈推荐我读《设计模式之禅》这本书,原因是我写的代码质量实在是一言难尽,开发速度很快,但是bug数就很多了,设计原则这种知识就需要掌握 写这篇文主要是记录自己的学习以及督促自己 第一章【单一职责】 从我理解的层面来谈谈单一原则:明确每个类每个方法的任务,只做一件事,不能一法两用 这也是我最大的一 ...

Java基础实现加油站圈存机系统

博主头像 # 加油站圈存机系统 ​ 对于加油卡而言,圈存是将`用户账户`中已存入的资金划转到所持的加油卡上后方可使用。通俗一点的说法就是您在网点把钱存入主卡中,再分配到下面的副卡,由于副卡都在使用车辆的驾驶员手中,需要在加油的时候在加油站让加油站员工划一下即可,就是所谓的圈存。 #### 圈存操作流程 ​ 如 ...

互联网那些技术 | 秒杀库存解决方案

博主头像 电商系统中秒杀是一种常见的业务场景需求,其中核心设计之一就是如何扣减库存。本篇主要分享一些常见库存扣减技术方案,库存扣减设计选择并非一味追求性能更佳,更多的应该考虑根据实际情况来进行架构取舍... ...

<1···313233···50>