首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

.Net Core微服务入门全纪录(六)——EventBus-事件总线

其实EventBus在客户端开发中应用非常广泛(android,ios,web前端等),用于多个组件(或者界面)之间的相互通信,懂的人都懂。。。 那么,我们为什么要用EventBus呢?...作者介绍:https://www.cnblogs.com/savorboard/p/cap.html CAP使用 环境准备 在Docker中准备一下需要的环境,首先是数据库,数据库我使用PostgreSQL...关于在Docker中运行PostgreSQL可以看我的另一篇博客:https://www.cnblogs.com/xhznl/p/13155054.html 然后是MQ,这里我使用RabbitMQ,Kafka...CAP相关: DotNetCore.CAP DotNetCore.CAP.RabbitMQ DotNetCore.CAP.PostgreSql ?...修改ConfigureServices方法,添加Cap配置: public void ConfigureServices(IServiceCollection services) { services.AddControllers

6.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    CAP带你轻松玩转Asp.Net Core消息队列

    DotNetCore.CAP.MySql PM> Install-Package DotNetCore.CAP.PostgreSql 创建DbContext 因为我采用的是EF Core,所以首先要创建一个...DbContext上下文,代码如下: public class CapDbContext:DbContext { public CapDbContext(DbContextOptions...: public void ConfigureServices(IServiceCollection services) { //注入DbContext上下文,如果用的是...紧随其后,消费者也就是我们的订阅方法在RabbitMQ服务器上注册成功。 ? 发送消息,发送成功,如下 ? 发送后,立即在控制台看到了订阅方法输出的结果。 ?...消息的失败重试 在订阅方法中,如果抛出异常,那么CAP就会认为该条消息处理失败,会自动进行重试,重试次数在前方已经进行了配置。

    1.1K20

    【ASP.NET Core 基础知识】--Web API--创建和配置Web API(二)

    在控制器中使用DbContext: 在需要访问数据库的控制器中注入DbContext,然后可以使用它进行数据库操作。...在Startup.cs文件的ConfigureServices方法中添加身份验证服务: public void ConfigureServices(IServiceCollection services...3.2 实现授权策略 在Startup.cs文件的ConfigureServices方法中,可以定义授权策略。授权策略定义了在哪些条件下用户被授予特定权限。...在Startup.cs文件的ConfigureServices方法中添加以下代码: public void ConfigureServices(IServiceCollection services)...以下是集成日志记录的基本步骤: 在Startup.cs中配置日志服务 在ConfigureServices方法中添加日志服务的配置: public void ConfigureServices(IServiceCollection

    29800

    .NET Core微服务之开源项目CAP的初步使用

    wiki   CAP 是一个在分布式系统中(SOA,MicroService)实现事件总线及最终一致性(分布式事务)的一个开源的 C# 库,她具有轻量级,高性能,易使用等特点。...我们可以轻松的在基于 .NET Core 技术的分布式系统中引入CAP,包括但限于 ASP.NET Core 和 ASP.NET Core on .NET Framework。   ...CAP指定数据库(它会在这个数据库中创建本地消息表Published和Received)以及使用到的消息队列(这里是RabbitMQ) public void ConfigureServices...transaction(当CAP检测到 Publish 是在EF事务区域内的时候,将使用当前的事务上下文进行消息的存储),而基于ADO.NET方式中需要传transaction(由于不能获取到事务上下文...在发送一条消息到消息队列的过程中,如果不使用事务,我们是没有办法保证我们的业务代码在执行成功后消息已经成功的发送到了消息队列,或者是消息成功的发送到了消息队列,但是业务代码确执行失败。

    1.7K10

    ASP.Net Core 开发笔记

    ASP.NET Core有两个配置文件,上面我们也看到了,在Program.cs中进行了一些列的配置,同样,也注意到,后面使用了.UseStartup()来调用Startup.cs中的配置文件...Singleton: 在第一次请求的时候就会创建一个实例,以后也只有这一个实例; 或者在ConfigureServices这段代码运行的时候创建唯一一个实例。...对象能够从Repository中移除或者添加,就好比这些对象在一个Collection对象上就行数据操作,同时映射层的代码会对应的从数据库中取出相应的数据。...在领域驱动设计中,我们有个集合(aggregate)的概念, 通常我们是对于domain的每个集合会对应的定义一个repository。...DbContext已经实现了Unit of Work 和 Repository 模式. Controller等不应该直接使用DbContext.

    1.8K10

    .netcore 分布式事务CAP2.6 快速入门

    3:创建订单时同时往一个叫“订单创建成功”的事件表中插入相关数据,两者在同一事务中。另外创建一个服务定时查询此表,发现有待处理的数据时,执行邮件发送,成功后把此数据删除或更新为已处理。...4:创建订单时同时往一个叫“订单创建成功”的事件表中插入相关数据,两者在同一事务中。并且通过消息队列推送此消息,如果推送失败,则定时扫描“订单创建成功”表将失败的数据重新推送。...2:添加CAP引用 在Nuget中添加 DotNetCore.CAP DotNetCore.CAP.RabbitMQ DotNetCore.CAP.SqlServer 的引用。 ?...3:配置CAP 在Startup.cs的ConfigureServices方法中添加以下代码 services.AddCap(c => {...后记: 添加监控仪表盘监控CAP运行状况: 1:只需要在Startup.cs的AddCap方法中添加配置: c.UseDashboard(); 就万事大吉了,一个功能强大的事件管理界面就出来了,具体如下图

    1.3K20

    分布式事务 | 使用 dotnetcoreCAP 的本地消息表模式

    其示意图如下所示,主要分为以下三步: 本地业务数据和发布的事件消息共享同一个本地事务,进行数据落库,其中事件消息持久化到单独的事件发件箱表中。...单独的进程或线程不断查询发件箱表中未发布的事件消息。 将未发布的事件消息发布到消息代理,然后将消息的状态更新为已发布。...dotnetcore/CAP 简介 在《.NET 微服务:适用于容器化 .NET 应用程序的体系结构》电子书中,提及了如何设计兼具原子性和弹性的事件总线,其中提出了三种思路:使用完整的事件溯源模式,使用事务日志挖掘...CapDemo.OrderService.Domains; namespace CapDemo.OrderService.Data { public class OrderDbContext : DbContext...,在订单持久化和事件发布之前先行使用事务包裹:using (var trans = _context.Database.BeginTransaction(_capPublisher, autoCommit

    72230

    Do You Kown Asp.Net Core - 根据实体类自动创建Razor Page CURD页面模板

    Scaffolding Template Intro 我们知道在Asp.Net MVC中,如果你使用的EF的DBContext的话,你可以在vs中通过右键解决方案-添加控制器-添加包含视图的控制器,然后...通过DI的方式注册到项目容器中 public void ConfigureServices(IServiceCollection services) { services.AddDbContext...options.UseSqlServer(Configuration.GetConnectionString("BlogDbContext"))); services.AddMvc(); } 记得在配置文件...Update-Database [这里一定要做下迁移,否则生成代码会不成功,我估计生成代码会去读取数据库] Step 7 : 打开终端(CMD or Powershell) 先移步到项目目录(Program.cs和Startup.cs.../Index"); } 可以看到 它使用了Blog作为实体类的集合名了,但在Step 3中,我使用的是Blogs,这应该是个bug,想提交的,但没有找到相应的项目。

    1.1K60

    Asp.net core web api 项目中使用postgres

    在开始之前,你可以通过visual studio中基于asp.net web api项目模板生成一个web api 项目。选择默认配置就行。...配置数据库连接字符串在appsettings.json文件中,添加PostgreSQL数据库的连接字符串。...在Program.cs源文件中配置数据库上下文在Program.cs 的Program类Main方法中添加如下的注册依赖项的语句以,配置你的数据库上下文以使用Npgsql作为数据库提供程序,并注入到依赖注入容器中...以上如果是在.net 6以下版本(例如 .net core 3.1等),请在Startup.cs的ConfigureServices方法中配置。5....在控制器中使用数据库上下文在你的Web API控制器中,注入数据库上下文,并使用它来执行CRUD操作。

    80020

    ASP.NET Core 使用 SQLite 教程,EF SQLite教程

    需要建立一个上下文类和模型类,把模型类包含在上下文类中,上下文类中包含进来的模型类,将会生成对应的数据库表。 下面这代码不用自己操作,只需要看就行。...实际操作 在 Models 文件夹中 新建一个类  Users.cs 在类中直接写代码 public int ID { get; set; } //主键 public...My,类名称为什么,数据库名就为什么 步骤2 在MyContext类中写一个构造函数 public MyContext(DbContextOptions options...; 然后为 应用注入服务,有以下方式 (后面再解释作用,现在先了解,不用加) 1 直接写字符串 在 Startup.cs 增加代码 string connecttext = "Filename...来实际操作 请使用复制上面 方式一 的代码,然后在 Startup.cs 类 -- ConfigureServices 方法里加入 直接复制下面代码覆盖 ConfigureServerices

    4.7K50

    构建简单的微服务架构

    首先需要配置ApiGateway项目的Swagger,在配置文件配置上面两个接口的SwaggerNames,代码中遍历添加到网关项目的SwaggerUI中,代码如下 ConfigureServices...(暂未深究理解) ShowInDiscoveryDocument 指定此范围是否显示在发现文档中。默认为true。 UserClaims 应包含在身份令牌中的关联用户声明类型的列表。...)文件夹,在config 文件夹中创建service.json(名字可自取)文件,用来注册服务和服务检查配置。...访问服务外网,结果如下,配置成功 配置Ocelot 网关 首先修改前面的网关项目ApiGateway Startup.cs 文件里的 ConfigureServices方法,添加 .AddConsul(...微服务系统的过程中,通常需要使用事件来对各个服务进行集成,在这过程中简单的使用消息队列并不能保证数据的最终一致性, CAP 采用的是和当前数据库集成的本地消息表的方案来解决在分布式系统互相调用的各个环节可能出现的异常

    1.7K10

    构建自己的简单微服务架构(开源)

    Docker环境下请务必启用 logging.AddConsole(); //添加调试日志 logging.AddDebug(); }) .UseStartup(); } 然后在Startup.cs...首先需要配置ApiGateway项目的Swagger,在配置文件配置上面两个接口的SwaggerNames,代码中遍历添加到网关项目的SwaggerUI中,代码如下 ConfigureServices...(暂未深究理解) ShowInDiscoveryDocument 指定此范围是否显示在发现文档中。默认为true。 UserClaims 应包含在身份令牌中的关联用户声明类型的列表。...配置Ocelot 网关 首先修改前面的网关项目ApiGateway Startup.cs 文件里的 ConfigureServices方法,添加 .AddConsul()方法代码如下: public...订阅列表中也有了一条数据 ? 在来看数据库也添加一条数据 ?

    2.7K30
    领券