我眼中的ASP.NET Core之微服务】的更多相关文章

### 前言 前几天在博客园看到有园友在分享关于微软的一个微服务架构的示例程序,想必大家都已经知道了,那就是[eShopOnContainers](https://github.com/dotnet-architecture/eShopOnContainers). 我们先不看项目的后缀名称 OnXXX ,因为除了 OnContainers 还有 OnAzure,OnWeb,OnKubernetes 以及 OnServiceFabric. 我们就还是来先说说 eShop 这个项目吧,eShop 是…
前言 接上一篇. 上一篇未完待续的原因是当时刚好是6-30号晚上马上12点了还没写完,然后我想赶在7月1号之前发出去,所以当时就发了.然后在发的时候出了一点问题,结果发出去的时候刚好是 7.1号 00:00分,所以就很尴尬~~ 这一篇,我们就接着说一说微服务吧. 接上文 第四步,重构. 当你写完代码之后,我认为有一个比较重要的步骤就是对写的代码进行一番重构,重构一般从两方面下手,第一方面是代码的命名以及格式,第二方面是代码的组织结构. 针对于代码命名以及格式的重构其实是有方法和技巧的,比如方法的…
1.OceLot中间件介绍 在传统的BS应用中,随着业务需求的快速发展变化,需求不断增长,迫切需要一种更加快速高效的软件交付方式.微服务可以弥补单体应用不足,是一种更加快速高效软件架构风格.单体应用被分解成多个更小的服务,每个服务有自己的独立模块,单独部署,然后共同组成一个应用程序.把范围限定到单个独立业务模块功能.分布式部署在各台服务器上. 而Ocelot开发的目标就是使用.NET运行面向微服务/服务的架构,要达到这个目标需要一个统的系统入口点(我们统称为API网关),同时需要与Identit…
本项目采用ASP.Net Core微服务技术,搭建博客和Saas平台. 全文将围绕(1)设计模式  (2)敏捷开发 目的: 结构足够合理,代码足够优美,扩展性.可读性.易维护性做到最优. 以下目录仅为整体思路,后期逐渐完善补充. 1.配置linux环境实现持续集成 2.快速搭建 ASP.net core Web 应用 3.单元测试 4.数据持久化(基于YesSql,打算使用EFCore重新做) 5.用户管理及登录页面 6.分布式通信----MessagePack序列化 7.分布式通信----Ne…
上一次我们通过一张架构图(.Net Core with 微服务 - 架构图)来讲述了微服务的结构,分层等内容.从现在开始我们开始慢慢搭建一个最简单的微服务架构.这次我们先用几个简单的 web api 项目以及 ocelot 网关项目来演示下网关是如何配置,如何工作的. Ocelot 网关 Ocelot 是使用 asp.net core 开发的一个 api 网关项目.它功能丰富,集成了路由.限流.缓存.聚合等功能.它使用 .net 编写,本质上就是一堆 asp.net core 的中间件,所以它天…
上一次我们介绍了 Ocelot 网关的基本用法.这次我们开始介绍服务注册发现组件 Consul 的简单使用方法. 服务注册发现 首先先让我们回顾下服务注册发现的概念. 在实施微服务之后,我们的调用都变成了服务间的调用.服务间调用需要知道IP.端口等信息.再没有微服务之前,我们的调用信息一般都是写死在调用方的配置文件里(当然这话不绝对,有些公司会把这些信息写到数据库等公共的地方,以方便维护).又由于业务的复杂,每个服务可能依赖N个其他服务,如果某个服务的IP,端口等信息发生变更,那么所有依赖该服务…
上一次我们介绍并演示了如果使用 Consul 做为我们微服务的注册中心,来实现服务的注册与发现.那么本次我们讲会演示如何做日志聚合.日志聚合比较常用的有 ELK 等,但是这次我想要介绍的是一款比较小众的日志聚合工具 - Seq . 日志聚合 日志是我们写程序离不开的一个东西.在我们排查问题的时候日志就是我们的救命稻草.我们的每个服务都在不停的生产日志.但是实施微服务后,如果按照传统的写本地文件的日志方案,显然会面临跟修改配置一样麻烦的境地.不同的日志分散在各个服务器.容器内,这种情况下查日志简直…
上一次我们介绍了Seq日志聚合组件.这次要给大家介绍的是Elastic APM ,一款应用程序性能监控组件.APM 监控围绕对应用.服务.容器的健康监控,对接口的调用链.性能进行监控.在我们实施微服务后,由于复杂的业务逻辑,服务之间的调用会像蜘蛛网一样复杂.有了调用链监控后服务之间的调用可以用图像的方式展示出来,每个请求的性能,响应等都会记录下来.对于提前防范问题,以及排查问题有非常大的意义. Elastic APM 大家对 ELK 套件一定非常熟悉.ELastic APM 同样也是 Elast…
在我们实施微服务之后,服务间的调用变的异常频繁.多个服务之间可能是互相依赖的关系.某个服务出现故障或者是服务间的网络出现故障都会造成服务调用的失败,进而影响到某个业务服务处理失败.某一个服务调用失败轻则造成当前相关业务无法处理:重则可能耗尽资源而拉垮整个应用.为了尽可能的保证我们生产环境的可用性,至少是部分可用性我们就需要一些策略来保护我们的服务. 服务降级 比如我们的订单详情服务里面会调用会员信息服务接口.如果会员信息服务接口故障会造成订单详情服务也同样故障.这时候我们可以对会员信息服务接口进…
背景 公司去年开始使用dotnet core开发项目.公司的总体架构采用的是微服务,那时候由于对微服务的理解并不是太深,加上各种组件的不成熟,只是把项目的各个功能通过业务层面拆分,然后通过nginx代理,项目最终上线.但是这远远没达到微服务的要求,其中服务治理,断路器都没有.我个人理解,我们谈微服务实际上更多的是谈服务治理这块东西,至于各个的服务只是微服务中的应用而已.一次偶然的机会发现了java的spring cloud这套框架,而且支持dotnet core集成(Steeltoe OSS).…