落地微服务架构v2.0
网关+服务治理
将服务注册到Consul中,需要首先系统该插件。
Ocelot:网关组件,腾讯和微软都在使用。
可以使用dotnet run命令启动.NET Core项目,启动时可以在命令时传递监听的IP、端口、域名等参数。
Consul类似于Nginx
Consul:用于服务注册与发现。
Ocelot不会对服务进行健康检查,仅仅根据配置文件完成转发,Consul会对微服务进行健康检查。
网关可以完成集群和负载均衡,但是没办法做服务发现先和自动下线。
网关也可以进行集群化部署。
Consul和Ocelot都需要搭建自己的web站点提供服务,其中Consul具备配置页面查看对应状态。
Consul仅仅实现服务的发现,返回对应服务的端口地址等。
Gateway实现路由的转发,也可以配置实现资源分配策略,如轮询、权重、随机等。
在Gateway中可以使用MemoryCache实现缓存的管理,可以使用Redis。
服务治理:超时、熔断、限流、雪崩、合并请求。
Polly:用于微服务治理,雪崩效应、服务治理、熔断、降级、重试。
雪崩:在单位时间内,服务A调用服务B,服务B调用服务C,C宕机了,调用服务C的相关服务也宕机了,导致一连串的效应,解决雪崩效应的方案有限流、熔断、异步架构。
熔断:在单位时间内,异常了多少次,就指定时间内,调用服务的时候,直接返回失败。
降级:在指定特殊情况下,可以降低服务等级,甚至是关闭。
限流:单位时间内允许多少次调用。
重试:在服务调用失败的时候,指定重新去调用几次,成功就成功了,失败了几次之后就失败。
Polly的功能:重试(Retry)、熔断(Circuit-Breaker)、超时检测(Timeout)、缓存(Cache)、降级(Fallback)。
AOP:面向切面编程,Aspect Oriented Programming
希望在调用服务之前,组装Polly规则,希望这个规则可以自由组装,可以使用API+Attribute实现。
AOP可以在调用服务之前添加规则,规则要灵活拼装,可以把规则定义成各种特性,有几个规则就定义几个特性,标记特性就标识要使用这个规则,就读取被调用者标记了哪几个特性,把特性中的规则拼装起来。
如何封装?可以用中间件的形式,委托多层嵌套的方式实现。
落地微服务架构v2.0的更多相关文章
- 微服务架构~Zuul1.0和2.0我们该如何选择?
介绍 在今年5月中,Netflix终于开源了它的支持异步调用模式的Zuul网关2.0版本,真可谓千呼万唤始出来.从Netflix的官方博文[附录1]中,我们获得的信息也比较令人振奋: The Clou ...
- 微服务实战(三):落地微服务架构到直销系统(构建基于RabbitMq的消息总线)
从前面文章可以看出,消息总线是EDA(事件驱动架构)与微服务架构的核心部件,没有消息总线,就无法很好的实现微服务之间的解耦与通讯.通常我们可以利用现有成熟的消息代理产品或云平台提供的消息服务来构建自己 ...
- Re:从0开始的微服务架构--(二)快速快速体验微服务架构?--转
原文地址:https://mp.weixin.qq.com/s/QO1QDQWnjHZp8EvGDrxZvw 这是专题的第二篇文章,看看如何搭建一个简单模式的微服务架构. 记得好久之前看到一个大牛说过 ...
- 微服务架构~BFF和网关是如何演化出来的
介绍 BFF(Backend for Frontend)和网关Gateway是微服务架构中的两个重要概念,这两个概念相对比较新,有些开发人员甚至是架构师都不甚理解. 本文用假想的公司案例+图示的方式, ...
- 字节跳动内部微服务架构-Docker实战学习笔记分享 真香
前言 基于 Spring Cloud 的微服务设计和开发,已经越来越多地得到了更多企业的推广和应用,而 Spring Cloud 社区也在不断的迅速发展壮大之中,近几年时间,Spring Cloud ...
- .NET Core微服务架构学习与实践系列文章索引目录
一.为啥要总结和收集这个系列? 今年从原来的Team里面被抽出来加入了新的Team,开始做Java微服务的开发工作,接触了Spring Boot, Spring Cloud等技术栈,对微服务这种架构有 ...
- 使用微服务架构思想,设计部署OAuth2.0授权认证框架
1,授权认证与微服务架构 1.1,由不同团队合作引发的授权认证问题 去年的时候,公司开发一款新产品,但人手不够,将B/S系统的Web开发外包,外包团队使用Vue.js框架,调用我们的WebAPI,但是 ...
- Re:从0开始的微服务架构:(一)重识微服务架构--转
原文地址:http://www.infoq.com/cn/articles/micro-service-architecture-from-zero?utm_source=infoq&utm_ ...
- Spring Cloud实战 | 第十篇 :Spring Cloud + Seata 1.4.1 + Nacos1.4.0 整合实现微服务架构中逃不掉的话题分布式事务
Seata分布式事务在线体验地址:https://www.youlai.store 本篇完整源码地址:https://github.com/hxrui/youlai-mall 有想加入开源项目开发的童 ...
- Re:从 0 开始的微服务架构--(三)微服务架构 API 的开发与治理--转
原文来自:聊聊架构公众号 前面的文章中有说到微服务的通信方式,Martin Folwer 先生在他对微服务的定义中也提到“每个服务运行在其独立的进程中,服务与服务间采用 轻量级的通信机制 互相协作(通 ...
随机推荐
- 虚拟机安装linux操作系统中IP设置
问题描述:用虚拟机安装linux操作系统时,不选择分配IP,系统默认会分配动态IP,如果是临时搭建,就可以默认动态IP,也可以使用连接工具连接虚拟机.但如果是长期使用,选择使用固定的IP会更好,需要手 ...
- Python常见面试题017: Python中是否可以获取类的所有实例
017. Python中是否可以获取类的所有实例 转载请注明出处,https://www.cnblogs.com/wuxianfeng023 出处 https://docs.python.org/zh ...
- BISS-C 8通道采集renishaw传感器及其CRC校验
背景 BISS-C 是常见的位置编码器传输协议,相对于传统的协议,支持更快的传输速度,电器接口为电压差分RS422或者485,抗干扰能力较强,在精密位置传输中应用广泛. 下述信息源自雷尼绍 典型的请求 ...
- 在Jupyter Notebook,沉浸式体验ChatGPT
大家好,我是章北海mlpy 写代码,修Bug是 ChatGPT 目前最擅长的领域之一 今天向大家推荐一个刚刚开源的Python包 安装后可以直接在IPython和Jupyter Notebook中直接 ...
- WebAssembly 助力云原生:APISIX 如何借助 Wasm 插件实现扩展功能?
本文将介绍 Wasm,以及 Apache APISIX 如何实现 Wasm 功能. 作者朱欣欣,API7.ai 技术工程师 原文链接 什么是 Wasm Wasm 是 WebAssembly 的缩写.W ...
- Simulation-计算统计——Monte Carlo
Monte Carlo Integration 找到原函数,再计算 无法找到原函数,MC积分 Assume that we can generate \(U_1, . . . , U_n \sim U ...
- C# 笔迹擦除8边形
擦除区域与橡皮大小不一致 测试反馈,擦除区域与真实的橡皮大小不一致: 上图中,橡皮显示是圆形的,但擦除效果是一个"8边形"区域. 找了一台8K屏,确实是能复现的: 看到这个诡异的8 ...
- 群论中的 Lagrange 定理
今天跟 hym 打球时讲到了这个东西,突然发现证明拉格朗日定理的思想有许多跟轨道-稳定集定理很像,所以这里又记录一下. 为了证明 Lagrange 定理,我们需要了解一些关于子群和陪集的性质. 首先给 ...
- Python定时任务框架apscheduler的简单使用
apscheduler的简单使用 APScheduler有四大组件: 1.触发器 triggers : 触发器包含调度逻辑.每个作业都有自己的触发器,用于确定下一个任务何时运行.除了初始配置之外,触发 ...
- selenium 多窗口处理与网页frame
多窗口处理 点击某些链接,会重新打开一个窗口,对于这种情况.想在薪页面操作,就得先切换窗口了. 获取窗口得唯一标识用句柄表示,所以只需要切换句柄,就可以在多个页面进行操作了 1. 先获取到当前得窗口句 ...