consul

.Net 微服务架构技术栈的那些事

ε祈祈猫儿з 提交于 2020-04-09 17:49:10
一、前言 大家一直都在谈论微服务架构,园子里面也有很多关于微服务的文章,前几天也有一些园子的朋友问我微服务架构的一些技术,我这里就整理了微服务架构的技术栈路线图,这里就分享出来和大家一起探讨学习,同时让新手对微服务相关技术有一个更深入的了解。 二、技术栈 2.1 工欲善其事,必先利其器 现在互联网盛行的年代,互联网产品也层出不穷,受欢迎的互联网产品都有一个比较牛的技术团队,我这里分享下.net 微服务架构技术栈图如下: 俗话说得好:工欲善其事,必先利其器。一个优秀的工程师应该善于使用框架和工具,在微服务这一块的技术选型并非一蹴而就,需要经过日积月累和落地的项目才能完善。 下文我会一一分享技术栈中的主要框架和工具的使用场景,这篇文章就不一一分享实战例子。 2.2 微服务 微服务如何“微”? 微服务,当然核心是主题是“微”,怎么微呢?应该如何微呢?在我刚来杭州的时候接触过一个电商系统的 单体架构 ,系统比较庞大,结合了各种电商该拥有的业务逻辑和场景, 代码也比较难于维护,前前后后接手的人也比较多,代码耦合度太高,改个业务逻辑基本上是牵一发而动全身,跟我上个月分享的关于 Asp.Net Core 中IdentityServer4 授权中心之应用实战 的文章中的电商系统最初的架构图类似,如下: 那针对这个架构就有可“微”之谈了。 这里针对该 单体架构 可以做如下几个原则上进行“微”服务:

.Net 微服务架构技术栈的那些事

不想你离开。 提交于 2020-04-09 17:48:02
一、前言 大家一直都在谈论微服务架构,园子里面也有很多关于微服务的文章,前几天也有一些园子的朋友问我微服务架构的一些技术,我这里就整理了微服务架构的技术栈路线图,这里就分享出来和大家一起探讨学习,同时让新手对微服务相关技术有一个更深入的了解。 二、技术栈 2.1 工欲善其事,必先利其器 现在互联网盛行的年代,互联网产品也层出不穷,受欢迎的互联网产品都有一个比较牛的技术团队,我这里分享下.net 微服务架构技术栈图如下: 俗话说得好:工欲善其事,必先利其器。一个优秀的工程师应该善于使用框架和工具,在微服务这一块的技术选型并非一蹴而就,需要经过日积月累和落地的项目才能完善。 下文我会一一分享技术栈中的主要框架和工具的使用场景,这篇文章就不一一分享实战例子。 2.2 微服务 微服务如何“微”? 微服务,当然核心是主题是“微”,怎么微呢?应该如何微呢?在我刚来杭州的时候接触过一个电商系统的 单体架构 ,系统比较庞大,结合了各种电商该拥有的业务逻辑和场景, 代码也比较难于维护,前前后后接手的人也比较多,代码耦合度太高,改个业务逻辑基本上是牵一发而动全身,跟我上个月分享的关于 Asp.Net Core 中IdentityServer4 授权中心之应用实战 的文章中的电商系统最初的架构图类似,如下: 那针对这个架构就有可“微”之谈了。 这里针对该 单体架构 可以做如下几个原则上进行“微”服务:

.Net 微服务架构技术栈的那些事

时光毁灭记忆、已成空白 提交于 2020-04-09 16:46:50
一、前言 大家一直都在谈论微服务架构,园子里面也有很多关于微服务的文章,前几天也有一些园子的朋友问我微服务架构的一些技术,我这里就整理了微服务架构的技术栈路线图,这里就分享出来和大家一起探讨学习,同时让新手对微服务相关技术有一个更深入的了解。 二、技术栈 2.1 工欲善其事,必先利其器 现在互联网盛行的年代,互联网产品也层出不穷,受欢迎的互联网产品都有一个比较牛的技术团队,我这里分享下.net 微服务架构技术栈图如下: 俗话说得好:工欲善其事,必先利其器。一个优秀的工程师应该善于使用框架和工具,在微服务这一块的技术选型并非一蹴而就,需要经过日积月累和落地的项目才能完善。 下文我会一一分享技术栈中的主要框架和工具的使用场景,这篇文章就不一一分享实战例子。 2.2 微服务 微服务如何“微”? 微服务,当然核心是主题是“微”,怎么微呢?应该如何微呢?在我刚来杭州的时候接触过一个电商系统的 单体架构 ,系统比较庞大,结合了各种电商该拥有的业务逻辑和场景, 代码也比较难于维护,前前后后接手的人也比较多,代码耦合度太高,改个业务逻辑基本上是牵一发而动全身,跟我上个月分享的关于 Asp.Net Core 中IdentityServer4 授权中心之应用实战 的文章中的电商系统最初的架构图类似,如下: 那针对这个架构就有可“微”之谈了。 这里针对该 单体架构 可以做如下几个原则上进行“微”服务:

ASP.NET Core微服务框架Ocelot+Consul+IdentityServer4实战演练

时光总嘲笑我的痴心妄想 提交于 2020-04-07 13:30:43
一、背景介绍 API网关的流行源于最近几年移动应用与企业间接口对接的兴起,使得原来单一的PC客户端,变化到PC客户端、各种浏览器、手机移动端及智能终端等。同时系统之间大部分都不是单独运行,经常会涉及与其他系统对接、共享数据的需求。随着微服务架构概念的提出,API网关成为了微服务架构的一个标配组件。随着业务快速发展,面向手机移动应用业务越来越多,为了减少客户端与服务的耦合,节约后端微服务的开发成本,建立一个高性能、高可用、减少上线风险的API网关成为一个迫切的需求。 1)、目前面临现状:假设你正好是一个后端开发,而老板又刚好让你开发网站,其中需要涉及到很多后端的微服务,比如会员、商品、推荐服务等等。那么这里就会遇到一个问题,APP/Browser怎么去访问这些后端的服务?如果业务比较简单的话,可以给每个业务都分配一个独立的域名(https://service.api.company.com),但这种方式会有几个问题:每个业务都会需要鉴权、限流、权限校验等逻辑,如果每个业务都各自为战,自己造轮子实现一遍,会很麻烦,完全可以抽出来,放到一个统一的地方去做。 2)、有效的解决办法:更好的方式是采用API网关,实现一个API网关接管所有的入口流量,类似Nginx的作用,将所有用户的请求转发给后端的服务器,但网关做的不仅仅只是简单的转发,也会针对流量做一些扩展。比如鉴权、限流、权限、熔断

ASP.NET Core微服务架构之Ocelot从基础入门到实战

不打扰是莪最后的温柔 提交于 2020-04-07 13:30:17
一、课程介绍 微服务(Microservices Architecture)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。 随着.NET Core的关注度持续上升, 微服务及云原生应用开发上采用.NET Core也越来越多, 以 .NETCore 为例子,目前比较火热的就是 ocelot+consul 的搭配,通过在服务中嵌入 ocelot 和 consul 的客户端,自动的完成服务注册到(Consul)和服务发现(ocelot读取Consul中的服务);当用户访问某个 url 的时候,ocelot 将会根据路由将用户请求转发到从 Consul 拉取到的真正的服务中;Ocelot 作为.NET Core平台下一款开源的API 网关开发库越来越得到社区的认可,应用到生产中的案例也很多,所以在微服务中API网关和服务注册和发现这两个概念比较重要,那么今天我们就先熟悉一下Ocelot这个API 网关组件吧。 本文分享侧重以下两部分内容 1、基于Ocelot搭建API网关; 2、Ocelot+Consul实现对下游API服务的自动发现并实现负载均衡访问。 1.1、本次分享课程适合人群如下 1)、有一定的C#开发基础。 2)

ASP.NET Core微服务架构之Consul基础入门到实战

…衆ロ難τιáo~ 提交于 2020-04-07 13:30:00
一、课程介绍 微服务(Microservices Architecture)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。 随着.NET Core的关注度持续上升, 微服务及云原生应用开发上采用.NET Core也越来越多, 以 .NETCore 为例子,目前比较火热的就是 Ocelot+Consul+IdentityServer4的搭配,通过在服务中嵌入 Ocelot和 Consul 的客户端,自动的完成服务注册到(Consul)和服务发现(Ocelot读取Consul中的服务);当用户访问某个 url 的时候,Ocelot 将会根据路由将用户请求转发到从 Consul 拉取到的真正的服务中;由于 Consul 的高可用性、丰富的API、友好的 Web 控制台界面等特点,Consul 的发展非常迅猛,得益于 .NET Core 社区的快速发展和社区成员的贡献,我们现在可以非常方便快速的将 Consul 集成到 .NET Core 中。 所以在Consul服务注册和发现在微服务框架中是一个比较重要的组件,那么今天我们就先熟悉一下Consul这个服务注册和发现组件吧。 1.1、本次分享课程适合人群如下 1)、有一定的

在 Kubernetes 中配置私有 DNS 和上游域名服务器

眉间皱痕 提交于 2020-04-07 12:29:04
Before you begin You need to have a Kubernetes cluster, and the kubectl command-line tool must be configured to communicate with your cluster. If you do not already have a cluster, you can create one by using Minikube , or you can use one of these Kubernetes playgrounds: Katacoda Play with Kubernetes To check the version, enter kubectl version . Kubernetes 1.6 及其以上版本。 集群必须配置使用 kube-dns 插件。 配置存根域和上游 DNS 服务器 通过为 kube-dns ( kube-system:kube-dns )提供 ConfigMap,集群管理员能够指定自定义存根域和上游域名服务器。 例如,下面的 ConfigMap 建立了一个 DNS 配置,它具有一个单独的存根域和两个上游域名服务器: apiVersion: v1 kind: ConfigMap metadata: name: kube-dns

ASP.NET Core微服务框架Ocelot+Consul+IdentityServer4实战演练

孤街浪徒 提交于 2020-04-07 10:23:21
一、背景介绍 API网关的流行源于最近几年移动应用与企业间接口对接的兴起,使得原来单一的PC客户端,变化到PC客户端、各种浏览器、手机移动端及智能终端等。同时系统之间大部分都不是单独运行,经常会涉及与其他系统对接、共享数据的需求。随着微服务架构概念的提出,API网关成为了微服务架构的一个标配组件。随着业务快速发展,面向手机移动应用业务越来越多,为了减少客户端与服务的耦合,节约后端微服务的开发成本,建立一个高性能、高可用、减少上线风险的API网关成为一个迫切的需求。 1)、目前面临现状:假设你正好是一个后端开发,而老板又刚好让你开发网站,其中需要涉及到很多后端的微服务,比如会员、商品、推荐服务等等。那么这里就会遇到一个问题,APP/Browser怎么去访问这些后端的服务?如果业务比较简单的话,可以给每个业务都分配一个独立的域名(https://service.api.company.com),但这种方式会有几个问题:每个业务都会需要鉴权、限流、权限校验等逻辑,如果每个业务都各自为战,自己造轮子实现一遍,会很麻烦,完全可以抽出来,放到一个统一的地方去做。 2)、有效的解决办法:更好的方式是采用API网关,实现一个API网关接管所有的入口流量,类似Nginx的作用,将所有用户的请求转发给后端的服务器,但网关做的不仅仅只是简单的转发,也会针对流量做一些扩展。比如鉴权、限流、权限、熔断

spring-cloud-gateway动态路由

生来就可爱ヽ(ⅴ<●) 提交于 2020-04-06 13:25:32
概述 线上项目发布一般有以下几种方案: 停机发布 蓝绿部署 滚动部署 灰度发布 停机发布 这种发布一般在夜里或者进行大版本升级的时候发布,因为需要停机,所以现在大家都在研究 Devops 方案。 蓝绿部署 需要准备两个相同的环境。一个环境新版本,一个环境旧版本,通过负载均衡进行切换与回滚,目的是为了减少服务停止时间。 滚动部署 就是在升级过程中,并不一下子启动所有新版本,是先启动一台新版本,再停止一台老版本,然后再启动一台新版本,再停止一台老版本,直到升级完成。基于 k8s 的升级方案默认就是滚动部署。 灰度发布 也叫金丝雀发布,灰度发布中,常常按照用户设置路由权重,例如 90%的用户维持使用老版本,10%的用户尝鲜新版本。不同版本应用共存,经常与 A/B 测试一起使用,用于测试选择多种方案。 上边介绍的几种发布方案,主要是引出我们接下来介绍的 spring-cloud-gateway 动态路由,我们可以基于动态路由、负载均衡和策略加载去实现 灰度发布 。当然现在有很多开源的框架可以实现 灰度发布 ,这里只是研究学习。 动态路由 spring-cloud-gateway 默认将路由加载在内存中。具体可以参见 InMemoryRouteDefinitionRepository 类的实现。 这里我们基于 Redis 实现动态路由。基础项目见 spring-cloud-gateway

ASP.NET Core微服务架构之Consul基础入门到实战

那年仲夏 提交于 2020-04-06 10:51:37
一、课程介绍 微服务(Microservices Architecture)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。 随着.NET Core的关注度持续上升, 微服务及云原生应用开发上采用.NET Core也越来越多, 以 .NETCore 为例子,目前比较火热的就是 Ocelot+Consul+IdentityServer4的搭配,通过在服务中嵌入 Ocelot和 Consul 的客户端,自动的完成服务注册到(Consul)和服务发现(Ocelot读取Consul中的服务);当用户访问某个 url 的时候,Ocelot 将会根据路由将用户请求转发到从 Consul 拉取到的真正的服务中;由于 Consul 的高可用性、丰富的API、友好的 Web 控制台界面等特点,Consul 的发展非常迅猛,得益于 .NET Core 社区的快速发展和社区成员的贡献,我们现在可以非常方便快速的将 Consul 集成到 .NET Core 中。 所以在Consul服务注册和发现在微服务框架中是一个比较重要的组件,那么今天我们就先熟悉一下Consul这个服务注册和发现组件吧。 1.1、本次分享课程适合人群如下 1)、有一定的