自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 [GitOps]微服务版本控制:使用ArgoCD 部署Grafana Loki

本文将介绍GitOps的基本原理以及ArgoCD的安装与使用;ArgoCD部署Grafana Loki 到k8s集群;并且介绍了如何让ArgoCD管理它自己。

2023-08-16 21:51:15 1550 2

原创 Istio Ambient Mesh L4: 剖析ztunnel组件的工作原理

Ambient Mesh是Istio目前正在研发的一种无Sidecar模式的高性能服务网格。本文先简介了 Istio Ambient Mesh与Sidecar模式的区别,再到Istio网络管理机制的底层实现,最后介绍ztunnel组件的工作方式,以及Istio零信任安全机制等。

2023-05-13 19:10:43 871

原创 .NET如何开发kubernetes CRD Controller

为什么说标准API才是K8s最具价值的地方?什么是k8s CRD?CRD可以用来做什么?怎样用C#实现K8s CRD扩展功能?

2023-02-12 13:50:10 607

原创 深入理解Kubernetes探针和.NET服务健康检查机制

本博客深入介绍.NET框架的健康检查和Kubernetes的探针结合应用,解决微服务架构中的技术挑战。详细示例和最佳实践可在我的Azure仓库中找到。

2024-01-23 00:23:06 1127 1

原创 答疑解惑:核技术利用辐射安全与防护考核

最近通过了《核技术利用辐射安全与防护考核》,顺利拿到了合格证。这是从事与辐射相关行业所需要的一个基本证书,考试并不难,在此写篇博客记录一下主要的知识点。需要这个证书的行业常见的有医疗方面的,如放疗,CT,X射线采图,具有放射性的药物等,另外还有工农业核技术应用等。作为一名IT人员,我选择考试的类别是《科研生产及其他》,该类别只需要考试公共科目:法律与辐射基础,相对来说比较简单。其中,物理部分都是中学知识与辐射常识,学习起来比较简单;而法律和辐射行业知识是需要着重学习的部分。

2024-01-08 23:50:36 1621 1

原创 认识.NET Aspire:高效构建云原生应用的利器

.NET Aspire是一个独立的云原生应用开发框架,使开发者无需处理底层实现细节,而是交给Aspire处理服务之间的复杂关系。核心概念包括资源和组件,其中组件提供了一系列精心挑选的NuGet包,简化了健康检查、可观察性、遥测和弹性配置。Aspire还集成了OpenTelemetry SDK,支持仪表板提供全面的应用监视和检查。

2023-11-19 20:38:32 2787 2

原创 [E2E Test] Python Behave Selenium 一文学会自动化测试

本文将使用Python Behave与Selenium,和同学们一起认识自动化测试,并附上完整的实践教程。

2023-09-03 21:11:40 1153 2

原创 答疑解惑:微服务程序中潜在的性能陷阱

本文是为了介绍一些非常明显,但又容易被忽视的性能陷阱,也可以叫做程序设计缺陷。这些陷阱可能会导致系统整体资源占用增加,或者程序响应缓慢,或者影响程序横向扩展或纵向扩展能力,甚至会导致系统崩溃。了解这些问题有助于编写高质量的代码,并且可以帮助开发者更容易的学习系统设计的高级概念。

2023-07-29 11:59:26 318 1

原创 答疑解惑:开发者必须彻底搞懂的 SSL/TLS 协议

本期答疑解惑将和大家一起认识SSL/TLS 协议。使用浏览器访问https网站和http网站有什么不同?SSL协议作用于网络模型的哪一层?你知道CSDN,博客园正在使用的是什么类型的SSL证书吗?SSL,TLS, mTLS之间是什么关系?前面说过,在TLS握手阶段:服务器将发送TLS证书给客户端,并可能要求客户端也提供证书。要求客户端也必须提供证书的TLS被称为双向TLS认证,也就是mTLS。客户端证书通常由企业内部CA颁发,以确保证书的可信度。

2023-05-07 01:21:47 995

原创 如何在开发阶段保证软件工程质量 (程序员要做些什么)

大家常说:“代码和人,有一个能跑就行”,但这并不意味着我们可以放弃职业道德。与土木工程一样,软件工程也需要一些可度量的指标来衡量产品的交付质量。一个高质量的软件绝对不能只靠测试人员来保证,更不能相信程序员自己立下的“军令状”。

2023-04-21 21:17:35 1454

原创 Ambassador Telepresence:在k8s集群中调试本地代码

带你了解k8s调试工具Telepresence的工作原理与实际应用,包括Traffic Manager与Traffic Agent、Telepresence Daemons、Preview URL和VIF。另外,还将Telepresence与Bridge to Kubernetes做了对比

2023-04-09 11:34:54 730

原创 一文带你认识Kubernetes中的非根容器:non-root containers

非根容器指的是不以root权限运行的容器,它可以更严格的限制程序运行权限,保障程序运行安全。

2023-04-02 01:31:20 633

原创 Visual Studio 高级调试-企业版三大特性

Visual Studio企业版订阅价格为每月250美元,很多同学想知道企业版有哪些特别的功能,让我们一起简单认识下

2023-03-05 17:44:44 1569 6

原创 Visual Studio 高级调试-Dump分析

dump分析命令非常复杂且低效,借助Visual Studio我们可以更加高效的分析dump所记录的数据。

2023-02-19 01:51:01 5500

原创 Visual Studio 高级调试-代码调试

编程圈子里隔三差五的就会有场“谁是最强IDE”之争,重要的是我们需要对使用的IDE有充分的了解,正所谓工欲善其事,必先利其器。本文主要讲述Visual Studio常用的调试技巧,包括多类型断点,数据监视,以及多线程调试等。调试就好比中医所讲的“望闻问切”,观察现象,思考原因,查看代码,调试是最后一步。

2023-02-18 15:33:51 3555

原创 答疑解惑:开发者必须了解的Unicode和字符编码系统

无论在什么情况下,不清楚编码方式的字符串是没有意义的,计算机没有“纯文本”这种概念。

2022-12-20 20:23:09 611

原创 [Camunda BPMN进阶] 电商订单流程设计与调试

假如你是希望学习BPMN,或者想通过集成Camunda来做工作流引擎,那么收藏这篇博客应该就足够了。因为我会介绍BPMN当中最重要的一些元素,而且还附加了完整BPMN设计源文件和Camunda RESTApi的Postman脚本。

2022-12-03 01:34:25 1550

原创 k8s Container资源控制: requests和limits

如何在创建 Pod 时为Container设置合适的资源请求与限制?

2022-11-04 23:23:57 3921

原创 4. 搭建Helm Charts Registry,在Azure Pipeline中使用GitVersion打包并推送Chart

完整的Helm Chart仓库和azure pipeline搭建流程,使用GitVersion自动生成pr,alpha,release等多种版本Chart并自动推送。

2022-10-16 23:30:42 604

原创 3. Visual Studio Bridge to Kubernetes-附加到k8s集群调试

使用Visual Studio插件"Bridge to Kubernetes", 直接附加到k8s Cluster中调试应用程序。

2022-09-17 22:09:20 944

原创 2.Helm Template Ingress的使用

书接上文,为大家介绍下如何在Helm Template中开启ingress,以及主要的几个yaml文件。

2022-09-17 17:42:57 881

原创 1. Helm Template 3分钟将项目部署至k8s

k8s部署写yaml很烦人?helm template 3分钟帮你把项目打包成Helm Chart并部署至k8s

2022-09-17 13:13:17 345

原创 你知道什么是IDisposable的最佳实现吗

​最近写代码遇到了一个code smellCA1063: Implement IDisposable correctly提示我应该正确实现Dispose模式。什么是IDisposable接口的最佳实现呢?GC过程到底有哪些需要我们注意细节?让我们一起来认识一下C# CLR的内存管理机制与GC原理。......

2022-08-13 11:06:13 836

原创 K8s 删除控制与GC原理

使用OwnerReferences和Finalizers做资源删除控制,并介绍k8s GC原理

2022-07-25 20:51:32 1300

原创 .NET 测试框架 xUnit,MSTest, Specflow 使用经验汇总

一文介绍.NET 测试框架 xUnit,MSTest, Specflow 的使用与经验汇总,附代码示例。

2022-07-23 21:21:50 1092

原创 BPMN 子流程Subprocess——Camunda Workflow

详细的Camunda实践教程,快速了解BPMN中子流程Subprocess,以及特定Events的用法。

2022-04-17 19:24:19 3132

原创 BPMN Events——Camunda Workflow开发实践

前言我在前面详细的介绍了几种网关和任务,其中的排他网关,并行网关,包容网关都属于基于数据的网关(Data-based inclusive gateways),它们必须依赖现有的条件做出选择。BPMN Process Token与Gateway——Camunda Workflow 开发实践_郭麻花的博客-CSDN博客在上篇博客的末尾,我介绍了一种无法结束Workflow Instance的情况,那种情况应如何解决呢。这次,我主要来介绍一些基于事件的网关,BPMN当中事件主要分为两类,Catchin

2022-04-05 21:41:51 1228 2

原创 BPMN Process Token与Gateway——Camunda Workflow 开发实践

Process TokenProcess Token 是BPMN当中的一个理论概念,它像是能唤醒Activity的灵魂。起源每个Process Token都起源于Start节点,当我们开始一个Process时,它的Process Token就创建出来了。不同于身份认证当中的Token,Process Token不包含任何信息。如下图所示,当StartProcess之后,一个蓝色的1便出现在了Task A 的左下角,这是Camunda为Process Token做的可视化。Acti.

2022-03-12 21:03:31 1222

原创 Camunda Workflow BPMN 入门开发实践

Camunda可以带给我们一种全新的程序设计理念。它将程序分为两种:Task和Process。Task只提供服务,Process只负责流程,它俩彼此并不知道且不关心对方的存在,实现了业务流程与代码的解耦。

2022-03-08 21:26:07 4062

原创 C# 中Dictionary源码详解

Dictionary上篇文章介绍了HashTable的实现原理,Dictionary与其大不相同。Dictionary使用拉链法解决哈希冲突,HashTable使用Double Hash。 Dictionary是泛型类型,对于值类型和引用类型的key,Hash比较器是不同的。 Dictionary再resize的时候可能会使用新的随机Hash比较器。构造函数Dictionary内部维护了两个非常重要的数组,它们是拉链法的实现基础。private int[]? _buckets;p.

2021-10-13 14:58:52 763

原创 C# 中Hashtable 源码详解

HashTable并不是泛型类型,使用object类型会给值类型带来装箱拆箱的压力。构造函数HashTable内部维护了一个桶数组,一个桶可以保存一组键值对。桶数组在初始化时,容量并不一定等于传入的capacity值, 而是会选择一个小于该值的最大质数作为数组大小。同样的,在进行扩容时,也是先按目前大小×2,然后选择一个小于该结果的最大质数作为新数组容量。为什么哈希表的大小要用质数呢?主要是因为一般采用模运算来获取元素存放地址:index = hashcode % length。.

2021-10-13 08:42:18 524 1

原创 阿里云 链路追踪在.NET项目中使用(jaeger trace)

链路追踪是微服务体系当中很重要的一部分,它能够帮助开发者迅速发现问题,察觉系统性能瓶颈,也可以帮助我们在站点出现大量Exception的时候,迅速做出预警等。阿里云链路追踪服务阿里云提供OpenTelemetry Trace数据的原生接入方式:通过OpenTelemetry接入C# Trace 也可以通过SkyWalking、Jaeger、Zipkin等方式接入 Trace实例可以与阿里云日志服务进行绑定(通过project,logstore, 以及索引字段)。接入trace...

2021-09-13 15:20:26 917

原创 阿里云 日志服务在.NET项目中的使用

云服务技术的应用已十分常见,不仅仅指将项目部署在公有云,我们还可以利用云服务厂商提供的各种技术,来提高系统性能,做好站点监控预警等。本篇博客为大家介绍阿里云日志服务。传统日志记录我们可能会在项目数据库当中创建一些日志表,比如:客户信息查看记录,核心信息修改日志等。通常这些日志内容价值较低,而且属于只读,但是存放在sql server, my sql, pgsql等数据库当中,不仅会占用大量系统资源,而且伴随着数据量的增加,查询效率也会降低,并且可能需要dba定期清理维护等。云日志...

2021-09-13 11:52:31 568 2

原创 C#&.NET 使用RabbitMQ实现一个分布式事件总线(二)

在上文我们介绍了本地事件总线的一个简单实现,这次我们通过借助RabbitMQ, 来完成分布式事件总线的设计。代码仓库:MaH.EventBusNuget: Install-Package MaH.EventBus -Version 0.7.0设计思路我希望可以通过指定 交换器名称、接收队列名称、连接信息,自动创建MQ连接与基础内容建设,以此来简化使用。当然,对于单纯的生产者来说,队列名称不是必须的,因此AddRabbitMq()方法提供了重载。 public void ConfigureServ

2021-05-13 21:24:49 847 1

原创 C#&.NET 从0实现一个分布式事件总线(一)

事件总线可以从系统全局角度,提供一套发布订阅机制。使用过ABP框架开发,或者学习过DDD的同学,应该了解到事件总线有着诸多好处,更能给我们带来编程思想上的提高。源码&Nuget我通过学习一些开源组件库,并且从自身使用经验出发,从0设计了一个基于RabbitMq的分布式事件总线,大家可以到我的Azure Devops仓库查看源码。并且我将其发布为了Nuget包,可以供大家安装使用Install-Package MaH.EventBus -Version 0.7.0我们...

2021-05-13 20:36:22 1079

原创 Blazor WebAssembly 集成Ocelot网关顺带解决跨域问题

Blazor WebAssembly集成Ocelot网关顺带解决跨域问题我们知道跨域请求通常会被浏览器所拦截。这是浏览器提供的一种安全机制,即不允许一个域名下的脚本去请求另一个域名的数据。请注意此处使用的是Blazor WebAssembly 的ASP.NET Core hosted模式,即模板具有Client,Server,Share三个项目。问题描述在blazor应用开发中我便遇到了这样的问题,我的项目需要用到六七个不同的站点接口,有统一登录站点,订单接口站点,门店接口站点,三方渠道站点等等。而

2020-10-28 23:33:05 1201

原创 Blazor中集成 Azure ApplicationInsights

Blazor中集成 Azure ApplicationInsights    ApplicationInsights真的是一款非常强大的应用监控利器。 它可以为你记录下站点接口的请求数量与性能,依赖项性能,调用链的异常以及堆栈跟踪信息等等。ApplicationInsights不仅可以用于服务端监控,还可以用于记录浏览器信息。省去了开发人员繁琐的日志记录以及遇到Bug时的无端猜测,科技是第一生产力。在此,我主要讲述ApplicationInsights在Blazor中的应用方法。很简单,首先在www

2020-10-28 22:55:57 225

原创 Blazor页面元素授权——AuthorizeView 组件的使用

Blazor页面元素授权——AuthorizeView 组件的使用上篇博客我们说到了blazor的身份认证的实现,对于AuthorizeView 组件来说,可以通过级联参数来获取包含了用户信息的AuthenticationState对象。请注意,你需要引用Microsoft.AspNetCore.Components.Authorization Nuget包,并且在启动类中添加服务Services.AddAuthorizationCore();使用CascadingAuthenticationStat

2020-10-28 22:34:53 5277

原创 Blazo身份认证授权示例以及如何对接统一登录平台

Blazo的身份认证授权示例以及如何对接统一登录平台    在阅读本文之前,希望您已经对ASP.NET Core或者Web应用的身份认证机制有所了解。本文主要讲述Blazor WebAssembly模式下的身份认证和授权方法,以及页面元素访问控制,假如您对ASP.NET Core身份认证机制还不了解,可以查看该链接获取完整的sso——统一登录示例。AuthorizeView 组件AuthorizeView是blazor中用于身份认证的内置组件。<AuthorizeView> &l

2020-10-28 21:37:20 3317

原创 Blazor PWA 单页应用身份认证机制示例

Blazor PWA 单页应用身份认证机制示例概述    本项目包含三部分:统一登录站点,受保护的webapi接口站点,以及blazor前端项目。    这个Demo是我的学习项目,是借鉴了(copy)了众多前辈代码完成的,如有不足之处还请多多指教。代码地址: https://dev.azure.com/1903268310/_git/blazor-sso-demoblazor单页应用(SPA)的身份认证机制注:示例中,我将统一登录站点生成的jwtToken保存在了cookie中,因此身份校验时

2020-07-09 20:55:47 2906

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除