面向云技术架构 - 痴者工良

  • 首页
  • 工良写的电子书
    • Istio 入门教程
    • kubernetes 教程
    • 从 C# 入门 Kafka
    • 多线程和异步
    • 动态编程-反射、特性、AOP
    • 表达式树
  • 本站文章导航
  • 隐私政策
愿有人陪你颠沛流离
遇到能让你付出的事物或者人,都是一种运气。
能遇到,就该珍惜。或许你们最终没能在一起,但你会切实地感受到力量。
正因为这样,那段相遇才变得有价值,才没有辜负这世间的每一段相遇。
.NET

SignalR 实现自动注入客户端方法

C# 编写 SignalR 客户端时需要手动注入客户端方法: connection.On<string, string>("ReceiveMessage", (user, message) => { this.Dispatcher.Invoke(() => { var newMessage = $"{user}: {message}"; messagesList.Items.Add(n[......]继续阅读

2023年9月25日 0条评论 32点热度 0人点赞 痴者工良 阅读全文
.NET

BlazorWebView 跳转非 https://0.0.0.0 地址的方法

研究了很久源码,发现了其运行机制。 如果 BlazorWebView 跳转的页面不是 https://0.0.0.0 ,那么就会使用客户端之外的浏览器打开页面。 // 这里的地址允许在浏览器中打开 public static readonly Uri[] URLS = new Uri[] { new Uri("https://open.feishu.cn") }; this.webView.BlazorWebViewInitializing += (s, e) =>[......]继续阅读

2023年9月21日 0条评论 40点热度 0人点赞 痴者工良 阅读全文
.NET

ASP.NET Core 模型类类型转换,swagger 对不上

模型类: public class Test { [JsonConverter(typeof(string))] public int Value { get; set; } } API 接口: [HttpPost("aaa")] public string AAA([FromBody] Test test) { return "11111111111"; } 但是 Swagger 还是显示 int 类型,没有跟着 json 配置而变化。 所以我们需要[......] 继续阅读

2023年9月19日 0条评论 58点热度 0人点赞 痴者工良 阅读全文
.NET

一个 AsyncTaskMethodBuilder 状态机示例

using System; using System.Runtime.CompilerServices; using System.Threading.Tasks; async Task Main() { Task<int> task = CreateTask(); int result = await task; } Task<int> CreateTask() { // 创建一个异步任务方法构建器 AsyncTaskMethodBuilder<int> builder = A…

2023年9月19日 0条评论 54点热度 0人点赞 痴者工良 阅读全文
.NET

WPF 修改 WebView2 默认语言

默认 webview2 使用英文语言显示,包括控制台、打印台等地方,都是英文提示,因此可以修改为本地语言。 public static void SetWebviewLanguage(string language = "zh-CN") { var cultureInfo = new CultureInfo(language); // 设置程序使用的语言,可以忽略。 CultureInfo.CurrentCulture = cultureInfo; CultureIn[......]继续阅读

2023年9月14日 0条评论 66点热度 0人点赞 痴者工良 阅读全文
.NET

WPF 中 Webview2 如何修改数据存储目录

默认 Webview2 会被安装到系统目录,可能会导致程序启动时权限不足,无法使用 Webview2,以及多版本程序之间发生存储目录冲突。 因此需要自定义设置 Webview2 目录,最好就存储在程序安装目录下。 首先修改 App.xaml 文件,添加一行: <Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ui:ThemesDictionary The…

2023年9月14日 0条评论 78点热度 0人点赞 痴者工良 阅读全文
.NET

ASP.NET Core 使用 Apollo

部署 Apollo 之后,创建一个应用。 然后创建命名空间,选择 private 创建私有命名空间,选择 json 格式。 点击修改文本,填入 json 内容。 然后在 .NET 程序中引入包 <PackageReference Include="Com.Ctrip.Framework.Apollo.Configuration" Version="2.10.2" /> 在配置文件中定义 apollo 的设置。 { "apollo": { "AppId": "ApolloTest", "MetaServe…

2023年9月11日 0条评论 74点热度 0人点赞 痴者工良 阅读全文
.NET

ASP.NET Core 进行 swagger 分组的简单方法

首先是中间件,它决定了有时间显示哪些分组。 可以从 IApiDescriptionGroupCollectionProvider 服务中获取所有 API,然后通过 API 进行识别,检查是否有分组。 if (context.HostingEnvironment.IsDevelopment()) { app.UseSwagger(); var descriptionProvider = app.ApplicationServices.GetRe[......]继续阅读

2023年8月15日 0条评论 202点热度 2人点赞 痴者工良 阅读全文
.NET

signalR 获取客户端的地址

在 signalR 中如需获取客户端的连接信息,可以使用 IHttpConnectionFeature 获取客户端通讯的 IP 和端口。 // 获取服务 var feature = Context.Features.Get<IHttpConnectionFeature>(); var httpContext = Context.GetHttpContext(); ArgumentNullException.ThrowIfNull(feature); Argume[......]继续阅读

2023年8月4日 0条评论 160点热度 0人点赞 痴者工良 阅读全文
.NET

ABP 自定义实现多语言处理

在 ABP 中,默认只有本地 JSON 语言处理,但是在业务上我们可能有好多定制需求。本文介绍如何自己根据 redis 实现一个多语言处理,通过 redis 取得语言信息。 ABP 官方文档:https://docs.abp.io/en/abp/latest/Localization ABP 是这样配置多语言的: services.Configure<AbpLocalizationOptions>(options => { options.Resources .Add<TestResourc…

2023年7月27日 0条评论 254点热度 1人点赞 痴者工良 阅读全文
.NET

.NET 编译时字符报错问题 Invalid cha racter in the given encoding

在 .csproj 中使用了中文,导致 Jenkins CICD 的时候报错。 Microsoft.WinFX.targets(439,8): error : Invalid character in the given encoding. 原因在于 MSBuild 或者 dotnet publish 使用的编码集合为 utf8。 保存 .csproj 文件时,要使用 utf-8 bom,里面的字符要使用 utf8。 而 powershell 中默认是 GB2312 编码,所以会导致报错。 另一个问题,由于需求,需…

2023年7月24日 0条评论 190点热度 0人点赞 痴者工良 阅读全文
.NET

PdfSharp 创建编辑 PDF 文件,.NET 跨平台 PDF 处理控件

PdfSharp 是一个 .NET 跨平台的 PDF 处理框架,PdfSharp 使用的是 MIT 开源协议,无论是个人还是商业使用均可,且不限制闭源或开源。PdfSharp 由社区维护,无任何收费购买项目。 笔者看中它: 体积轻小, 操作简单, 跨平台,不会出现 System.Drawing 报错, 完全免费,MIT 开源协议 命名空间: using PdfSharp.Drawing; using PdfSharp.Fonts; using PdfSharp.Pdf; using PdfSharp.Snippet…

2023年7月20日 0条评论 277点热度 1人点赞 痴者工良 阅读全文
.NET

TinyMapper 对象映射框架的封装

最近使用了一个 TinyMapper 对象映射框架,喜欢它的简单。 TinyMapper 文档地址: http://tinymapper.net/ TinyMapper 极其简单,一个静态类即可: TinyMapper.Bind<Person, PersonDto>(); var person = new Person { Id = Guid.NewGuid(), FirstName = "John", LastName = "Doe" }; var personDto = TinyMapper.Map…

2023年7月19日 0条评论 202点热度 2人点赞 痴者工良 阅读全文
Istio

Isito 入门(九):安全认证

本教程已加入 Istio 系列:https://istio.whuanle.cn 7,认证 本章的内容主要是讲解服务间通讯的安全和集群外部访问内部服务的 jwt token 验证。 Istio 提供两种类型的认证,一种是服务间认证 Peer Authentication,一种是客户端请求认证 Request Authentication。 Peer Authentication Peer authentication 用于服务到服务的认证,在零信任网络中,Envoy 给服务之间的通讯加密,只有服务双方才能看到请求内…

2023年7月9日 0条评论 200点热度 0人点赞 痴者工良 阅读全文
Istio

Isito 入门(八):金丝雀发布

本教程已加入 Istio 系列:https://istio.whuanle.cn 可观测性 Istio 集成了 Jaeger、Zipkin 和 Skywalking 等链路追踪应用,能够有效地捕获服务网格的结构,展示网络拓扑结构,并分析网格的健康状况。 这一切都得益于 Envoy 代理的实现。由于所有进出流量都需要经过 Envoy 代理,Envoy 可以捕获这些流量记录,并将其推送到相应的链路追踪系统中。这样一来,可以链路追踪系统轻松地监控和分析服务网格内的流量情况。 另外 Istio 还支持 Prometheus…

2023年7月9日 0条评论 249点热度 1人点赞 痴者工良 阅读全文
Istio

Istio 入门(七):出入口网关

本教程已加入 Istio 系列:https://istio.whuanle.cn 5,出入口网关 Istio 可以管理集群的出入口流量,当客户端访问集群内的应用时, Istio 可以将经过 istio-ingressgateway 的流量实现负载均衡和熔断等一系列功能。 可是,如果集群内的一个应用要访问 google.com ,那么我们可以给内部所有请求了 google.com 的流量设置负载均衡吗?答案是可以,Istio 提供了 istio-egressgateway 实现这种功能。因为 Pod 中的容器要访问网…

2023年7月9日 0条评论 186点热度 0人点赞 痴者工良 阅读全文
Istio

Istio 入门(六):版本控制

Istio 入门(五):访问控制和流量管理 VirtualService 和 DestinationRule VirtualService 与 Service 的关系 Istio 的 VirtualService 和 Kubernetes 的 Service 都是服务治理的组件,但它们有不同的作用和关系。 下面是它们之间的关系和区别: 定义和作用 Kubernetes 的 Service 主要负责服务发现和负载均衡,它为一组运行相同应用的 Pod 提供一个统一的访问入口。 而 Istio 的 VirtualServ…

2023年7月9日 0条评论 196点热度 0人点赞 痴者工良 阅读全文
Istio

Istio 入门(五):访问控制和流量管理

Isito 入门(四):可观测性 4, 流量管理 主要演示了使用 Istio Gateway、VirtualService 对外暴露服务的访问地址 ,以及基于 Istio 实现可观察性的 Kiali 组件。让我们回在上一章中部署的 bookinfo 示例已经学习了什么: 使用 Istio Gateway 创建 “站点”; 使用 Istio VistualService 暴露 Kubernetes Service,并指定暴露的路由后缀。 使用 Kiali 收集服务间的指标。 通过快速练习,我们学到了如何在 Istio…

2023年7月9日 0条评论 174点热度 0人点赞 痴者工良 阅读全文
Istio

Isito 入门(四):可观测性

本教程已加入 Istio 系列:https://istio.whuanle.cn 可观测性 Istio 集成了 Jaeger、Zipkin 和 Skywalking 等链路追踪应用,能够有效地捕获服务网格的结构,展示网络拓扑结构,并分析网格的健康状况。 这一切都得益于 Envoy 代理的实现。由于所有进出流量都需要经过 Envoy 代理,Envoy 可以捕获这些流量记录,并将其推送到相应的链路追踪系统中。这样一来,可以链路追踪系统轻松地监控和分析服务网格内的流量情况。 另外 Istio 还支持 Prometheus…

2023年7月9日 1条评论 198点热度 0人点赞 痴者工良 阅读全文
Istio

Istio 入门(三):体验 Istio、微服务部署、可观测性

本教程已加入 Istio 系列:https://istio.whuanle.cn 3,快速入门 在本章中,我们正式迈入学习 Istio 的第一步。因为 Istio 的知识体系是较为庞大的,因此我们可以先通过本章的入门教程快速了解如何使用 Istio 部署一套微服务,以及 Istio 核心功能的使用方法,了解 Istio 可以为微服务解决什么问题。 在本章中,我们将会学习到如何部署一套微服务、如何使用 Istio 暴露服务到集群外,并且如何使用可观测性组件监测流量和系统指标。 在后面的章节中,笔者会针对每个 Isti…

2023年7月9日 0条评论 176点热度 0人点赞 痴者工良 阅读全文
12345…24

痴者工良

高级程序员劝退师

站长简介

小小程序员,主要研究微服务架构、kubernetes、istio、Devops 等,主要语言是 C#、Go。日常喜欢看书、写博客、摄影、运动、看风景。



友情链接
  • 懒得勤快
  • 玄冰小窝
  • 路遥工具箱
最新 热点 随机
最新 热点 随机
SignalR 实现自动注入客户端方法 BlazorWebView 跳转非 https://0.0.0.0 地址的方法 ASP.NET Core 模型类类型转换,swagger 对不上 一个 AsyncTaskMethodBuilder 状态机示例 WPF 修改 WebView2 默认语言 WPF 中 Webview2 如何修改数据存储目录
ASP.NET Core 使用 ApolloWPF 中 Webview2 如何修改数据存储目录WPF 修改 WebView2 默认语言一个 AsyncTaskMethodBuilder 状态机示例ASP.NET Core 模型类类型转换,swagger 对不上BlazorWebView 跳转非 https://0.0.0.0 地址的方法
.Net Core 跨平台应用使用串口、串口通信 ,可能出现的问题、更简洁的实现方法 C# 结构体在数组中传递时保持引用 Natasha 群5月11日吹水备忘录 pfx证书查看信息,pfx证书生成其他证书格式 MariaDB Spider 数据库分库分表实践 C# 数据类型转换 显式转型、隐式转型、强制转型

COPYRIGHT © 2023 whuanle.cn. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

粤ICP备18051778号

粤公网安备 44030902003257号