26 热度

Dapr + .NET Core实战(四)发布和订阅

发布订阅是一种众所周知并被广泛使用的消息传送模式,常用在微服务架构的服务间通信,高并发削峰等情况。但是不同的消息中间件之间存在细微的差异,项目使用不同的产品需要实现不同的实现类,虽然是明智的决策,但必须编写和维护抽象及其基础实现。 此方法需要复杂、重复且容易出错的自定义代码。Dapr为了解决这种问题,提供开箱即用的消息传送抽象和实现,封装在 Dapr 构建基块中。业务系统只需调用跟据Dapr的要求实现订阅发布即可。

收录时间: 2021-09-26
分类: .NET Core
贡献者: Rector
37 热度

.Net Core with 微服务 - 分布式事务 - 可靠消息最终一致性

前面我们讲了分布式事务的2PC、3PC , TCC 的原理。这些事务其实都在尽力的模拟数据库的事务,我们可以简单的认为他们是一个同步行的事务。特别是 2PC,3PC 他们完全利用数据库的事务能力,在一阶段开始事务后不进提交会严重影响应用程序的并发性能。TCC 一阶段虽然不会阻塞数据库,但是它同样是在尽力追求同时成功同时失败的一致性要求。但是在很多时候,我们的应用程序的核心业务为了追求更高的性能、更高的可用性,可以允许在一段时间内的数据不一致性,只需要在最终时刻数据是一致就可以了。基于以上场景我们可以采用基于可靠消息服务的最终一致性分布式事务处理方案。

收录时间: 2021-09-23
分类: .NET Core
贡献者: Rector
59 热度

.net Core 基于EF Core 实现数据库上下文

在做项目时,需要将某一些功能的实体建立在另一个数据库中,连接不同的数据库用以存储记录。通过查找资料,实现EF Core上下文。

收录时间: 2021-09-17
分类: .NET Core
贡献者: Rector
121 热度

RabbitMQ从零到集群高可用(.NetCore5.0) - RabbitMQ简介和六种工作模式详解

RabbitMQ是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,RabbitMQ是使用Erlang(高并发语言)语言来编写的,并且RabbitMQ是基于AMQP协议的。1.1 AMQP协议Advanced Message Queuing Protocol(高级消息队列协议)1.2 AMQP专业术语:(多路复用->在同一个线程中开启多个通道进行操作)Server:又称broker,接受客户端的链接,实现AMQP实体服务Connection:连接,应用程序与broker的网络连接Channel:网络信道,几乎所有的操作都在channel中进行,Channel...

收录时间: 2021-08-26
分类: .NET Core
贡献者: Rector
96 热度

Implement a Cross-Platform Apache Kafka Producer and Consumer with C# and .NET

Sometimes you’d like to write your own code for producing data to an Apache Kafka® topic and connecting to a Kafka cluster programmatically. Confluent provides client libraries for several different programming languages that make it easy to code your own Kafka clients in your favorite dev environment. One of the most popular dev environments is .NET and Visual Studio (VS) Code. This blog post shows you step by step how to use .NET and C# to create a client application that streams Wikipedia edit events to a Kafka topic in Confluent Cloud. Also, the app consumes a materialized view from ksqlDB that aggregates edits per page. The application runs on Linux, macOS, and Windows, with no code changes.

收录时间: 2021-08-25
分类: .NET Core
贡献者: Rector
95 热度

How to Create a new Solution and Projects using dotnet CLI

I create a lot of samples, demos, open source projects, etc. and I like to use the fairly standard repository layout of having a solution file in the root and project files in a src subfolder. Achieving this in Visual Studio is tedious, but fortunately this series of dotnet CLI commands quickly create the structure for you.

收录时间: 2021-08-18
分类: .NET Core
贡献者: Rector
AD 友情赞助
128 热度

ELK+kafka docker快速搭建+.NetCore中使用

ELK开源实时日志分析平台。ELK是Elasticsearch,Logstash,Kibana 的缩写。Elasticsearch:是个开源分布式搜索引擎,简称ESLogstash:是一个完全开源的工具,可以对日志进行收集,过滤,存储到ESKibana: 也是一个开源和免费的工具,这里主要用作ES的可视化界面工具,用于查看日志。环境:centos7.9一、搭建ES先要调高jvm线程数限制,修改sysctl.confvim /etc/sysctl.conf修改max_map_count调大,如果没有这个设置,则新增一行vm.max_map_count=262144改完保存后, 执行下面命令让...

收录时间: 2021-08-16
分类: .NET Core
贡献者: Rector
132 热度

.NetCore+Envoy+Id4+Dapr+EFCore 构建微服务之Envoy

.NetCore比较流行的微服务应该时是用Ocelot的方式构建微服务,纯配置化,开发量也比较小。但是做过一些项目之后发现这个方式不是很适合,首先它比较笨重,其次不支持gRpc和webSocket通信,最重要是它只适用于.NetCore,如果设计到其他语言如Java和Go就歇菜了。     终于曙光来了,随着Dapr的诞生,微软在开源的基础上有迈出了重要的一步,有人要问了,什么是Dapr,这个后续章节我会着重介绍,简单来说就是可以跨语言协同开发微服务。今天我们介绍一下一个轻量级的网关服务:Envoy,它是专为大型现代 SOA(面向服务架构)架构设计的 L7 代理和通信总线,体积小,性能高...

收录时间: 2021-08-13
分类: .NET Core
贡献者: Rector
135 热度

ASP.NET Core Middleware - Creating Flexible Application Flows

ASP.NET Core Middleware is software integrated inside the application’s pipeline that we can use to handle requests and responses. When we talk about the ASP.NET Core middleware, we can think of it as a code section that executes with every request. In this article, we are going to learn more about the ASP.NET Core middleware and how to use different methods (Run, Map, Use) during the configuration. Additionally, we are going to explain the process of creating custom middleware.

收录时间: 2021-08-10
分类: .NET Core
贡献者: Rector
96 热度

Solid Principles with C# .NET Core - Easy to understand guide

In this article we will learn about Solid Principles with C# .NET Core, why do we need them and when or where we should apply these principles in our code. I will also try to cover some actual real-world examples where these principles can be useful and applied.

收录时间: 2021-08-09
分类: .NET Core
贡献者: Rector
93 热度

Monitor Containerized ASP.NET Core Applications With Datadog APM

Datadog’s .NET tracer uses the .NET profiling APIs to add out-of-the-box instrumentation for many common libraries and programming languages used for both .NET Core and .NET frameworks, including VB.NET, C#, and F#. Once instrumented, your application will automatically send traces to the Datadog Agent, which aggregates and enhances them with additional metadata from the host before forwarding them to Datadog. For full details on the .NET tracer, check out our documentation.

收录时间: 2021-08-09
分类: .NET Core
贡献者: Rector
134 热度

.Net Core with 微服务 - Polly 服务降级熔断

在我们实施微服务之后,服务间的调用变的异常频繁。多个服务之间可能是互相依赖的关系。某个服务出现故障或者是服务间的网络出现故障都会造成服务调用的失败,进而影响到某个业务服务处理失败。某一个服务调用失败轻则造成当前相关业务无法处理;重则可能耗尽资源而拉垮整个应用。为了尽可能的保证我们生产环境的可用性,至少是部分可用性我们就需要一些策略来保护我们的服务。

收录时间: 2021-07-24
分类: .NET Core
贡献者: Rector
169 热度

重新整理 .net core 实践篇————配置中心[四十三]

简单整理一下配置中心。什么时候需要配置中心? 多项目组并行协作 运维开发分工职责明确 对风险控制有更高诉求 对线上配置热更新有诉求 其实上面都是套话,如果觉得项目不方便的时候就需要用配置中心了。 apollo 配置中心系统的能力: 权限与审计 版本管理 热更新 原生支持java和.ne ...

收录时间: 2021-07-13
分类: .NET Core
贡献者: Rector
190 热度

Locked Files When Publishing .NET Core Apps to IIS with WebDeploy

If you still use IIS on a physical box to host Web Applications (as I do) and you're creating .NET Core applications and deploy them via Microsoft's Web Deploy you've likely run into this problem: When you publish the first time everything everything is fine - the app distributes and it properly publishes and starts up fine. However, when you re-publish after the app's been running and you publish again you find that the publish process fails due to locked files. The publish process gets half way through, then fails on one of the dll files as they are sent to the server.

收录时间: 2021-06-22
分类: .NET Core
贡献者: Rector
251 热度

十七、.net core(.NET 6)搭建基于Quartz组件的定时调度任务

.NET Core(.NET 6)搭建基于Quartz组件的定时调度任务

收录时间: 2021-06-21
分类: .NET Core
贡献者: Rector
AD 友情赞助
174 热度

.Net Core with 微服务 - Consul 注册中心

上一次我们介绍了 Ocelot 网关的基本用法。这次我们开始介绍服务注册发现组件 Consul 的简单使用方法。服务注册发现首先先让我们回顾下服务注册发现的概念。在实施微服务之后,我们的调用都变成了服务间的调用。服务间调用需要知道IP、端口等信息。再没有微服务之前,我们的调用信息一般都是写死在调用方的配置文件里(当然这话不绝对,有些公司会把这些信息写到数据库等公共的地方,以方便维护)。又由于业务的复杂,每个服务可能依赖N个其他服务,如果某个服务的IP,端口等信息发生变更,那么所有依赖该服务的服务的配置文件都要去修改,这样显然太麻烦了。有些服务为了负载是有个多个实例的,而且可能是随时会调整实例的...

收录时间: 2021-06-18
分类: .NET Core
贡献者: Rector
180 热度

Quick Noda Time Conversions

Noda time makes working with timezones, well not a snap but better than dental surgery. A TzDB timezone is one that looks like America/Edmonton or, one might presume Mars/OlympusMons...

收录时间: 2021-06-18
分类: .NET Core
贡献者: Rector
258 热度

WinUI 3学习笔记(1)—— First Desktop App

随着Visual Studio 2019 16.10版本的正式发布,创建WinUI 3的APP对我们来说,已不存在任何的难度。本篇我们就试着来一探究竟,看看WinUI 3 APP到底是个啥玩意,能不能重振Windows桌面开发。 首先让我们把Visual Studio更新到16.10版本,16.10版本不仅全面支持热重载、实时可视化树和实时属性资源管理器。同时也不再需要修改Project文件,以修正 .NET SDK 和 winrt.runtime.dll 的版本不匹配的问题。

收录时间: 2021-06-16
分类: .NET Core
贡献者: Rector
204 热度

.NET Core 服务在 ARM64 服务器中的部署

Linux 服务器 CPU 架构主要可分为:X86_64/AMD64、ARM64/AARCH64 两大类,大多情况使用的都是基于 AMD64 CPU 架构的服务器。但随着国产操作系统、CPU 等自主生态打造的应用产品得到越来越多的用户认可和应用,如:华为鲲鹏、统信 UOS 这类服务器不断被采购使用,而它们均有采用 ARM64 CPU 架构,所以 .NET 程序如果需要在更多的国产服务器中运行,适配 ARM64 CPU 架构将是开始的第一步。 本文的介绍并不是一个简单的 Demo 示例,而是基于一个较大项目适配 ARM64 架构改造的经验分享。

收录时间: 2021-06-11
分类: .NET Core
贡献者: Rector
256 热度

.Net RabbitMQ实战指南——客户端开发

开发中关键的Class和Interface有Channel、Connection、ConnectionFactory、Consumer等,与RabbitMQ相关的开发工作,基本上是围绕Connection和Channel这两个类展开的。连接RabbitMQ一个Connection可以创建多个Channel实例,但Channel实例不能在线程间共享,应用程序应该为每一个线程开辟一个Channel。 Channel或者Connection中有个isOpen方法可以用来检测其是否已处于开启状态。但并不推荐使用,这个方法的返回值依赖于shutdownCause的存在,有可能会产生竞争。更多的是捕获Sh...

收录时间: 2021-06-07
分类: .NET Core
贡献者: Rector
AD 友情赞助