摘要:
在使用 HttpClient 发起 HTTP 请求时,可能会遇到请求头丢失的问题,尤其是像 Accept-Language 这样的请求头丢失。这个问题可能会导致请求的内容错误,甚至影响整个系统的稳定性和功能。本文将深入分析这一问题的根源,并介绍如何通过 HttpRequestMessage 来解决这 阅读全文
摘要:
mongodb的变更流解释: 变更流(Change Streams)允许应用程序访问实时数据变更,从而避免事先手动追踪 oplog 的复杂性和风险。应用程序可使用变更流来订阅针对单个集合、数据库或整个部署的所有数据变更,并立即对它们做出响应。由于变更流采用聚合框架,因此,应用程序还可对特定变更进行过 阅读全文
摘要:
主题: aspnetcorewebapi项目,提交到gitlab,通过jenkins(gitlab的ci/cd)编译、发布、推送到k8s。 关于gitlab、jenkins、k8s安装,都是使用docker启动服务。 首先新建一个项目,为了方便浏览就把swaggerr非开发环境不展示去掉 下面就是需 阅读全文
摘要:
理想很丰满,现实往往很残酷。 一种按照ddd的方式,根据业务来把自己需要的模块一个一个写出来,再按照模块把需要的接口一个一个的写出来,堆砌一些中间件,以及解耦的command,handler等等 ,一个项目就这么成型了。上面的项目有一个非常清晰的特点,就是按需开发,不需要去可以定义业务相关的公共的模 阅读全文
摘要:
这一篇文章应该是个总结。 投简历的时候是不是有人问我有没有abp的开发经历,汗颜! 在各位大神的尝试及自己的总结下,还是实现了业务和主机服务分离,通过dll动态的加载卸载,控制器动态的删除添加。 项目如下: 演示效果: 下面就是代码部分: 重点 1.IActionDescriptorChangePr 阅读全文
摘要:
该项目比较简单,只是单纯的把业务的dll模块和controller的dll做了一个动态的添加删除处理,目的就是插件开发。由于该项目过于简单,请勿吐槽。复杂的后续可以通过泛型的实体、dto等做业务和接口的动态区分。 项目结构如下: 上面的两个模块是独立通过dll加载道项目中的 repository动态 阅读全文
摘要:
先演示一下效果,再展示代码逻辑。 中间几次调用过程省略。。。 暂时只用到了下面四个项目 1.产品展示页面中第一次通过接口去获取数据库的列表数据 /// <summary> /// 获取指定的商品目录 /// </summary> /// <param name="pageSize"></param> 阅读全文
摘要:
aspnetcore微服务之间通信grpc,一般服务对外接口用restful架构,HTTP请求,服务之间的通信grpc多走内网。 以前写过一篇grpc和web前端之间的通讯,代码如下: exercisebook/grpc/grpc-web at main · liuzhixin405/exercis 阅读全文
摘要:
项目链接以及目录结构 liuzhixin405/efcore-template (github.com) 这是一个纯webapi的开发框架。 1、支持的orm有efcore6、dapper,可以灵活切换数据库。 using Microsoft.CodeAnalysis.CSharp.Syntax; 阅读全文
摘要:
aaspnetcore开发框架中实现aop不仅仅在业务上,在代码的优雅简洁和架构的稳定上都有着至关重要。 下面介绍三种用过的。 第一种通过System.Reflection的DispatchProxy类来实现 首先新建一个aspnetcore项目 针对业务代码WarService加了一个代理的方法 阅读全文
摘要:
aspnetcore微服务种服务之间的通信一般都有用到消息中间件,如何确保该服务的持久层保存创建的数据同时又把消息成功投递到了关联服务,关联服务做对应的处理。 下面就以一个简单的例子来演示实现方式之一,即发件箱模式。 下面解决方案有两个服务,做演示用的比较简单,一个是订单服务,一个是账单服务。完成订 阅读全文
摘要:
关于安装rabbitmq这里一笔掠过了。 下面进入正题: 1.新建aspnetcorewebapi空项目,NormalQueue,删除controllers文件夹已经无关的文件,这里为了偷懒不用console控制台: public class Program { public static void 阅读全文
摘要:
虽然编译源码折腾了几个时间(卡在restore),最后还是跑起来了aspnetcore6.0mvc源码项目,下面说步骤,前提是网络能连外,对于不能连外的懒得折腾。 第一步 电脑找个地克隆下GitHub上的源码下来 git clone --recursive https://github.com/do 阅读全文
摘要:
而在实际项目开发中,使用第三方日志框架来记录日志也是非常多的,首先一般基础的内置日志记录器在第三方日志框架中都有实现,然后很多第三方日志框架在功能上更强大和丰富,能满足我们更多的项目分析和诊断的需求。常用的有log4net,更复杂的elk,项目中有用到exceptionless。下面说的是seril 阅读全文
摘要:
netcore6项目,微服务框架选orleans ,国内似乎没什么项目在用,坑多无资料。orleans文档可以解决几乎,只能看官方资料。 Introduction | Microsoft Orleans 中文文档 服务异常客户端怎么接收,链接释放,内存泄露等各种问题都迎刃而解。早先弄了几个服务测试, 阅读全文
摘要:
微软的序列化反序列化组件出来已有好几年了,刚出来的时候各种吐槽。最近在优化代码,比较了一下微软的Serialize和Newtonsoft的SerializeObject,感觉大部分场景下可以用微软的序列化组件了,Newtonsoft第三方可能被我放弃掉。测试有交换顺序,也有多次测试。 1 using 阅读全文
摘要:
闲话不多说,面向对象编程是高级语言的一个特点,但是把它概括成面向抽象更容易直击灵魂,经过了菜鸟大家都要面对的是不要写这么菜的代码了。 上例子,这应该是大家都很熟悉耳熟能详的代码, so easy。 1 using System; 2 using System.Diagnostics; 3 4 nam 阅读全文
摘要:
背景: netcore项目中有些服务是在通过中间件来通信的,比如orleans组件。它里面服务和客户端会指定网关和端口,我们只需要开放客户端给外界,服务端关闭端口。相当于去掉host,这样省掉了些指定配置连接和端口,用起来非常方便。 干掉host,下面代码: using Microsoft.AspN 阅读全文
摘要:
近期接触go感觉package包之间引用很麻烦,很绕圈子。下面一起理一理这个package咋用 关于package: 1、不限于一个文件,可以多个文件组成一个package 2、不要求package的名称和所在目录名相同,但是最好保持相同,方便管理 3、每个子目录中只能存在一个package,否则编 阅读全文
摘要:
aspnetcore里面用到许多的service,好多业务代码都要通过Service.AddScoped、Singleton、Transient等注入进去,类太多了写起来和管理起来都很麻烦,所以借鉴了一下github上面的项目稍微删减了一下下,最后会给出参考链接和git源代码。 项目结构如下, 这里 阅读全文
摘要:
rust用来写webapi可能有点大材小用,但是作为入门学习应该说是不错的选择。 cargo new webapi创建一个webapi项目,在src下面新建handler文件夹和models文件夹。 在models文件夹下面建立一个mod.rs和weatherforecast.rs文件。 weath 阅读全文