上一页 1 ··· 3 4 5 6 7 8 9 10 11 12 下一页
摘要: 连接 //创建连接 var bus = RabbitHutch.CreateBus(“host=myServer;virtualHost=myVirtualHost;username=mike;password=topsecret”); //关闭连接 bus.Dispose(); 连接字符串说明 h 阅读全文
posted @ 2020-09-05 11:17 .Neterr 阅读(409) 评论(0) 推荐(1)
摘要: 介绍 EasyNetQ是一个在RabbitMQ.Client类库之上提供服务的组件集合。做了这些事情,像序列化、错误处理、线程管理、连接管理等。通过一个Mini-Ioc容器组织在一起。你能很容易用你自己实现去替换这些组件。所以如果你喜欢用XML序列化而不是用JSON,仅仅需要以一个ISerializ 阅读全文
posted @ 2020-09-05 08:04 .Neterr 阅读(760) 评论(0) 推荐(0)
摘要: 官方msdn地址介绍: https://docs.microsoft.com/zh-cn/dotnet/api/system.reflection.emit?view=netframework-4.8 https://docs.microsoft.com/zh-cn/dotnet/api/syste 阅读全文
posted @ 2020-09-04 12:00 .Neterr 阅读(424) 评论(0) 推荐(0)
摘要: QOS:服务质量保证功能 Prefetch count (预取数目) prefetch是指单一消费者最多能消费的unacked messages数目。 mq为每一个consumer设置一个缓冲区,大小就是prefetch。每次收到一条消息,MQ会把消息推送到缓存区中,然后再推送给客户端。当收到一个a 阅读全文
posted @ 2020-08-31 15:05 .Neterr 阅读(2606) 评论(0) 推荐(0)
摘要: 用于http级别缓存,防止在一次http请求中查询相同数据 /// <summary> /// 使用HttpContext的暂存对象存储要被缓存的信息 /// </summary> public class HTTPCacheManager { private readonly IHttpConte 阅读全文
posted @ 2020-08-31 00:12 .Neterr 阅读(166) 评论(0) 推荐(0)
摘要: 容器接口: /// <summary> /// Ioc容器接口 /// </summary> public interface IContainer : IServiceProvider, IServiceRegister { } /// <summary> /// 服务接口 /// </summa 阅读全文
posted @ 2020-08-30 21:24 .Neterr 阅读(150) 评论(0) 推荐(0)
摘要: 消息处理父类: /// <summary> /// 异步消息处理 /// </summary> public abstract class AsyncProcessor<TMessage> { private readonly BlockingCollection<TMessage> _messag 阅读全文
posted @ 2020-08-30 15:42 .Neterr 阅读(299) 评论(0) 推荐(0)
摘要: 简介: Dapper.Contrib是对Dapper的进一步封装,使对象的基本增删改查等操作进一步简化。 如果只使用Dapper,增删改操作都需要手写sql,然后使用Execute()执行。Dapper.Contrib不需要写sql,操作对象即可 entity配置: [Table("Demo")] 阅读全文
posted @ 2020-08-28 16:21 .Neterr 阅读(1293) 评论(0) 推荐(0)
摘要: 介绍 Dapper是一个用于.NET的简单的对象映射,支持异步,并且在速度上有着轻ORM之王的称号。 Dapper扩展IDbConnection,提供有用的扩展方法来查询数据库。 个人觉得他非常好用,现在已经取代了原来的SqlHelper。优点: 使用Dapper可以自动进行对象映射。Dapper原 阅读全文
posted @ 2020-08-28 16:06 .Neterr 阅读(446) 评论(0) 推荐(0)
摘要: MySQL、SQL SERVER提供了三种方法临时存储结果集,分别是临时表、表变量和公用表表达式。 临时表 临时表需要在临时数据库TempDB中通过I/O操作来创建表结构,一旦用户退出SQL Server环境,临时表会自动被删除。临时表有两种,一种是本地临时表,仅在当前会话中可见,前缀是【#】;一种 阅读全文
posted @ 2020-08-28 10:12 .Neterr 阅读(161) 评论(0) 推荐(0)
摘要: 程序集:Microsoft.AspNetCore.WebUtilities 命名空间:Microsoft.AspNetCore.WebUtilities QueryHelpers: public static class QueryHelpers { // // 摘要: // /// Append 阅读全文
posted @ 2020-08-27 10:26 .Neterr 阅读(492) 评论(0) 推荐(0)
摘要: 1 /// <summary> /// Type 拓展 /// </summary> public static class TypeExtensions { /// <summary> /// 确定当前实例是否是继承或者实现某个Type /// </summary> /// <param name 阅读全文
posted @ 2020-08-27 10:14 .Neterr 阅读(174) 评论(0) 推荐(0)
摘要: Topshelf 是一个用来部署基于.NET Framework 开发的服务的框架。简化服务创建于部署过程,并且支持控制台应用程序部署为服务。本文基于 .net core 控制台应用程序部署为服务(.net Framework 可用)。 第一步:创建名为 TopshelfDemo 的控制台应用程序。 阅读全文
posted @ 2020-08-26 20:34 .Neterr 阅读(196) 评论(0) 推荐(0)
摘要: 介绍 ttpContext是ASP.NET中的核心对象,每一个请求都会创建一个对应的HttpContext对象,我们的应用程序便是通过HttpContext对象来获取请求信息,最终生成响应,写回到HttpContext中,完成一次请求处理。 IHttpApplication WebHost 在启动 阅读全文
posted @ 2020-08-25 09:32 .Neterr 阅读(728) 评论(0) 推荐(0)
摘要: 介绍: JSON Patch是一种描述JSON文档更改的格式。当只更改了一部分时,可用于避免发送整个文档。当与HTTP PATCH方法结合使用时,它允许以符合标准的方式对HTTP API进行部分更新。 JSON Patch本身就是JSON文档。 为什么使用JsonPatch: JSON Patch的 阅读全文
posted @ 2020-08-20 15:15 .Neterr 阅读(2678) 评论(0) 推荐(1)
摘要: 简介 DDD是一种开发理念,核心是维护一个反应领域概念的模型(领域模型是软件最核心的部分,反应了软件的业务本质),然后通过大量模式来指导模型设计与开发。 DDD中最核心的是Domain Model(领域模型),和领域模型相对的是事务脚本。领域模型和事务脚本说到底就是面向对象和面向过程的区别。 DDD 阅读全文
posted @ 2020-08-16 11:27 .Neterr 阅读(1012) 评论(0) 推荐(0)
摘要: 信号 除了锁之外,.Net还提供了线程间更自由通讯工具,它们提供了通过“信号”通讯的机制。有时候你需要让线程处于等待状态,直到接收其他线程发来的消息,这就叫发送信号 最简单的发送信号的方式就是使用ManualResetEvent、ManualResetEvent。调用它的WaitOne()方法阻塞线 阅读全文
posted @ 2020-08-12 21:38 .Neterr 阅读(203) 评论(0) 推荐(0)
摘要: Provider和Factory的区别: 可以往工厂里面添加Provider。也就是说Factory里面可能存在着许许多多的Provider。而这些Provider将是最后Factory创建出结果的必要支撑。 我们可以在项目中根据已有的provider接口,演变出各种的策略来,比如 XMLLogPr 阅读全文
posted @ 2020-08-11 00:35 .Neterr 阅读(2701) 评论(0) 推荐(0)
摘要: 概述 传统的单体应用一般采用的是数据库提供的事务一致性,通过数据库提供的提交以及回滚机制来保证相关操作的ACID,这些操作要么同时成功,要么同时失败。各个服务看到数据库中的数据是一致的,同时数据库的操作也是相互隔离的,最后数据也是在数据库中持久存储的。 在分布式环境下由于各个服务访问的数据是相互分离 阅读全文
posted @ 2020-08-08 19:03 .Neterr 阅读(479) 评论(0) 推荐(1)
摘要: 一个事务要更新一行,如果刚好有另外一个事务拥有这一行的行锁,会被锁住,进入等待状态。既然进入了等待状态,那么等到这个事务自己获取到行锁要更新数据的时候,它读到的值又是什么呢? 事务A事务B事务C start transaction consistent snapashot; start transa 阅读全文
posted @ 2020-08-08 16:50 .Neterr 阅读(360) 评论(0) 推荐(0)
摘要: 背景 在使用容器部署时,每次修改配置文件都需要重新构建镜像。当然你也可能会说,我的配置文件很稳定不需要修改,但你又如何确保配置文件中一些机密配置的安全问题呢?比如暴露了你的远程数据库的连接信息。 ConfigMap/Secret K8S中引入了ConfigMap/Secret来存储配置数据,分别用于 阅读全文
posted @ 2020-08-08 10:02 .Neterr 阅读(426) 评论(0) 推荐(0)
摘要: DateTime time = DateTime.Now; time.ToString("格式化字符串格式",DateTimeFormatInfo.InvariantInfo) /字符串格式 * * d :08/17/2000 * D :Thursday, August 17, 2000 * f : 阅读全文
posted @ 2020-08-04 10:53 .Neterr 阅读(173) 评论(0) 推荐(0)
摘要: 相关概念 RPC,是Remote Procedure Call的简称,即远程过程调用。 通俗点来说,假设有两台服务器A和B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数或者方法,由于不在同一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。 一般在RabbitMQ 阅读全文
posted @ 2020-07-26 16:55 .Neterr 阅读(206) 评论(0) 推荐(0)
摘要: 如何保证消息100%投递成功: 保证消息投递成功需要在生产者、消息队列、消费者3个环节控制 消息队列 消息队列需要将交换器、队列、消息持久化,防止因断电等问题导致数据因没有持久化而丢失 生产者 生产者需要确保消息发送到消息队列,需要使用事务或消息确认的方式可以确保数据发送成功,推荐使用消息确认方式。 阅读全文
posted @ 2020-07-26 16:46 .Neterr 阅读(893) 评论(0) 推荐(0)
摘要: 定义 迭代器模式提供了一种方法,顺序访问集合对象中的元素,而又不暴露该对象的内部实现。 将集合中遍历元素的操作抽象出来,这样符合面向对象设计原则中的单一职责原则,我们要尽可能的分离这些职责,用不同的类去承担不同的责任,避免一个类中承担太多的责任。迭代器模式就是用迭代器类来承担遍历集合元素的责任。 自 阅读全文
posted @ 2020-07-25 11:31 .Neterr 阅读(103) 评论(0) 推荐(0)
摘要: Header交换机案例 private void btnHeadersPublish_Click(object sender, EventArgs e) { using (var channel = connection.CreateModel()) { channel.ExchangeDeclar 阅读全文
posted @ 2020-07-23 23:18 .Neterr 阅读(436) 评论(0) 推荐(0)
摘要: 发布消息(BasicPublish) void BasicPublish(string exchange, string routingKey, bool mandatory, IBasicProperties basicProperties, byte[] body); void BasicPub 阅读全文
posted @ 2020-07-23 23:16 .Neterr 阅读(465) 评论(0) 推荐(0)
摘要: RabbitMQ六种消息模型 Hello World 最简单的消息模型,图中没有交换器,实际使用的是默认交换器,默认交换器的类型是Direct,默认'binding key'和队列名同名 发送消息时交换器名传空字符串,binding key传队列名 // 发消息 using (var channel 阅读全文
posted @ 2020-07-23 22:49 .Neterr 阅读(217) 评论(0) 推荐(0)
摘要: Queue参数 durable:是否持久化, 队列默认是存放到内存中的,rabbitmq重启会丢失,如果想重启之后还存在就要使队列持久化,保存到Erlang自带的Mnesia数据库中,当rabbitmq重启之后会读取该数据库 exclusive:是否排外的,队列在当前connection下的chan 阅读全文
posted @ 2020-07-21 23:46 .Neterr 阅读(1093) 评论(0) 推荐(0)
摘要: 概述 分布式锁是一种用于协调多个进程/节点之间的并发访问的机制,确保某个资源在同一时刻只能被一个应用所使用。它通常通过一些共享的外部存储系统来实现跨进程的同步和互斥。在分布式系统中,分布式锁用于确保在同一时间,只有一个进程/服务可以执行临界区代码,从而避免了并发操作中的冲突和数据不一致。 Distr 阅读全文
posted @ 2020-07-20 18:55 .Neterr 阅读(116) 评论(0) 推荐(0)
摘要: 显示当前服务器版本 ``` select version(); ``` 显示当前用户 ``` select user(); ``` 显示当前用户打开的数据库 ``` select database(); ``` 连接id ``` select connection_id(); ``` 最后插入记录i 阅读全文
posted @ 2020-07-20 18:01 .Neterr 阅读(142) 评论(0) 推荐(0)
摘要: # SQL分类 * `DDL(Data Definition Languages、数据定义语言)`,这些语句定义了不同的数据库、表、视图、索 引等数据库对象,还可以用来创建、删除、修改数据库和数据表的结构。 主要的语句关键字包括 CREATE 、 DROP 、 ALTER 等 * `DML(Data 阅读全文
posted @ 2020-07-19 20:38 .Neterr 阅读(467) 评论(0) 推荐(0)
摘要: 乐观锁与悲观锁: 众所周知锁有两种:乐观锁与悲观锁。独占锁是一种悲观锁,而 Lock 就是一种独占锁,Lock 会导致其它所有未持有锁的线程阻塞,而等待持有锁的线程释放锁。所谓乐观锁就是,每次不加锁而是假设没有冲突而去完成某项操作,如果因为冲突失败就重试,直到成功为止,这个过程叫自旋。而乐观锁用到的 阅读全文
posted @ 2020-07-19 16:22 .Neterr 阅读(815) 评论(0) 推荐(0)
摘要: Redis是一个高效的内存数据库,它支持包括String、List、Set、SortedSet和Hash等数据类型的存储,在Redis中通常根据数据的key查询其value值,Redis没有条件查询,在面对一些需要分页或排序的场景时(如评论,时间线),Redis就不太好不处理了。 前段时间在项目中需 阅读全文
posted @ 2020-07-18 11:37 .Neterr 阅读(3067) 评论(0) 推荐(0)
摘要: 实现一个.net framework中Server功能 ConfigureWebServices(this IServiceCollection services){ services.AddSingleton(typeof(HttpServerUtilityBase)); } /// <summa 阅读全文
posted @ 2020-07-16 14:45 .Neterr 阅读(661) 评论(0) 推荐(0)
摘要: 同源策略 同源策略是一个重要的安全策略,它用于限制一个origin的文档或者它加载的脚本如何能与另一个源的资源进行交互。它能帮助阻隔恶意文档,减少可能被攻击的媒介。 同源的定义 如果两个 URL 的 protocol、port 和 host 都相同的话,则这两个 URL 是同源。 源的更改 满足某些 阅读全文
posted @ 2020-07-15 14:03 .Neterr 阅读(1083) 评论(0) 推荐(0)
摘要: Core为我们提供了自定义token验证的接口,当我们需要使用自己的方式验证token时可以使用。 比如Jwt只能数据签名,不能加密。当需要校验加密的jwt token。在登录时将jwt token加密后传给客户端,客户端回传token。这时需要我们自定义token校验。 自定义token校验,实现 阅读全文
posted @ 2020-07-14 22:15 .Neterr 阅读(5823) 评论(0) 推荐(1)
摘要: 为什么优先使用组合而不是继承 继承的起源,来自于多个类中相同特征和行为的抽象。子类可以通过继承父类,那么可以调用父类中定义的方法和属性,从而达到代码重用的目的。另外,子类除了重用父类的代码以外,还可以扩展自身的属性和方法,来描述子类特有的特征和行为。 例如:人类和马类这两个类,有什么共同的特征和行为 阅读全文
posted @ 2020-07-13 10:14 .Neterr 阅读(163) 评论(0) 推荐(0)
摘要: 介绍 支持数字类型、浮点类型运算表达式运算,看下面的案例 具体步骤 1)初始化两个栈:运算符栈s1和储存中间结果的栈s2; 2)从左至右扫描中缀表达式; 3)遇到操作数时,将其压s2; 4)遇到运算符时,比较其与s1栈顶运算符的优先级: (1)如果s1为空,或栈顶运算符为左括号“(”,则直接将此运算 阅读全文
posted @ 2020-07-12 23:47 .Neterr 阅读(403) 评论(0) 推荐(0)
摘要: 链表 链表是以节点的方式存储 每个节点包含data域,next域,next域指向下一个节点 链表分为:带头结点、不带头节点,根据实际需求确定 客户端 LinkedList<string> list = new LinkedList<string>(); list.Add("fan"); list.A 阅读全文
posted @ 2020-07-11 23:42 .Neterr 阅读(127) 评论(0) 推荐(0)
上一页 1 ··· 3 4 5 6 7 8 9 10 11 12 下一页