随笔分类 - [20]DesignAnalysis设计分析
-
服务容错处理库Polly使用
摘要:服务容错处理库Polly使用 在进入SOA之后,我们的代码从本地方法调用变成了跨机器的通信。任何一个新技术的引入都会为我们解决特定的问题,都会带来一些新的问题。比如网络故障、依赖服务崩溃、超时、服务器内存与CPU等其它问题。正是因为这些问题无法避免,所以我们在进行系统设计、特别是进行分布式系统设计的 阅读全文
-
Paxos算法
摘要:Paxos算法 从分布式系统的CAP理论出发,关注分布式一致性,以及区块链的共识问题及解决。 区块链首先是一个大规模分布式系统,共识问题本质就是分布式系统的一致性问题,但是又有很大的不同。 工程开发中,认为系统中存在故障(fault),但不存在恶意(corrupt)节点,而区块链,特别是公开链是落地 阅读全文
-
NET Core Web API下事件驱动型架构CQRS架构中聚合与聚合根的实现
摘要:NET Core Web API下事件驱动型架构在前面两篇文章中,我详细介绍了基本事件系统的实现,包括事件派发和订阅、通过事件处理器执行上下文来解决对象生命周期问题,以及一个基于RabbitMQ的事件总线的实现。接下来对于事件驱动型架构的讨论,就需要结合一个实际的架构案例来进行分析。在领域驱动设计的 阅读全文
-
企业级应用-消息中间件
摘要:消息中间件企业级应用 众所周知,消息中间件是大型分布式系统中不可或缺的重要组件。它使用简单,却解决了不少难题,比如异步处理,系统藕合,流量削锋,分布式事务管理等。实现了一个高性能,高可用,高扩展的系统。本章通过介绍消息中间件的应用场景,消息中间件的传输模式,ActiveMQ快速入门 三个方面来对消息 阅读全文
-
EventBus事件总线
摘要:EventBus事件总线的使用-自己实现事件总线 在C#中,我们可以在一个类中定义自己的事件,而其他的类可以订阅该事件,当某些事情发生时,可以通知到该类。这对于桌面应用或者独立的windows服务来说是非常有用的。但对于一个web应用来说是有点问题的,因为对象都是在web请求中创建的,而且这些对象生 阅读全文
-
微服务
摘要:微服务 本文希望从技术角度来探讨下微服务,因此,不会过多地谈及如何根据业务进行微服务划分,更多是介绍微服务的相关技术,微服务的业务划分方法可参考“领域驱动设计“相关方法论。 微服务的两个程度 一、服务化 复杂的单体架构会有以下的挑战: (1)项目启动初期,需要寻找一个能尽量涵盖所有需求的开发语言,技 阅读全文
-
应用监控Metrics
摘要:应用监控Metrics 一、Metrics简介 应用监控系统Metrics由Metrics.NET+InfluxDB+Grafana组合而成,通过客户端Metrics.NET在业务代码中埋点,Metrics.NET会把收集到数据存储在InfluxDB数据库中,然后通过Grafana来展示监控数据。其 阅读全文
-
RabbitMQ的事件总线
摘要:RabbitMQ的事件总线 在上文中,我们讨论了事件处理器中对象生命周期的问题,在进入新的讨论之前,首先让我们总结一下,我们已经实现了哪些内容。下面的类图描述了我们已经实现的组件及其之间的关系,貌似系统已经变得越来越复杂了。 其中绿色的部分就是上文中新实现的部分,包括一个简单的Event Store 阅读全文
-
链路设计与实践
摘要:全链路设计与实践 背景 随着公司业务的高速发展,公司服务之间的调用关系愈加复杂,如何理清并跟踪它们之间的调用关系就显的比较关键。线上每一个请求会经过多个业务系统,并产生对各种缓存或者 DB 的访问,但是这些分散的数据对于问题排查,或者流程优化提供的帮助有限。在这样复杂的业务场景下,业务流会经过很多个 阅读全文
-
Service Fabric eShop On Containers
摘要:Service Fabric承载eShop On Containers 从模块化到微服务化 从Pet Shop 到eShop on Container都是Microsoft在技术演进的路径上给开发者展示.Net的开发能力和架构能力的Sample工程,Petshop的时候更多的是展现应用的分层架构,设 阅读全文
-
API网关
摘要:API网关的作用 在这篇文章中将我们一起来探讨当前的API网关的作用。 一、API网关的用处 API网关我的分析中会用到以下三种场景。 二、API网关在企业整体架构中的地位 一个企业随着信息系统复杂度的提高,必然出现外部合作伙伴应用、企业自身的公网应用、企业内网应用等,在架构上应该将这三种应用区别开 阅读全文
-
数据交换平台架构
摘要:数据交换平台架构 一、数据交换平台定义(百度百科) 数据交换平台是指将分散建设的若干应用信息系统进行整合,通过计算机网络构建的信息交换平台,它使若干个应用子系统进行信息/数据的传输及共享,提高信息资源的利用率,成为进行信息化建设的基本目标,保证分布异构系统之间互联互通,建立中心数据库,完成数据的抽取 阅读全文
-
缓存穿透、缓存并发、缓存失效
摘要:缓存穿透、缓存并发、缓存失效 我们在用缓存的时候,不管是Redis或者Memcached,基本上会通用遇到以下三个问题: 缓存穿透 缓存并发 缓存失效 一、缓存穿透 注:上面三个图会有什么问题呢? 我们在项目中使用缓存通常都是先检查缓存中是否存在,如果存在直接返回缓存内容,如果不存在就直接查询数据库 阅读全文
-
台管理系统
摘要:xxx金融后台管理系统详细版:包括本地开发调试详细步骤 效果演示地址, github地址: demo演示: 1、About 此项目是 vue2.0 + element-ui + node+mongodb 构建的后台管理系统,所有的数据都是从服务器实时获取的真实数据,具有真实的注册、登录、数据显示、新 阅读全文
-
DDD
摘要:DDD https://mp.weixin.qq.com/s/VghqEc5FLTs5PbOHgyNJow 一场大戏落幕,首届DDD中国峰会如大会主题色一般的红。或许在12月9日这一天,全中国的DDD粉丝大约有一半都汇聚在了国家会议中心。听起来是幸,其实是不幸,因为DDD在中国的人群基数实在是太少了 阅读全文
-
API Gateway微服务
摘要:微服务中的 API 网关(API Gateway) 前言 又是很久没写博客了,最近一段时间换了新工作,比较忙,所以没有抽出来太多的时间写给关注我的粉丝写一些干货了,就有人问我怎么最近没有更新博客了,在这里给大家抱歉。 那么,在本篇文章中,我们就一起来探讨一下 API 网关在整个微服务分布式架构中的一 阅读全文
-
客服系统
摘要:客服系统 假如网站需要提供客服功能,如果只是简单的聊天咨询可以考虑营销QQ、百度商桥等(目前大部分网站采用此方式,包括一些知名行业电商);如果需要更精细化的管理,比如客服人员安排、各项数据统计汇总,那么需要对接专业的第三方客服平台,比如网易七鱼,当然价格不菲;然而若是如京东本身就是一个平台,需要为每 阅读全文
-
ERP系统架构
摘要:分布式、服务化的ERP系统架构设计 ERP之痛 曾几何时,我混迹于电商、珠宝行业4年多,为这两个行业开发过两套大型业务系统(ERP)。作为一个ERP系统,系统主要功能模块无非是订单管理、商品管理、生产采购、仓库管理、物流管理、财务管理等等。作为一个管理系统,大家的一般开发习惯就是使用.Net或Jav 阅读全文
-
个性化推荐系统
摘要:个性化推荐系统又与其他系统有着相似大流量考验,还有一些和其他业务系统差异地方。核心交易系统更多面临高并发交易可用性,高并发交易不出错,系统稳定性。个性化推荐面临问题是及其复杂线上算法逻辑,多次缓存redis调用,各个业务线面临线上将近20倍流量暴涨,因为个性化每个用户逻辑均不相同,暴涨的流量对于re 阅读全文
-
配置中心
摘要:spring cloud+dotnet core搭建微服务架构:配置中心(四) 前言 我们项目中有很多需要配置的地方,最常见的就是各种服务URL地址,这些地址针对不同的运行环境还不一样,不管和打包还是部署都麻烦,需要非常的小心。一般配置都是存储到配置文件里面,不管多小的配置变动,都需要对应用程序进行 阅读全文