随笔分类 -  微服务

摘要:本次主要分享如何利用consul来实现redis以及mysql的高可用。以前的公司mysql是单机单实例,高可用MHA加vip就能搞定,新公司mysql是单机多实例,那么显然这个方案不适用,后来也实现了故障切换调用dns api来修改域名记录,但是还是没有利用consul来实现高可用方便,后面会说明 阅读全文
posted @ 2019-10-25 08:23 心冰之海 阅读(826) 评论(0) 推荐(0) 编辑
摘要:一:Nginx简介 简介:Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器 今天我们来搭建一套能够体会Nginx具体应用的实例。 首先,先下载直接去官网nginx.org 我们选择最新的版本进行下载,下载后进行安装。 二 安装部署 阅读全文
posted @ 2019-10-24 15:20 心冰之海 编辑
摘要:随着微服务的大范围应用,服务发现这个词也变的越来越火热。下面这篇文章,就会对服务发现这个概念进行介绍,介绍主要包含三部分,服务发现的定义,服务发现的模式以及目前比较成熟的服务发现应用。 服务发现是什么?其实,我们日常的很多普通操作,都是在做服务发现。 如上图所示,这是一个在浏览器输入域名,然后获取网 阅读全文
posted @ 2019-10-23 16:12 心冰之海 编辑
摘要:Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由、请求聚合、服务发现、认证、鉴权、限流熔断、并内置了负载均衡器与Service Fabric、Butterfly Tracing集成。这些功能只都只需要简单的配置即可完成,下面我们会对这些功能的配置一一进行说明。 阅读全文
posted @ 2019-10-23 10:53 心冰之海 阅读(452) 评论(0) 推荐(0) 编辑
摘要:本文介绍Ocelot中的请求头传递(Headers Transformation),其可以改变上游request传递给下游/下游response传递给上游的header。 1、修改ValuesController 修改WebApiA和WebApiB中ValuesController.Get()方法如 阅读全文
posted @ 2019-10-23 10:38 心冰之海 阅读(581) 评论(0) 推荐(0) 编辑
摘要:本文介绍Ocelot中的QoS(Quality of Service),其使用了Polly对超时等请求下游失败等情况进行熔断。 1、添加Nuget包 添加 Ocelot.Provider.Polly 到OcelotGetway项目中 nuget.png nuget.png 2、修改 Startup. 阅读全文
posted @ 2019-10-23 10:37 心冰之海 阅读(297) 评论(0) 推荐(0) 编辑
摘要:Ocelot中使用 CacheManager 来支持缓存,官方文档中强烈建议使用该包作为缓存工具。以下介绍通过使用CacheManager来实现Ocelot缓存。 1、通过Nuget添加 Ocelot.Cache.CacheManager 包 在OcelotGetway项目中添加引用: Add ca 阅读全文
posted @ 2019-10-23 10:36 心冰之海 阅读(767) 评论(0) 推荐(0) 编辑
摘要:本文介绍Ocelot中的限流,限流允许Api网关控制一段时间内特定api的总访问次数。限流的使用非常简单,只需要添加配置即可。 1、添加限流 修改 configuration.json 配置文件,对 UpstreamPathTemplate 为 /webapib/values 的配置修改如下: 对  阅读全文
posted @ 2019-10-23 10:35 心冰之海 阅读(428) 评论(0) 推荐(0) 编辑
摘要:本文介绍Ocelot中的配置管理,配置管理允许在Api网关运行时动态通过Http Api查看/修改当前配置。由于该功能权限很高,所以需要授权才能进行相关操作。有两种方式来认证,外部Identity Server或内部Identity Server。 1、外部Identity Server 修改 St 阅读全文
posted @ 2019-10-23 10:33 心冰之海 阅读(440) 评论(0) 推荐(0) 编辑
摘要:本文介绍Ocelot中的认证和授权(通过IdentityServer4),本文只使用最简单的IdentityServer,不会对IdentityServer4进行过多讲解。 1、Identity Server 4 (1)新建一个新的WebApi项目命名为IdentityServer,添加 Ident 阅读全文
posted @ 2019-10-23 10:27 心冰之海 阅读(611) 评论(0) 推荐(0) 编辑
摘要:本文介绍Ocelot中的服务发现(Service Discovery),Ocelot允许指定一个服务发现提供器,之后将从中寻找下游服务的host和port来进行请求路由。关于服务发现的详细介绍请点击。在Ocelot中使用了Consul作为服务发现的provider。 1、Consul下载安装 从官方 阅读全文
posted @ 2019-10-23 10:26 心冰之海 阅读(514) 评论(0) 推荐(0) 编辑
摘要:在实际的应用当中,经常会遇到同一个操作要请求多个api来执行。这里先假设一个应用场景:通过姓名获取一个人的个人信息(性别、年龄),而获取每种个人信息都要调用不同的api,难道要依次调用吗?在Ocelot中为我们提供了很好的解决方法。 路由聚合 继续使用前边的文章建立的项目,在WebApiA项目中添加 阅读全文
posted @ 2019-10-23 10:23 心冰之海 阅读(355) 评论(0) 推荐(0) 编辑
摘要:.Netcore 2.0 Ocelot Api网关教程(1) 路由介绍 上一篇文章搭建了一个简单的Api网关,可以实现简单的Api路由,本文介绍一下路由,即配置文件中ReRoutes,ReRoutes是Ocelot配置文件中最重要的部分,实现了由上游到下游的路由转发。 上一篇文章中使用的config 阅读全文
posted @ 2019-10-23 10:22 心冰之海 阅读(432) 评论(0) 推荐(0) 编辑
摘要:Ocelot(Github)Ocelot官方文档(英文)本文不会介绍Api网关是什么以及Ocelot能干什么需要对Api网关及Ocelot有一定的理论了解 开始使用Ocelot搭建一个入门级Api网关 1.新建3个WebApi项目,分别命名为OcelotGetway、WebApiA、WebApiB 阅读全文
posted @ 2019-10-23 10:21 心冰之海 阅读(551) 评论(0) 推荐(0) 编辑
摘要:背景 我们知道在微服务架构风格中,一个大应用被拆分成为了多个小的服务系统提供出来,这些小的系统他们可以自成体系,也就是说这些小系统可以拥有自己的数据库,框架甚至语言等,这些小系统通常以提供 Rest Api 风格的接口来被 H5, Android, IOS 以及第三方应用程序调用。 但是在UI上进行 阅读全文
posted @ 2019-10-23 10:00 心冰之海 阅读(1328) 评论(0) 推荐(0) 编辑
摘要:1、微服务简介 一种架构模式,提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(RESTful API)。每个服务都围绕着具体的业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。应尽 阅读全文
posted @ 2019-10-18 10:37 心冰之海 编辑