- 博客(115)
- 资源 (2)
- 收藏
- 关注
原创 .NET DevOps 接入指南 | 1. GitLab 安装
引言容器、DevOps和微服务被称为驱动云原生快速发展的三架马车。而DevOps是其中非常重要的一环,DevOps 是由Developers(Dev)和Operations(Ops)两个单词简称组成,中文直译就是“开发运维一体化”。DevOps 作为一种复杂的软件工程方法,推行实施并不可一蹴而就。因此采用好的平台工具,方能事半功倍,Gitlab作为一款成熟开源的一体化DevOps平台,其覆盖了D...
2023-12-28 12:35:29
1075
原创 Semantic Kernel 知多少 | 开启面向AI编程新篇章
引言在ChatGPT 火热的当下, 即使没有上手亲自体验,想必也对ChatGPT的强大略有耳闻。当一些人在对ChatGPT犹犹豫豫之时,一些敏锐的企业主和开发者们已经急不可耐得开展基于ChatGPT模型AI应用的落地探索。因此,可以明确预见的是,「AI 能力的集成将会是很多应用都将面临的第一事项」,而拥有相关性技能的人才屈指可数。而这,正是机会所在,而机会是留给有准备之人,因此,有幸看到本文的开发...
2023-04-07 07:41:12
352
转载 与 AI 结对编程 & GitHub Copilot X & 生成代码和测试 & 修复Bug & 重构
GitHub Copilot 使用了 OpenAI 的 GPT-4 模型,结合 GitHub 上开源的大量代码库,从而能够根据用户输入的提示和信息,为程序员生成符合预期的代码。前不久微软宣布发表新一代的GitHub Copilot X,相比于上一代性能和能力又有了进一步的提升。GitHub Copilot X 可以更快地编写代码,提高开发效率,同时减轻开发者的负担,让他们能够把更多时间和精力投入到...
2023-04-01 16:34:15
380
原创 配置中心 | 集成 Nacos 配置中心(视频)
引言在微服务时代,通常为了提高服务性能而部署多个服务实例,而每个服务的实例都有自己的配置,如果想要更新某个配置,则需要更新每个实例的配置,如果微服务数量不多,尚且可以手动更新,但倘若服务数量较多,则手动更新不仅繁杂而且容易出错。而配置中心,就是来解决这个问题,配置中心可以有效帮助开发者更快捷地更新和管理配置,减少因配置错误而导致的服务中断,从而提高系统的可用性和可靠性。在开源生态中...
2023-03-06 19:19:46
126
原创 .NET 使用NLog增强日志输出
引言不管你是开发单体应用还是微服务应用,在实际的软件的开发、测试和运行阶段,开发者都需要借助日志来定位问题。因此一款好的日志组件将至关重要,在.NET 的开源生态中,目前主要有Serilog、Log4Net和NLog三款优秀的日志组件,但相较而言,NLog功能更加强大且扩展性强,允许开发者在仅修改配置文件的方式来丰富日志输出内容,支持多种日志格式,包括XML、JSON、YAML等,支持多种输出目标,包括文件、数据库、控制台、Loki、ElasticSearch等,支持自定义日志格式,支持日志级别,支持异步
2023-03-01 21:26:20
1449
原创 分布式事务 | 使用 DTM 分布式事务管理器(视频)
以下视频将重点介绍DTM Saga 模式和二阶段消息模式的应用。DTM是如何处理分布式事务的呢?以一个经典的跨行转账业务为例来看下事务处理过程。对于跨行转账业务而言,很显然是跨库跨服务的应用场景,不能简单通过本地事务解决,可以使用Saga模式,以下是基于DTM提供的Saga事务模式成功转账的的时序图:从以上时序图可以看出,DTM整个全局事务分为如下几步:用户定义好全局事务所有的事务分支(全局事务的...
2023-03-01 07:57:24
206
2
原创 分布式事务 | 使用DTM 的Saga 模式
❝分布式事务系列文章分布式事务| 使用 dotnetcore/CAP 的本地消息表模式分布式事务 | 基于MassTransit的StateMachine实现Saga编排式分布式事务分布式事务 | 基于MassTransit Courier 实现 Saga 编排式分布式事务DTM 简介前面章节提及的MassTransit、dotnetcore/CAP都提供了分布式事务的处理能力,但也仅局限于S...
2023-02-09 07:42:40
275
原创 分布式事务| 使用 dotnetcore/CAP 的本地消息表模式
本地消息表模式本地消息表模式,其作为柔性事务的一种,核心是将一个分布式事务拆分为多个本地事务,事务之间通过事件消息衔接,事件消息和上个事务共用一个本地事务存储到本地消息表,再通过定时任务轮询本地消息表进行消息投递,下游业务订阅消息进行消费,本质上是依靠消息的重试机制达到最终一致性。其示意图如下所示,主要分为以下三步:本地业务数据和发布的事件消息共享同一个本地事务,进行数据落库,其中事件消息持久化到...
2023-01-29 13:04:00
615
原创 Goodbye 2022,Welcome 2023 | 锁定 2023
引言又是一年春来到,新年应比旧年好。旧岁已辞,新年已到,新旧更迭之际,真想剪个头发换身行头,就能重新出发。但终究是要回头看看啊,那一路而来的荆棘与芬芳,才是成长的印记啊。那就回拨记忆,看看那些信誓旦旦的Flag,该打几分?谈健康三十来岁的年龄,正是意气风发,正午阳光,但怎奈乌云蔽日,身体毫无征兆的亮了红灯,将一切美好的遐想定格在2021年12月5日。这一年,十分之一的时间躺在病床上,五分之一的时间...
2023-01-15 16:30:47
387
原创 MassTransit | 基于StateMachine实现Saga编排式分布式事务
什么是状态机状态机作为一种程序开发范例,在实际的应用开发中有很多的应用场景,其中.NET 中的async/await 的核心底层实现就是基于状态机机制。状态机分为两种:有限状态机和无限状态机,本文介绍的就是有限状态机,有限状态机在任何时候都可以准确地处于有限状态中的一种,其可以根据一些输入从一个状态转换到另一个状态。一个有限状态机是由其状态列表、初始状态和触发每个转换的输入来定义的。如下图展示的就...
2023-01-02 14:47:57
170
原创 MassTransit | 基于MassTransit Courier 实现 Saga 编排式分布式事务
Saga 模式Saga 最初出现在1987年Hector Garcaa-Molrna & Kenneth Salem发表的一篇名为《Sagas》的论文里。其核心思想是将长事务拆分为多个短事务,借助Saga事务协调器的协调,来保证要么所有操作都成功完成,要么运行相应的补偿事务以撤消先前完成的工作,从而维护多个服务之间的数据一致性。举例而言,假设有个在线购物网站,其后端服务划分为订单服务、支付...
2022-12-11 10:30:52
264
原创 MassTransit | .NET 分布式应用框架
引言❝A free, open-source distributed application framework for .NET. 一个免费、开源的.NET 分布式应用框架。 -- MassTransit 官网❞MassTransit[1],直译公共交通, 是由Chris Patterson开发的基于消息驱动的.NET 分布式应用框架,其核心思想是借助消息来实现服务之间的松耦合异步通信,进而确...
2022-10-23 19:50:37
506
原创 Dapr 知多少 | 分布式应用运行时
IntroDapr 官方团队已于最近(2021.1.17)正式发布Dapr v1.0,Dapr已正式生产可用,可以部署到自托管环境或 Kubernetes 集群。对于绝大多数开发者来说,想...
2021-02-20 12:19:40
4638
原创 Goodbye 2020,Welcome 2021 | 沉淀 2021
引言2021年,已开启二月的篇章,农历新年也张灯结彩而来,只不过要留守过年。在这辞旧迎新之际,踏入而立之年之时,正是算账的好时候,数一数今年的成长,讲一讲来年的期望,最重要的还是要理一理欠...
2021-02-04 18:46:05
252
原创 Istio 知多少 | 下一代微服务的守护者
1. 引言在写完eShopOnContainers 知多少[12]:Envoy gateways后,就一直想进一步探索Service Mesh,最近刚在极客时间上学完《Service M...
2021-01-10 17:52:15
369
原创 eShopOnContainers 知多少[12]:Envoy gateways
1. 引言在最新的eShopOnContainers 3.0 中Ocelot 网关被Envoy Proxy 替换。下面就来简要带大家了解下Envoy,并尝试梳理下为什么要使用Envoy...
2020-10-19 07:33:15
1122
原创 诊断日志知多少 | DiagnosticSource 在.NET上的应用
1. 引言最近为了解决ABP集成CAP时无法通过拦截器启用工作单元的问题,从小伙伴那里学了一招。借助DiagnossticSource,可以最小改动完成需求。关于DiagnosticSo...
2020-10-10 20:16:28
1039
原创 Orleans 知多少 | Orleans 中文文档上线
Orleans 简介Orleans是一个跨平台框架,用于构建健壮,可扩展的分布式应用程序Orleans建立在.NET开发人员生产力的基础上,并将其带入了分布式应用程序的世界,例如云服务。...
2020-08-29 22:48:03
4201
原创 .NET Core + K8S + Apollo 玩转配置中心
1.引言Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微...
2020-08-20 09:03:06
281
原创 .NET Core + K8S + Loki 玩转日志聚合
Grafana loki1. Intro最近在了解日志聚合系统,正好前几天看到一篇文章《用了日志系统新贵Loki,ELK突然不香了!》,所以就决定动手体验一下。本文就带大家快速了解下Lo...
2020-07-26 13:48:06
1491
原创 五分钟快速搭建Serverless免费邮件服务
1. 引言本文将带你快速基于 Azure Function 和 SendGrid 构建一个免费的Serverless(无服务器)的邮件发送服务,让你感受下Serverless的强大之处。...
2020-07-23 06:19:31
598
原创 eShopOnContainers 知多少[11]:服务间通信之gRPC
1. 引言最近翻看最新3.0 eShopOncontainers源码,发现其在架构选型中补充了 gRPC 进行服务间通信。那就索性也写一篇,作为系列的补充。2. gRPC老规矩,先来理一...
2020-07-10 13:13:38
305
转载 Orleans 源码分析:客户端连接的建立
转载自博客园:【Orleans开胃菜系列2】连接Connect源码简易分析--范存威https://www.cnblogs.com/fancunwei/p/9442469.html简...
2020-07-09 20:04:34
1060
原创 IO 模型知多少 | 代码篇
引言之前的一篇介绍IO 模型的文章IO 模型知多少 -- 理论篇比较偏理论,很多同学反应不是很好理解。这一篇咱们换一个角度,从代码角度来分析一下。socket 编程基础开始之前,我们先来...
2020-05-12 21:04:50
227
原创 IO 模型知多少
1. 引言同步异步I/O,阻塞非阻塞I/O是程序员老生常谈的话题了,也是自己一直以来懵懵懂懂的一个话题。比如:何为同步异步?何为阻塞与非阻塞?二者的区别在哪里?阻塞在何处?为什么会有多种...
2020-04-14 19:38:16
155
原创 ASP.NET Core 反向代理部署知多少
引言最近在折腾统一认证中心,看到开源项目[IdentityServer4.Admin:https://github.com/skoruba/IdentityServer4.Admin]集...
2020-03-01 10:28:39
474
原创 ASP.NET Core 借助 Helm 部署应用至 K8S
前言玩K8S也有一段时间了,借助云服务提供商的K8S控制台,已经可以很方便的快速部署应用至K8S。通过简单的点击,可以一次性帮忙创建K8S 对象:Deployment、Service、I...
2020-02-23 19:52:45
240
原创 Goodbye 2019,Welcome 2020 | 沉淀 2020
引言时间如梭,娃都可以打酱油了。转眼间第一个五年计划,已过了一半。年终总结是个打脸的好地方,曾经夸下的海口,有的真的成了海口。所幸,一切都在按好的方向发展。但乐观背后容易忽略潜...
2019-12-28 06:10:51
156
原创 Orleans 知多少 | 3. Hello Orleans
1. 引言是的,Orleans v3.0.0 已经发布了,并已经完全支持 .NET Core 3.0。所以,Orleans 系列是时候继续了,抱歉,让大家久等了。万丈高楼平地起,这一节我...
2019-10-28 09:22:46
303
原创 集群环境下,你不得不注意的ASP.NET Core Data Protection 机制
引言最近线上环境遇到一个问题,就是ASP.NET Core Web应用在单个容器使用正常,扩展多个容器无法访问的问题。查看容器日志,发现以下异常:System.Security.Cryp...
2019-10-11 11:36:26
413
转载 ASP.NET Core on K8S深入学习(9)Secret & Configmap
本篇已加入《.NET Core on K8S学习实践系列文章索引》,可以点击查看更多容器化技术相关系列文章。01—Secret关于Secret在应用启动过程中需要一些敏感...
2019-09-04 09:32:56
177
原创 .NET Core 使用 K8S ConfigMap的正确姿势
背景ASP.NET Core默认的配置文件定义在 appsetings.json和 appsettings.{Environment}.json文件中。这里面有一个问题就是,在使用容器部...
2019-09-04 09:32:56
396
原创 Orleans 知多少 | 2. 核心概念一览
Orleans 术语解读上面这张图中包含了Orleans中的几个核心概念:GrainSiloOrleans ClusterOrleans Client从这张图,我们应该能理清他们之间的关...
2019-07-20 14:40:03
246
原创 .NET分布式框架 | Orleans 知多少
引言公司物联网项目集成Orleans以支持高并发的分布式业务,对于Orleans也是第一次接触,本文就分享下个人对Orleans的理解。这里先抛出自己的观点:Orleans 是一个支持有...
2019-07-06 10:24:57
437
原创 eShopOnContainers 知多少[10]:部署到 K8S | AKS
1. 引言断断续续,感觉这个系列又要半途而废了。趁着假期,赶紧再更一篇,介绍下如何将eShopOnContainers部署到K8S上,进而实现大家常说的微服务上云。2. 先了解下 Hel...
2019-04-05 20:24:41
167
原创 ASP.NET Core 借助 K8S 玩转容器编排
Production-Grade Container Orchestration - Automated container deployment, scaling, and manag...
2019-03-22 12:16:22
190
原创 eShopOnContainers 知多少[9]:Ocelot gateways
引言客户端与微服务的通信问题永远是一个绕不开的问题,对于小型微服务应用,客户端与微服务可以使用直连的方式进行通信,但对于对于大型的微服务应用我们将不得不面对以下问题:如何降低客户端到后台...
2019-03-05 11:15:30
178
原创 响应式编程知多少 | Rx.NET 了解下
1. 引言An API for asynchronous programming with observable streams.ReactiveX is a combination ...
2019-02-19 09:16:14
154
dnSpy--.NET反编译调试神器
2018-12-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人