1. 一行代码让你的项目轻松使用Dapr

1. 一行代码让你的项目轻松使用Dapr

介绍

Dapr简化了云原生开发,让开发可以把焦点放在应用的业务逻辑上,从而让代码简单、可移植,那作为一个.Net开发者,我们也希望项目可以快速用上dapr,那究竟应该如何做呢?

Dapr提出了Sidecar(边车)的概念,在启动项目时再额外启动一个Sidecar, 通过Sidecar可以解决进程间通信,为此官方提供了两种部署方式

  1. 自托管方式下运行Dapr
  2. 在 Kubernetes 模式中部署和运行 Dapr

其中Kubernetes模式部署是通过Kubernetes来完成的,在开发中我们更多的是通过自托管模式使用Dapr,那自托管模式是怎么做的呢?

使用命令行工具,在项目根目录输入:

1
dapr run --app-id assignment-server --app-port 5038 dotnet run

详细文档参考:手把手教你学Dapr - 3. 使用Dapr运行第一个.Net程序

参考以上详细文档操作后,我们就可以在命令行工具中执行dapr invoke --app-id assignment-server --method hello或者Http请求来调用对应的应用的方法

看似好像也不是很复杂,但如果你需要调试dotnet项目呢?再复杂一点的需要启动多个项目进行调试呢?端口一多起来的确会显得很麻烦。

有没有什么办法可以解决呢?有,docker-compose。

但我还不想用这么重的东西,我想像平时开发项目一样直接在windows上运行可不可以?

阅读更多
2. 让服务调用更简单 - Caller.HttpClient

2. 让服务调用更简单 - Caller.HttpClient

前言

绝大多数项目都离不开服务调用,服务的调用方式通常是基于Http、RPC协议的调用,需要获取到对应服务的域名或者ip地址以及详细的控制器方法后才能进行调用,如果项目需要支持分布式部署,则需要借助服务发现或者Nginx才能实现。

但随着Dapr的崛起,服务的调用方式也发生了变化,它不仅仅提供了处理重试和瞬态错误等功能,还内置服务发现,启用dapr的服务仅需知道任意一个启用dapr服务的HttpPort端口、gRpc端口、以及对应服务的appid以及对应的方法名称就可以完成调用,dapr的出现使得服务间调用变得更为的简单、方便

目前我们有一个项目是Dapr的,但它所依赖的另外一个项目是基于Http协议的调用,目前只能使用HttpClientRestSharp实现服务间的调用,但未来有一天它会使用Dapr,因为我们计划会把所有的项目都逐步升级到Dapr上

阅读更多
7. 堪比JMeter的.Net压测工具 - Crank 总结篇 - crank带来了什么
6. 堪比JMeter的.Net压测工具 - Crank 实战篇 - 收集诊断跟踪信息与如何分析瓶颈

6. 堪比JMeter的.Net压测工具 - Crank 实战篇 - 收集诊断跟踪信息与如何分析瓶颈

1. 前言

上面我们已经做到了接口以及场景压测,通过控制台输出结果,我们只需要将结果收集整理下来,最后汇总到excel上,此次压测报告就可以完成了,但收集报告也挺麻烦的,交给谁呢……

找了一圈、没找到愿意接手的人,该怎么办呢……思考了会儿还是决定看看能否通过程序解决我们的难题吧,毕竟整理表格太累╯﹏╰

阅读更多
5. 堪比JMeter的.Net压测工具 - Crank 实战篇 - 接口以及场景压测
4. 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识wrk、wrk2
3. 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识bombardier
2. 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识yml
1. 堪比JMeter的.Net压测工具 - Crank 入门篇

1. 堪比JMeter的.Net压测工具 - Crank 入门篇

1. 前言

Crank 是.NET 团队用来运行基准测试的基准测试基础架构,包括(但不限于)来自TechEmpower Web 框架基准测试的场景,是2021年.NET Conf 大会上介绍的一项新的项目,其前身是Benchmarks

Crank目标之一是为开发人员提供一种工具,让他们能够非常轻松地处理性能并衡量潜在的改进。其中一些功能是:

  • 部署和基准测试基于 .NET 或 Docker 容器的多层应用程序

    通过指定.Net项目(本地路径或git远程仓库地址),支持直接部署或通过Docker部署应用程序,用于基准测试)

  • 通过Yml配置,不仅仅支持结果存储在 JSON 、SQL Server 中还支持存储到csv文件中以用于图表

    目前有小伙伴已经在提议将支持存储在es

  • 支持更改自定义应用程序的Franework环境,测试在不同环境下的性能
  • 收集诊断跟踪信息
阅读更多
.Net Minimal API 介绍

.Net Minimal API 介绍

Minimal APIs 是.Net 6 中新增的模板,借助 C# 10 的一些特性以最少的代码运行一个 Web 服务。本文脱离 VS 通过 VS Code,完成一个简单的 Minimal Api 项目的开发。

阅读更多