dotnetcore microservices poc

2025-12-07 0 696

ASCLAB .NET CORE POC-实验室保险销售门户网站

这是在微服务体系结构中使用:

  • .NET 8
  • 实体框架核心
  • MediaTr
  • 尤里卡
  • Ocelot
  • JWT令牌
  • 重复
  • RAWRABBIT
  • NHIBERNATE
  • 波莉
  • NEST(Elasticsearch客户端
  • Dapper
  • DynamiceXpresso
  • 信号

可以在我们的博客上找到描述体系结构,应用设计模式和技术的综合指南:

  • 第1部分计划
  • 第2部分使用CQR和MediaTR塑造微服务的内部体系结构
  • 第3部分与尤里卡(Eureka)的服务发现
  • 第4部分与Ocelot构建API网关
  • 第5部分Marten是您的域聚合的理想存储库
  • 第6部分实时服务器客户端与Signalr和RabbitMQ的通信
  • 第7部分带有RabbitMQ的交易式输出箱

有关微服务的其他文章可能很有趣:

  • 开发人员的CQR和事件采购介绍
  • 从整体到微服务 – 迁移还是不迁移?
  • 活动猛烈袭击 – IT项目的创新

业务案例

我们将建立非常简化的系统,以供保险代理商出售各种保险产品。保险代理商将不得不登录,系统将向他们提供他们可以出售的产品列表。代理商将能够查看产品并找到适合其客户的产品。然后,他们可以创建要约,系统将根据提供的参数计算价格。
最终,代理商将能够通过将报价转换为政策和打印PDF证书来确认销售。
门户网站还将使他们能够搜索和查看要约和政策。
门户网站还将具有一些基本的社交网络功能,例如代理商聊天。
最新功能是一个业务仪表板,它使用Elasticsearch聚合和ChartJ显示销售统计信息。

体系结构概述

  • Web- VUEJS单页应用程序,可提供保险代理人为其客户选择合适的产品,计算价格,创建要约并通过将报价转换为保单来结束销售过程的能力。该应用程序还提供了策略和优惠的搜索和查看功能。 Frontend通过Agent-Portal-Gateway与后端服务进行对话。

  • Agent Portal API网关– 是一种特殊的微服务,其主要目的是从客户端应用程序中隐藏基础后台服务结构的复杂性。通常,我们为每个客户端应用创建一个专用的API网关。如果将来我们在系统中添加了一个Xamarin移动应用程序,我们将需要为其构建专用的API网关。 API网关还提供安全性障碍,不允许通过未经验证的请求将其传递给后端服务。 API网关的另一个流行用法是来自多个服务的内容汇总。

  • 验证服务– 负责用户身份验证的服务。我们的安全系统将基于JWT令牌。用户正确识别自己后,Auth Service会发出代币,该令牌可进一步用于检查用户许可和可用产品。

  • 聊天服务– 一种使用SignalR来使代理商互相聊天的服务。

  • 付款服务– 主要责任:创建策略帐户,显示策略帐户列表,在银行对帐单文件中的付款中注册。
    该模块正在照顾管理政策帐户。创建政策后,将在此服务中创建一个帐户,并具有预期的货币收入。 Paymentservice还实施了计划的过程,该过程已进口带有付款的CSV文件,并将付款分配给策略帐户。该组件使用RabbitMQ和创建背景作业的能力显示服务之间的异步通信。它还具有使用Dapper访问数据库的功能。

  • 政策服务– 创建优惠,转换为保险单。
    在这项服务中,我们演示了CQRS模式的使用,以更好地读取/写入操作隔离。该服务展示了服务之间的两种通信方式:通过HTTP客户端对PricingService的同步呼叫,以获取价格,并使用RabbitMQ使用RabbitMQ来发布有关新创建策略的信息的异步事件。在此服务中,我们还使用NHIBERNATE访问RDBMS。

  • 政策搜索服务– 提供保险政策搜索。
    该模块聆听RabbitMQ的事件,转换为“读取模型”的DTO和Elasticsearch中给定索引的索引,以提供高级搜索功能。

  • 定价服务– 一项负责根据其参数化计算给定保险产品价格的服务。
    对于每种产品,应定义关税。关税是一组规则,基于计算价格。 DynamiceXpresso用于解析规则。在政策购买过程中,政策服务与此服务连接以计算价格。价格是根据用户对定义问题的答案计算的。

  • 产品服务– 简单的保险产品目录。
    它提供有关每种保险产品及其参数的基本信息,这些信息可以在为客户创建报价时自定义。

  • 文档服务– 此服务使用JS报告生成PDF证书。

  • 仪表板服务– 列出销售统计信息的仪表板。
    呈现我们代理商销售结果的业务仪表板。仪表板服务订阅了Elasticsearch中销售政策和索引销售数据的事件。然后,Elasticsearch聚合框架用于计算销售统计数据,例如:每次产品的总销售额和每次产品的策略数量,给定时间段和销售时间表中的每个代理商销售。使用ChartJ可以很好地可视化销售统计数据。

每个业务微服务也都有.API项目(PaymentService.API,PolicyService.API等),我们在其中定义了使用单位和集成测试的命令,事件,查询和操作以及.test项目(Paymentservice.test,policyservice.test)。

与Docker一起跑步

您必须在撰写之前安装Docker&Docker。
脚本已分为两个部分:

  • Infra.yml运行必要的基础设施。
  • App.yml用于运行应用程序。

您可以使用脚本来构建/运行/停止/向下所有容器。

运行整个解决方案:

 cd scripts
./infra-run.sh
./app-run.sh

如果Elasticsearch无法启动,请尝试运行Sudo Sysctl -W VM.Max_map_count = 262144首先

启动应用程序和基础架构后,您可以在浏览器中打开http:// localhost:8080,并查看我们的欢迎页面。到达那里后,您可以使用帐户菜单项登录系统。有效的用户和密码可以在此处找到。例如,您可以使用密码管理员登录为管理员。

手动运行

先决条件

安装PostgreSQL版本> = 10.0。

安装兔子。

安装Elasticsearch版本> = 6。

初始数据库

视窗

 cd postgres
\" PATH_TO_PSQL.EXE \" --host \" localhost \" --port EXAMPLE_PORT --username \" EXAMPLE_USER \" --file \" createdatabases.sql \"

就我而言,此命令看起来像:

 cd postgres
\" C:\\Program Files\\PostgreSQL\\9.6\\bin\\psql.exe \" --host \" localhost \" --port 5432 --username \" postgres \" --file \" createdatabases.sql \" 

Linux

sudo -i -u postgres
psql --host \" localhost \" --port 5432 --username \" postgres \" --file \" PATH_TO_FILE/createdatabases.sql \"

此脚本应创建LAB_USER用户和以下数据库:lab_netmicro_payments,lab_netmicro_jobs,lab_netmicro_policy和lab_netmicro_pricing。

运行尤里卡

我们项目的服务注册表和发现工具是Eureka。它包含在项目中。为了启动打开终端 /命令提示。

 cd eureka-server
./gradlew.[bat] bootRun

这应该启动Eureka,您应该可以访问http:// localhost:8761/,然后参见eureka管理面板。

建造

在没有测试的情况下从命令行构建所有项目:

视窗

 cd scripts
build-without-tests.bat

Linux

 cd scripts
./build-without-tests.sh

通过测试从命令中构建所有项目:

视窗

 cd scripts
build.bat

Linux

 cd scripts
./build.sh

运行特定的服务

使用特定服务(PolicyService,Productservice等)转到文件夹,然后使用Dotnet Run命令。

下载源码

通过命令行克隆项目:

git clone https://github.com/asc-lab/dotnetcore-microservices-poc.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 开发教程 dotnetcore microservices poc https://www.zuozi.net/31709.html

ImGui.NET
上一篇: ImGui.NET
AspectCore Framework
下一篇: AspectCore Framework
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务