摘要:
微服务架构,对于从事JAVA架构的童鞋来说,早已不是什么新鲜的事儿,他们有鼎鼎大名的Spring Cloud这样的全家桶框架支撑,包含微服务核心组件如
1. Eureka:实现服务注册与发现。
2. Zuul:实现统一API网关。
3. Hystrix:实现熔断保护与可视化监控。
4. Config:实现统一管理配置。
都是我们NET程序员梦寐以求的组件,而.NET Core发展至今,也专门是为微服务提供的框架平台,只是目前处于各路神仙各显神通的阶段,没有一个统一的框架体系来完成和维护这样的框架集,当然,笔者也是按照目前在NET上所了解到的开源框架摸着石头一个一个的寻找和研究,谁叫我是NET的忠实粉呢,因此,笔者也特意开出一个系列来详细探讨NET Core微服务架构体系的各种知识,水平有限,欢迎拍砖。 阅读全文
微服务架构,对于从事JAVA架构的童鞋来说,早已不是什么新鲜的事儿,他们有鼎鼎大名的Spring Cloud这样的全家桶框架支撑,包含微服务核心组件如
1. Eureka:实现服务注册与发现。
2. Zuul:实现统一API网关。
3. Hystrix:实现熔断保护与可视化监控。
4. Config:实现统一管理配置。
都是我们NET程序员梦寐以求的组件,而.NET Core发展至今,也专门是为微服务提供的框架平台,只是目前处于各路神仙各显神通的阶段,没有一个统一的框架体系来完成和维护这样的框架集,当然,笔者也是按照目前在NET上所了解到的开源框架摸着石头一个一个的寻找和研究,谁叫我是NET的忠实粉呢,因此,笔者也特意开出一个系列来详细探讨NET Core微服务架构体系的各种知识,水平有限,欢迎拍砖。 阅读全文
posted @ 2018-10-14 02:17
另一个老李
阅读(3622)
评论(11)
推荐(12)

一致性:很多时候表现在IT系统中,通常在分布式系统中,必须(或最终)为多个节点的数据保持一致。世间万物,也有存在相同的特征或相似,比如儿时的双胞胎,一批工厂流水线的产品,当然,我们不去讨论非IT以外的知识点。
注:我们一定要明白一个词叫“信息不对称”,不论是人、事、物,信息不对称是永远都存在的,要知道,在IT系统中,能引起信息不对称的因素有很多,比如网络上,有丢包、有延迟。硬件上,有不同性能的计算能力和处理能力。
在传统的IT时代,一致性通常是指强一致性,比如一个单体的WEB程序中,从数据库到缓存,再到呈现出来的界面,数据均是相同的;
而在现在的互联网时代,特别是分布式架构下,一致性的含义远远超出她原有的含义,由于互联网的特点,信息量巨大,每个人(或者不同的每个业务)获取到的信息不对称,最终都会造成不一致。
换句话说,传统的单体应用无法满足巨大的信息量,而转向为多节点、多服务的
日志,一直以来都是开发人员和运维人员最关心的问题。开发人员可通过日志记录来协助问题定位,运维人员可通过日志发现系统隐患,故障等定位问题。如果你的系统中没有日志,就像一个断了线的风筝,你永远不知道它会的落脚点(故障点)在什么地方。当然,你说你不用日志,非要用调试模式来一个一个的排查和验证问题,那这将是非常疯狂的。
对于普通系统或者服务来说,一般通过打日志来进行埋点,然后再通过elk或splunk进行定位及分析问题,更有甚者直接远程服务器,直接操作查看日志,那么,随着业务越来越复杂,企业应用也进入了分布式服务化的阶段,传统的日志监控等方式无法很好达到跟踪调用、排查问题等需求,可以想象,如果你的服务节点达到有很多很多(两位数以上吧),而没有一个自动跟踪系统,那查找一个问题将成为噩梦。
我们知道,Consul、Etcd、Zookeeper等等这些注册中心都有健康检查的机制,用于检查服务节点的状态,是200,还是非200。但是,这种检测是粗粒度的,她只能检测节点的健康状态,却不能检测接口的健康状态,毕竟细粒度的控制太多由业务环境支配,无法统一化和标准化。本节我们介绍如何在接口(或方法)中如何实现健康状态的检测,其实也就是对某个接口的故障保护。
RPC是什么,是一个协议吗?不是。确切的说它只是“远程调用”的一个名称的缩写,并不是任何规范化的协议,也不是大众都认知的协议标准,我们更多时候使用时都是创建的自定义化(例如Socket,Netty)的消息方式进行调用,相比http协议,我们省掉了不少http中无用的消息内容,例如headers消息头。本一个简单的GET请求,返回一个hello world的请求和响应,元数据就10个字节左右,但是加上headers消息头等等http的标准内容,估计会膨胀到25~30个字节
重温最少化集群搭建,我相信很多朋友都已经搭建出来,基于Watch机制也实现了出来,相信也有很多朋友有了自己的实现思路,但是,很多朋友有个疑问,我API和服务分离好了,怎么通过服务中心进行发现呢,这个过程是通过什么来实现的呢,本篇我们就来介绍这个“调用过程”。
本篇干货较多,没有代码,阅读请注意休息!
我们再复习一下上一篇的内容,先建立三台consul server节点,两个consul client节点,分别在每个节点上跑不同(名称不同而已)的实例。我们先通过vmware启动这五个节点,并且能成功访问这个两个client节点的实例。(具体配置可以见上一篇)
在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
换白话文就是:保证开闭原则的前提下,不修改某一个模块(或函数)的任何一行代码,从而实现对该模块的横向扩展。
可插拔:即使抛弃AOP,核心内容仍然可以运行,降低耦合,提高可重用。
浙公网安备 33010602011771号