随笔分类 - [20]DesignAnalysis设计分析
-
项目架构
摘要:项目架构 阅读目录 前言 六边形架构 终于开始建项目了 DDD中的3个臭皮匠 CQRS(Command Query Responsibility Segregation) 结语 一、前言 上一篇我们讲了DDD的核心概念(附上链接),并且设计了我们的上下文映射图,那么接下来就准备开始立项了,本篇文章的 阅读全文
-
EvnetBus
摘要:领域事件(EvnetBus) 文档目录 本节内容: EventBus 注入 IEventBus 获取默认实例 定义事件 预定义事件 处理完异常 实体修改 触发事件 处理事件 处理基类事件 处理程序异常 处理多个事件 处理程序注册 自动 手动 反注册 在C#里,一个类可以定义自己的事件,然后其它类可以 阅读全文
-
一致性协议
摘要:一致性协议 一、前言 继续前面的学习,这篇我们来学习在分布式系统中最重要的一块,一致性协议,其中就包括了大名鼎鼎的Paxos算法。 二、2PC与3PC 在分布式系统中,每一个机器节点虽然能够明确知道自己在进行事务操作过程中的结果是成功或是失败,但是却无法直接获取到其他分布式节点的操作结果,因此,当一 阅读全文
-
Raft、Zab
摘要:Raft、Zab 引言 《分布式系统理论进阶 - Paxos》介绍了一致性协议Paxos,今天我们来学习另外两个常见的一致性协议——Raft和Zab。通过与Paxos对比,了解Raft和Zab的核心思想、加深对一致性协议的认识。 Raft Paxos偏向于理论、对如何应用到工程实践提及较少。理解的难 阅读全文
-
Net中的AOP
摘要:.Net中的AOP系列之《单元测试切面》 返回《.Net中的AOP》系列学习总目录 本篇目录 使用NUnit编写测试 编写和运行NUnit测试 切面的测试策略 Castle DynamicProxy测试 测试一个拦截器 注入依赖 PostSharp测试 对PostSharp切面进行单元测试 注入依赖 阅读全文
-
实战网络性能优化
摘要:网络性能优化实战(一) 这是一篇用于本公司定期技术交流分享的一篇整理文章。 首屏一秒渲染原则 对于APP里面的H5页面首屏渲染时间不能超过1秒,首屏不要加载太多资源。Google提出了1秒钟完成首屏页面的渲染! 服务器响应必须小于200ms 尽量少的重定向 尽量少的第一次渲染请求数 避免过多阻塞的J 阅读全文
-
支付架构
摘要:支付架构 架构 乐视 订单架构 构建一个支撑每秒十万只读系统并不复杂,无非是通过一致性哈希扩展缓存节点,水平扩展web服务器等。每秒钟数十万数据更新操作,在任何数据库上都是不可能的任务,首先需要对订单表进行分库分表。 在进行数据库操作时,一般会用ID(UID)字段,所以选择以UID进行分库分表。 分 阅读全文
-
SOA和微服务
摘要:SOA和微服务 SOA和微服务到底是什么关系? 说实话,我确实不明白SOA和微服务到底有什么本质上的区别,两者说到底都是对外提供接口的一种架构设计方式。我倒觉得微服务其实就是随着互联网的发展,复杂的平台、业务的出现,导致SOA架构向更细粒度、更通过化程度发展,就成了所谓的微服务了。以这种说法做为根据 阅读全文
-
系统容量预估
摘要:系统容量预估 前几天聊过,pv 和并发 的概念,也大概解释了 并发,带宽等指标的计算。感兴趣的朋友,可以看看我前面那篇文章:《聊一聊PV和并发》。今天再来聊一聊容量预估。 电商公司的朋友,,这样的场景是否似曾相识: 运营和产品神秘兮兮的跑过来问: 我们晚上要做搞个促销,服务器能抗住么?如果扛不住,需 阅读全文
-
ActiveMQ
摘要:ActiveMQ 今天就来说下 这个项目中使用ActiveMQ的情况, MQ: message queue, 顾名思义就是消息队列的意思. 一: 使用场景: 消息队列在大型电子商务类网站,如京东、淘宝、去哪儿等网站有这深入的应用,队列的主要作用是消除高并发访问高峰,加快网站的响应速度。在不使用消息队 阅读全文
-
分布式云平台基础服务
摘要:Net 分布式云平台基础服务建设说明概要 1) 背景 建设云平台的基础框架,用于支持各类云服务的业务的构建及发展。 2) 基础服务 根据目前对业务的理解和发展方向,总结抽象出以下几个基础服务,如图所示 3) 概要说明 基础服务的发展会根据业务的发展,调整和完善,也会不断的改进,演变及完善;当然根据目 阅读全文
-
架构设计的演变
摘要:架构设计的演变 1、无框架结构,直接调用底层API以往是底层平台(操作系统)提供API让上层APP去调用。这样的软件控制权在APP上。举例 APP调用了平台的函数 Fun1,那么平台要对Fun1进行维护不敢随意改变这个函数,系统的更新成本大,上层APP越多,维护成本越大,导致到平台被局限。 2、单层 阅读全文
-
项目设计&重构&性能优化
摘要:漫谈项目设计&重构&性能优化 重构的好处:重构能够改进软件设计,随着项目需求的变更,项目体积的变大早已与最初的设计大相径庭,代码结构变得凌乱、复杂,如果不进行重构,则很难添加新的功能。 1、使项目代码更容易理解很多情况下是由于项目赶进度和不注重质量导致的。那么通过重构可以帮助代码维持自己该有的形态。 阅读全文
-
后台管理UI
摘要:后台管理UI 目录 一、EasyUI 二、DWZ JUI 三、HUI 四、BUI 五、Ace Admin 六、Metronic 七、H+ UI 八、Admin LTE 九、INSPINIA 十、LigerUI 十一、其它UI 十二、总结 目录 一、EasyUI 二、DWZ JUI 三、HUI 四、B 阅读全文
-
备份容灾
摘要:备份容灾 在分布式存储系统中,系统可用性是最重要的指标之一,需要保证在机器发生故障时,系统可用性不受影响,为了做到这点,数据就需要保存多个副本,并且多个副本要分布在不同的机器上,只要多个副本的数据是一致的,在机器故障引起某些副本失效时,其它副本仍然能提供服务。本文主要介绍数据备份的方式,以及如何保证 阅读全文
-
缓存模块设计
摘要:NET 缓存模块设计 上一篇谈了我对缓存的概念,框架上的理解和看法,这篇承接上篇讲讲我自己的缓存模块设计实践。 基本的缓存模块设计 最基础的缓存模块一定有一个统一的CacheHelper,如下: 然后业务层是这样调用的 上面的代码没什么错误,但是实际运用的时候就产生疑问了,因为我一直强调缓存要保存" 阅读全文
-
Reactor模型
摘要:Reactor模型 原文地址:http://www.ivaneye.com/2016/07/23/iomodel.html 无处不在的C/S架构 在这个充斥着云的时代,我们使用的软件可以说99%都是C/S架构的! 你发邮件用的Outlook,Foxmail等 你看视频用的优酷,土豆等 你写文档用的O 阅读全文
-
WeUI
摘要:从WeUI学习到的知识点 WeUI是微信Web服务开发的UI套件, 目前包含12个模块 (Button, Cell, Toast, Dialog, Progress, Msg, Article, ActionSheet, Icons, Panel, Tab, SearchBar). Demo页面: 阅读全文
-
去中心化概念模型与架构设计
摘要:去中心化概念模型与架构设计 今天打算写写关于 IM 去中心化涉及的架构模型变化和设计思路,去中心化的概念就是说用户的访问不是集中在一个数据中心,这里的去中心是针对数据中心而言的。 站在这个角度而言,实际上并非所有的业务都能做去中心化设计,对于一致性要求越高的业务去中心化越难做。比如电商领域的库存就是 阅读全文
-
设计和应用分布式调用跟踪系统
摘要:分布式追踪系统dapper 分布式调用跟踪系统的设计和应用 >>为什么需要分布式调用跟踪系统 随着分布式服务架构的流行,特别是微服务等设计理念在系统中的应用,业务的调用链越来越复杂, 可以看到,随着服务的拆分,系统的模块变得越来越多,不同的模块可能由不同的团队维护, 一个请求可能会涉及到几十个服务的 阅读全文