![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
源码解读
请叫我权哥
这个作者很懒,什么都没留下…
展开
-
.NetCore框架Surging系列(七)路由监听
.NetCore框架Surging系列(一)介绍.NetCore框架Surging系列(二)HTTP.NetCore框架Surging系列(三)HTTP本地路由发现过程.NetCore框架Surging系列(四)RPC客户端过程.NetCore框架Surging系列(五)路由注册.NetCore框架Surging系列(六)路由发现.NetCore框架Surging系列(六)路由监听背景在上一篇.NetCore框架Surging系列(六)路由发现中提到路由发现,此功能是当前服务发现远程服务的路原创 2020-10-09 17:15:07 · 267 阅读 · 0 评论 -
.NetCore框架Surging系列(六)路由发现
.NetCore框架Surging系列(一)介绍.NetCore框架Surging系列(二)HTTP.NetCore框架Surging系列(三)HTTP本地路由发现过程.NetCore框架Surging系列(四)RPC客户端过程.NetCore框架Surging系列(五)路由注册路由发现路由发现需要重点关注这么几个问题为什么要做路由发现如何触发路由发现怎么做到路由同步为什么要做路由发现之前提到过,如果http请求能在当前服务找到entry就执行本地方法,如果找不到则进行远程调用,而原创 2020-09-29 10:13:08 · 304 阅读 · 0 评论 -
.NetCore框架Surging系列(五)路由注册
.NetCore框架Surging系列(一)介绍.NetCore框架Surging系列(二)HTTP.NetCore框架Surging系列(三)HTTP本地路由发现过程.NetCore框架Surging系列(四)RPC客户端过程.NetCore框架Surging系列(五)路由注册Surging路由注册和发现的基本单位为API方法,也就是说注册的是各个服务中的各个方法,并且在供网关和Rpc调用时也是通过路由找到对应方法,并分配到相应的服务器,在Consul中以Key/Value形式保存。Consu原创 2020-09-21 12:16:47 · 436 阅读 · 1 评论 -
.NetCore框架Surging系列(四)RPC客户端过程
.NetCore框架Surging系列(一)介绍.NetCore框架Surging系列(二)HTTP.NetCore框架Surging系列(三)HTTP本地路由发现过程.NetCore框架Surging系列(四)RPC客户端过程Rpc使用的是DotNetty,RPC客户端分层比较清晰代理层这层是Rpc的第一层,负责寻址、重发。寻址是将Rpc的请求地址转为远程服务器信息,重发是超时、熔断等调用不通进行重试机制;熔断层这层处理降级、阈值判定、熔断等,根据远程接口设定的值进行熔断;注意:远程接原创 2020-09-11 15:32:46 · 688 阅读 · 1 评论 -
.NetCore框架Surging系列(三)HTTP本地路由发现过程
.NetCore框架Surging系列(三)HTTP本地路由发现过程发现过程ServiceHostModule.Initialize 提供入口获取所有本地API声明接口类为没有API创建实现Entry使用在http执行过程中,最终都会执行到HttpExecutor,在这个类会判断当前调用是否是执行本地方法,还是执行远程方法。var entry = _serviceEntryLocate.Locate(httpMessage);HttpResultMessage<object&g原创 2020-09-02 11:58:25 · 395 阅读 · 0 评论 -
.NetCore框架Surging系列(二)HTTP
Surging系列(二)HTTP流程有点复杂,结合流程看代码吧HTTP初始化Surging初始化不仅仅是只初始化HTTP,还有注册中间件、RPC、WebSocket等,而HTTP初始化最终调用的是Surging.Core.KestrelHttpServer中方法StartAsyncHTTP监听Surging.Core.KestrelHttpServer中方法StartAsync,在这个方法中可以设置Kestrel配置,设置静态资源等介绍目录内存泄漏HTTP存在内存泄漏,最开始完成用户登录接口原创 2020-08-28 15:30:53 · 1271 阅读 · 1 评论 -
.NetCore框架Surging系列(一)介绍
这里写自定义目录标题Surging一 简介二 安装使用三 工程结构介绍四 扩展工程五 总结Surgingsurging 是一个分布式微服务引擎,提供高性能RPC远程服务调用,服务引擎支持http、TCP、WS、Mqtt协议,采用Zookeeper、Consul作为surging服务的注册中心,集成了哈希一致性,随机,轮询、压力最小优先作为负载均衡的算法,底层协议集成采用的组件是dotnetty、websocket-sharp、Kestrel。支持通过docker hub 部署服务引擎,也可以通过nuge原创 2020-08-21 10:28:42 · 2043 阅读 · 0 评论 -
Dapper 下划线
Dapper 下划线映射实体解决方案设置静态变量DefaultTypeMap.MatchNamesWithUnderscores = true;原理dapper将字段映射实体时,会创建DufaultTypeMap,用Sql查询字段映射逻辑:先查找属性,完全匹配,如果没有匹配到则判断是否进行匹配下划线,最后判断是否存在属性,存在则返回实体成员属性映射关系类;如果没有找到属性,就找字段,逻辑同上。/// <summary>/// Gets member mapping for原创 2020-07-21 14:38:32 · 733 阅读 · 0 评论 -
Dapper Object must implement IConvertible.
Dapper查询抛错误 Object must implement IConvertible.原因Dapper根据查询语句中的查询列名集合缓存将查询的结果映射为实体的方法。也就是说,如果查询的列数量、名称等相同,不管是不是同一个表,所有查询结果映射到为第一次查询的实体,后续的查询在读取查询结果后,在转换为指定T实体时报错。解决方案查询字段(名词、数量)和实体保持唯一错误信息System.InvalidCastException : Object must implement IConverti原创 2020-07-14 17:12:39 · 4510 阅读 · 0 评论