随笔分类 - 【005】聊聊架构
摘要:
一致性:很多时候表现在IT系统中,通常在分布式系统中,必须(或最终)为多个节点的数据保持一致。世间万物,也有存在相同的特征或相似,比如儿时的双胞胎,一批工厂流水线的产品,当然,我们不去讨论非IT以外的知识点。
注:我们一定要明白一个词叫“信息不对称”,不论是人、事、物,信息不对称是永远都存在的,要知道,在IT系统中,能引起信息不对称的因素有很多,比如网络上,有丢包、有延迟。硬件上,有不同性能的计算能力和处理能力。
在传统的IT时代,一致性通常是指强一致性,比如一个单体的WEB程序中,从数据库到缓存,再到呈现出来的界面,数据均是相同的;
而在现在的互联网时代,特别是分布式架构下,一致性的含义远远超出她原有的含义,由于互联网的特点,信息量巨大,每个人(或者不同的每个业务)获取到的信息不对称,最终都会造成不一致。
换句话说,传统的单体应用无法满足巨大的信息量,而转向为多节点、多服务的
阅读全文
.jpg)
摘要:
日志,一直以来都是开发人员和运维人员最关心的问题。开发人员可通过日志记录来协助问题定位,运维人员可通过日志发现系统隐患,故障等定位问题。如果你的系统中没有日志,就像一个断了线的风筝,你永远不知道它会的落脚点(故障点)在什么地方。当然,你说你不用日志,非要用调试模式来一个一个的排查和验证问题,那这将是非常疯狂的。
阅读全文

摘要:
对于普通系统或者服务来说,一般通过打日志来进行埋点,然后再通过elk或splunk进行定位及分析问题,更有甚者直接远程服务器,直接操作查看日志,那么,随着业务越来越复杂,企业应用也进入了分布式服务化的阶段,传统的日志监控等方式无法很好达到跟踪调用、排查问题等需求,可以想象,如果你的服务节点达到有很多很多(两位数以上吧),而没有一个自动跟踪系统,那查找一个问题将成为噩梦。
阅读全文

摘要:
单论Rpc框架市场,且不论Java上的Spring Boot和Spring Cloud这样大名鼎鼎的开源框架,目前Net上的Rpc整合性框架确实并不多,我们Net程序员也要混口饭吃,不能总被Java甩掉好几条街吧。
言归正传,一个远程过程调用,会涉及到如下几个方面的技术点(功能):
路由转发:当服务部署在多个节点上时,调用方需要知道自己的目标服务在什么地方。
通信协议:当管道存在,还需要在管道的两端建立处理程序(宿主),以处理管道中的数据包。DotEasy.Rpc基于DotNetty进行通信处理和协议实现。
动态生成:我们知道,基于二进制的RPC传输,每当新增接口,或修改接口,都需要生成相关协议的protobuf文件(或 thrift 文件),本框架基于protobuf-net的传输框架和Rosyln的预生成,动态生成相关的CS文件。
运行时代理:本框架采用
阅读全文

摘要:
重温最少化集群搭建,我相信很多朋友都已经搭建出来,基于Watch机制也实现了出来,相信也有很多朋友有了自己的实现思路,但是,很多朋友有个疑问,我API和服务分离好了,怎么通过服务中心进行发现呢,这个过程是通过什么来实现的呢,本篇我们就来介绍这个“调用过程”。
本篇干货较多,没有代码,阅读请注意休息!
阅读全文
