- 博客(189)
- 资源 (170)
- 问答 (1)
- 收藏
- 关注
原创 ocelot+IdentityServer认证
其实Duende.IdentityServer.AspNetIdentity时与web的集成,有兴趣的自己研究,我没有使用。前一篇简单提了一下,今天我整理了一下,IdentityServer4开源已经说明,项目迁移升级了。认证服务器,创建WebApi项目,nuget引入Duende.IdentityServer。IdentityServer4的新版本,这里按照以前的方式简单介绍一下使用。创建配置类,可以照搬IdentityServer4的,这样通过登录返回token,就可以继续访问了。
2023-02-07 23:25:57 756
原创 ocelot其它部分
Polly是一种开源的.NET弹性和瞬态故障处理库,允许我们以非常顺畅和线程安全的方式来执诸如行重试,断路,超时,故障恢复等策略。在ocelot项目中引入Ocelot.Provider.Polly。ocelot也需要引入Duende.IdentityServer。目前走马观花一样说了一遍,也基本就这些内容目前。目前基本解决了结构问题。官网还提供了认证集成。断路器(Circuit-breaker)超时检测(Timeout)降级(FallBack)集成一样,只是库不同。其他信息推荐一篇文章。
2023-02-04 17:18:30 515
原创 consul集群解决单注册弊端
如果向单独的方式向节点注册,有一点问题,向一个注册,那么一旦节点挂了,服务也需要再次注册时,就会有问题。除以上方案外,还有补偿方案,就是集群节点通过Nginx代理,搭建一个nginx一个服务代理consul集群节点,webapi服务注册时使用Nginx代理。网上很多是放在不同机器上,默认启动即可,但是我这里自己学习,只能一个机器,所以需要修改端口,启动多个实例即可。consul官网建议最好是3个节点,其实consul不存储数据,只是服务信息,所以不用过多。consul的集群是复制模式,每个节点的信息一致。
2023-02-04 10:45:00 572
原创 ocelot+consul治理服务
Consul 是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其它分布式服务注册与发现的方案相比,Consul的方案更“一站式”,内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其它工具(比如ZooKeeper等) ,使用起来也较为简单。webapi服务注册,大家可以在网上搜索,我直接贴代码聊。总结就是,当服务多了比较麻烦,就用服务发现的方式处理。网上很多consul的介绍,可以自己了解。nuget引入Consul。
2023-02-01 23:50:18 487
原创 Ocelot微服务网关
它的功能包括了:路由、请求聚合、服务发现、认证、鉴权、限流熔断、并内置了负载均衡器、Service Fabric、Skywalking等的集成。就像一个公司的门卫承担着寻址、限制进入、安全检查、位置引导、等等功能。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理等等。API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。因为我使用的是net6的WebAPI项目模板建立,所以有一点不同。我只是提供一个概况。
2023-02-01 00:16:55 927
原创 ZMQ中的重连机制
如果在keepalive_time时间内双方没有任何的数据包传输,则开启keepalive功能的一端将发送 keepalive数据包,若没有收到应答,则每隔keepalive_intvl时间再发送该数据包,发送keepalive_probes次。重传包的优先级高于keepalive,那就意味着,我们的keepalive总是不能发送出去。应用层的心跳也简单,但根据ZMQ文档,最好使用TCP的keepalive。这里说的连接断开是正常的断开,有4次挥手的断开,也就是说通信双方都知道连接断开了。
2023-01-19 11:00:00 1902
原创 ASP.NET Core MVC 模型绑定
DI预设是使用Constructor Injection,但Controller可能会因为每个Action用到不一样的Service导致很多参数,所以也可以在Action注入Service。除了预设的三种Binding 来源外,还可以通过Model Binding Attributes 从HTTP Request 的其他数据中Binding。这个比较特别,不是从HTTP Request取值,而是从DI容器取值。在 ASP.NET Core MVC 中,支持以下表单类型的模型绑定。
2022-12-10 14:52:32 782
原创 简说控制器
再方法上有HttpGet特性,说明Action;也可以有参数,设置Action名称。方法上也可以有Route特性直接控制路径。[ApiController] 特性标记类是WebApi的控制器。建立完成后再类上一般有Route特性,设置路由。简单可以说是访问路径。建立控制器的名称,一般都XXXController这样的名字。此时就不要在HttpGet中用参数控制路径了。方法上也可以使用Route特性控制路由。通常来说,一般的写法就如以上例子即可。先看看建立的控制器代码。
2022-11-19 16:06:31 108
原创 认识WebAPi
如今,随着Web技术的发展,现在各种框架,前端的,后端的,数不胜数。全栈工程师的压力越来越大。PC端,Pad端,移动端App(安卓/IOS)的发展,使得前后端一体的开发模式十分笨重。因此,前后端分离是web发展的必然趋势,其中,RESTful API是目前前后端分离的最佳实践,ASP.NET Core Web API是在.NET Framework上构建RESTful应用程序的理想平台。
2022-11-14 23:15:59 492
原创 c#系列学习之路
C/S模式不为大家建立真正的程序,而是简单理论介绍后转为MAUI开发客户端,后端WEBAPI.后面介绍的都是.net5以后的平台,开发环境visual studio2022企业版。今天开始通过自己写例子,搜索粘贴的方式,开启.net的历程,重温那代码乱放的岁月。B/S模式主要介绍后端,html、vaue这些大家自己解决。.net平台2个方向C/S模式,B/S模式。目前没有想好具体内容,可能也会其它内容。
2022-11-14 22:36:38 139
原创 c++的json库
现在c++的库其实实现都差不多,因为没有c++没有反射功能,所以只能按照键值对方式组合和解析。每个库原理差不多,主要是接口的实现。目前有很多库了,只介绍4个。json11,rapidjson,jsoncpp,nlohmann大家自己查阅官方文档吧,总体都是类似map这样的。用jsoncpp举例,主要就是value类型很多库的使用都是这样的。nlohmann库需要实现解析过程。以下是json字符串解析:如果需要将json字符串与结构体转换需要在同名称空间实现上面的方法,c++没有反射,
2022-06-19 15:57:00 7496 2
原创 libcur的http访问restfull接口
libcurl是一个跨平台的网络协议库,支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传, HTTP基本表单上传,代理,cookies,和用户认证libcurl的官网 http://curl.haxx.se/libcur官网有丰富的文档和例子,稳定库。详细内容自己可以查阅libcurl是实现了http协议,只需要简单使用即可配合使
2022-06-19 14:12:20 757
原创 libminimsgbus网络通信库
libminimsgbus介绍 libminimsgbus集成集中常用的通信方式,主要满足订阅发布模式和点对点通信。以c++11标准开发。已经做来测试。 libminimsgbus的订阅发布分细化了协议,可以直接分为进程内,进程间,网络三种方式。 网络订阅发布 其中网络订阅发布又分为无中心的和有中心的MQ模式: 无中心模式存在丢失数据的可能,这是因为在查找主题时有延迟,同时无中心的不会保证数据的顺序,根据设计,在初始化等待时,如果在不停的发布...
2021-10-17 00:24:28 482
原创 libminimsgbus集成消息通讯库(多协议订阅发布)
无中心订阅发布使用组播方式寻址,发布时通过组播发布本地接收订阅的地址,通知各节点订阅。各节点以一个节点标识区分(guid),节点启动后自动初始化网络接收(使用nng库)。点对点通信 程序集成了nng通信库,提供了直接通信,当前是tcp为主,如果需要使用其它协议,需要自己研究nng库。多类型订阅发布 按照进程内,进程间,网络实现多种方式。进程内 进程间 网络进程内使用观察者模式,进程间使用内存共享,网络集成组件库。程序使用 订阅发布BusFactory::...
2021-08-29 11:07:19 310
原创 minimsg升级扩展
1.订阅发布 支持三类通信,进程内(观察者模式),进程间(内存共享),网络通信(订阅发布) var bus= BusFactory.Create(BusType.Ipc); bus.Subscribe("AA"); bus.OnCall += Bus_OnCall; bus.Publish("AA", new byte[] { 34 });2.点对点通信直接创建tcp通信。 var ptp = Pt..
2021-07-08 23:39:02 114
原创 网络文件管理
文件管理一般方法FTP文件管理ftp是文件管理的标准方式,可以自由查询维护删除。ftp是最直接的方式。部署一套FTP服务,将所有文件都上传到ftp,所有文件操作都是以ftp文件服务器为主。磁盘共享磁盘共享是windows处理的方式,直接共享文件夹,建立本地映射盘符。网络断了需要打开一次,必须手动操作。数据库管理通过数据库存储路径的方式,维护文件,通过数据库写业务处理。自定义管理 本地网络,通过socket通信简单处理,适合项目,能快速传输,不需要专门配置服务。...
2021-05-14 00:00:20 293 1
原创 minimsg无中心订阅发布组件发布
准备的一个通信组件封装,使用zmq管理订阅发布地址。集成nng和udt通信组件传输数据。提供通信接口,可以自定义通信组件。zmq采用本地调用,生成的zmq库集成了pgm通信。项目地址:https://github.com/jinyuttt/MiniMsg.git...
2021-05-06 23:32:26 143
原创 udt源码整理
UDT是基于UDP的数据传输协议。UDT是开源软件,主要目的是针对“TCP在高带宽长距离网络上的传输性能差”的问题,尽可能全面支持BDP网络上的海量数据传输。UDT是建立与UDP之上的面向双向的应用层协议,引入了新的拥塞控制算法和数据可靠性控制机制。它不仅可以支持可靠的数据流传输(STREAM 类型TCP)和部分可靠的数据报(DGRAM类似网络上发广播消息)传输,也可以应用在点对点技术,防火墙穿透,多媒体数据传输等领域。我下载了udt4源码,另外添加了c#的绑定。项目地址:https://githu
2021-05-01 16:32:29 734
原创 组合开发一个订阅发布通信库minimsg
曾经的付出 以前根据自己的喜好和项目,研究过opendds,编译和使用都很复杂的东西,但是它是dds的一个标准。 以为学习Java,所有了就过netty,弄过dotnetty,但是官方都没有管了。 接触通信传输,UDP的使用很快,弄过一个udt. Java的mq都接触过,还了解过nsq(go).看见没有,我对网络通信很感兴趣。自己也写过简单的网络通信,当然号称高效通信。当然还有正在使用的grpc库。看,我多么无聊。所以,我任然关注通信、数据库‘分布式。最近又开始了...
2021-04-12 00:21:28 781
原创 Serilog配置
Serilog一个扩展的日库。具体可以搜索其它文章。准备封装使用一下,感觉还是方便。只是没有找到合适通用的配置。自己封装了一下xml配置,可以自己添加扩展接收器。按照接收器的方法配置参数。<Serilog> <!--最小输出级别--> <MinimumLevel>Debug</MinimumLevel> <!--放置扩展库位置,默认当前目录--> <SerilogDir>kk</SerilogDir&g.
2021-03-21 14:51:56 1612
原创 一起学习Avalonia(十三)
Avalonia前面已经简单介绍了一下相关开发,有一个系统的了解。到今天Avalonia已经基本成熟,但是扩展支持的还是不可能达到大企业的,我估计这也不可能。考虑了下,微软的MAUI框架可能会普及性更高,Avalonia也是我无意间知道的。微软毕竟是会宣讲的全球。并且微软全球研发投入很大,全部专职开发,这种速度当然大。但是MAUI根据计划,可能还要很长时间,而且是社区支持Linux,估计时间更久。这不能适应现在的国产化开发。预计一段时间还是需要Avalonia作为优先。当前Avalonia使
2021-03-21 14:40:11 3457 3
原创 ubuntu下运行Avalonia
Avalonia可以在ubuntu运行,但是不能使用中文ubuntu,默认的字体不一样,需要扩展默认字体。具体参加Avalonia中对字体的扩展控制。文档中没有,需要去git查看相关解决的问题。
2021-02-20 16:09:38 1287 2
原创 一起学习Avalonia(十二)
这次主要说明一下最新的Avalonia的数据模板绑定。数据模板模板使用数据模板可以定制显示,Avalonia基本的数据模板已经在文档中有使用介绍。文档:https://avaloniaui.net/docs/templates/datatemplate演示的内容是在窗口中使用数据模板,如果全局使用则文档强调了App.axaml中定义Application.DataTemplates。请参阅文档例子实现。文档使用经过测试,文档中的例子的model都需要使用属性,并且需要包...
2021-02-20 15:52:28 1240
原创 IdentityServer4保护API
网上又很多介绍,但是只是一般文章,可能也不会有更新。所以我以基本的类型建立了一个示例,会更新。IdentityServerIdentityServer4是一个基于OpenID Connect和OAuth 2.0的针对ASP.NET Core 2.0的框架,以中间件的形式存在。该插件主要是aspnetcore的重要插件,用于验证工作。我们可以用IdentityServer来做什么?身份验证服务:官方认证的OpenID Connect实现 单点登录/注销(SSO) 访问受控的API ..
2021-01-17 18:03:20 244
原创 Grpc组件
grpc简介gRPC 一开始由 google 开发,是一款语言中立、平台中立、开源的远程过程调用(RPC)系统。在 gRPC 里客户端应用可以像调用本地对象一样直接调用另一台不同的机器上服务端应用的方法,使得您能够更容易地创建分布式应用和服务。与许多 RPC 系统类似,gRPC 也是基于以下理念:定义一个服务,指定其能够被远程调用的方法(包含参数和返回类型)。在服务端实现这个接口,并运行一个 gRPC 服务器来处理客户端调用。在客户端拥有一个存根能够像服务端一样的方法。跨平台多语言Proto
2020-12-14 00:08:13 213
原创 c#用XML配置SQL
c#用XML配置SQL以前写了一篇XML配置的说明,这里对项目进行了重新编辑。使用可以通过源码编译或者在nuget上面或者 名称:smartxmlsql.xml文件名称和调用的类名称一致,每个Statement对应一个SQL语句,属性ID为调用方法的名称。具体内容可以查看说明。升级当前升级主要修复了bug,优化了存储修复Set节点。自动增加set关键字。修改实体使用bug优化缓存。将SQL语句的解析参数和调用方法的参数缓存。、处理实体对象获取属性值由直接反射调用缓存Emit生成方法委托
2020-12-06 15:33:04 747 2
原创 一起学习Avalonia(十一)
继续扩展一下布局grid.Grid(1)基本 <Grid RowDefinitions="100,100" ColumnDefinitions="100,100"> </Grid>行列定值大小。(2)自动伸缩<Grid RowDefinitions="Auto,100" ColumnDefinitions="Auto,100"></Grid>根据内部内容计算大小。(3)比例 <Grid RowDefinit
2020-10-09 23:49:48 960
原创 一起学习Avalonia(十)
经过一段时间调整,我们继续了解。在以前的初略控件介绍后,我们将逐步扩展。今天继续介绍样式 样式先看看我们经常写的的xmal.<StackPanel> <Button Margin = "20" Content = "Btn" /> <Button Margin = "20" Content = "Style Btn" /> </StackPanel> (1)颜色<Window.S..
2020-10-09 23:37:07 1354
原创 正则表达式
提取名称=值对string r = @"(?m)^\s*(?'name'\w+)\s*=\s*(?'value'.*)\s*(?=\r?$)";string text = @"id = 3 secure = true timeout = 30";foreach (Match m in Regex.Matches (text, r)) Console.WriteLine (m.Groups["name"] + " is " + m.Groups["value"]);.
2020-08-22 00:53:06 87
原创 postgresql数据库备份恢复
网上已经有很多文章了,但是自己操作发现了“呵呵”。这里只是在Windows上面使用数据库自带备份工具。postgresql备份恢复1.运维方式备份 (1)停止数据库,可以拷贝数据库文件。 2.逻辑备份 (1)pg_basebackup.exe 这是需要启动归档的方式备份,会及时增量备份很及时,恢复也快。 缺点:需要提前修改数据库位归档模式。备份时还得手工操作,将备份的文件拷贝到合适位置,还得修改数据库配置。 也...
2020-08-08 22:05:38 386
原创 一起学习Avalonia(九)
Avalonia已经简单介绍很多了,也意味着2个月过去了。今天将控件篇收尾了。1.layout(布局控件) 和WPF基本一致,主要是布局控件有:grid,DockPanel,Canvas,StackPanel,WrapPanel,Panel.。这些控件用来作为界面布局,通过这些控件以及样式,就可以实现各种布局样式了。2.代码 xaml中使用控件显示,显示需要结合代码,与WPF不一样,Avalonia没有那么强与vs结合编译的能力,Avalonia主要是解释性的。Ava...
2020-07-19 12:02:22 2040 4
原创 一起学习Avalonia(八)
又到周末了,根据官网文档,接着控件篇。1.ToolTip用法:<ToolTip.Tip> <StackPanel> <TextBlock >ToolTip</TextBlock> <TextBlock >A control which pops up a hint when a control is hovered&...
2020-07-19 01:01:04 863
原创 国产下的netcore
刚刚看见博客园一篇文章,龙芯支持netcore.以前一直只看Linux系统。一般国产化平台,主要是包括软件和硬件。软件对于开放人员来说是操作系统Linux和国产数据库;硬件一般只服务器,很多时候就是华为arm与龙芯MIPS64。我还没有用过龙芯,龙芯以前是QT开发。 操作系统Linux(deepin开发,中标麒麟部署),基本不影响netcore. 华为服务器也可以实现。当前国产很少用netcore,普遍使用QT+java。这样一些产品化项目就割裂了,很难受。 当前的netcore减...
2020-07-12 14:53:46 1706
原创 一起学习Avalonia(七)
又到周末了,根据官网文档,接着控件篇。1.Image用法:<StackPanel> <Image Source="/Assets/1.jpg" /> </StackPanel>效果:2.ProgressBar用法:<StackPanel> <ProgressBar Value="40"/> </StackPanel>效果:另外还有其它样式实现...
2020-07-12 02:12:16 1250
原创 一起学习Avalonia(六)
又到周末了,根据官网文档,接着控件篇。1.CheckBox用法: <StackPanel> <CheckBox>Not checked by default</CheckBox> <CheckBox IsChecked="True">Checked by default</CheckBox> </StackPanel>效果:2.Menu用法: <DockP
2020-07-05 01:12:56 1151
原创 一起学习Avalonia补充(deepin下的使用开发t调试)
现在微软调试器vs2019只支持windows,mac.另外vs code支持全部,并且比较小,但是功能相对vs还是不够强大。Avalonia桌面开发可以全部在windows上面开发调试,然后部署到deepin.经过多次测试(但是Avalonia的库版本可能会影响);因此为大家提供一个开源IDE,也是以Avalonia构建的,可以移植调试在deepin下面。考虑到当前并不成熟,我建议是vs2019开发,vs code作为主要调试,如果不行用该IDE补充在deepin下直接调试。源地址:h
2020-06-25 20:23:21 1077 4
c#K-V本地缓存
2018-11-07
Hikari数据库连接池
2018-10-28
数据库查询服务DBCacheServer源码
2018-08-08
udt无聊通信java实现修正
2017-10-11
数据库查询框架测试
2017-04-16
封装StackExchange.Redis
2016-12-31
web开发结构
2016-12-07
java 服务代理及数据库使用
2016-05-19
数据库封装
2016-05-06
组播通讯重发控制
2016-03-15
java组装命名式服务20160215
2016-02-15
制作地图底图有什么办法?
2021-10-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人