08 2018 档案
摘要:MySQL 8.0 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能! 注意:从 MySQL 5.7 升级到 MySQL 8.0 仅支持通过使用 in-place 方式进行升级,并且不支持从 MySQL 8.0 降级到 My
阅读全文
摘要:Task.Run 是在 dotnet framework 4.5 之后才可以使用, Task.Factory.StartNew 可以使用比 Task.Run 更多的参数,可以做到更多的定制。 可以认为 Task.Run 是简化的 Task.Factory.StartNew 的使用,除了需要指定一个线
阅读全文
摘要:关于数据库索引的所有文章,都会告诉你不要对这种字段建索引。 但这些文章不会告诉你的一个事实是: 如果表里面这个字段的值分布极度不均匀的情况下,而且你需要查询分布较少的记录的话,索引就非常有用了 举个例子,假设表中有一千万条记录,某个状态为0的记录总数大概会有100条,那么你想查询状态为0的记录时,有
阅读全文
摘要:为什么需要异步,异步对可能起阻止作用的活动(例如,应用程序访问 Web 时)至关重要。 对 Web 资源的访问有时很慢或会延迟。 如果此类活动在同步过程中受阻,则整个应用程序必须等待。 在异步过程中,应用程序可继续执行不依赖 Web 资源的其他工作,直至潜在阻止任务完成。 本节将一步一步带领大家理解
阅读全文
摘要:一、结构 corn从左到右(用空格隔开):秒 分 小时 月份中的日期 月份 星期中的日期 年份 二、各字段的含义 注意事项: 每一个域都使用数字,但还可以出现如下特殊字符,它们的含义是: (1)*:表示匹配该域的任意值。假如在Minutes域使用*, 即表示每分钟都会触发事件。 (2)?:只能用在D
阅读全文
摘要:手持两把锟斤拷,口中疾呼烫烫烫。脚踏千朵屯屯屯,笑看万物锘锘锘 解释一下为什么会是这两个东西不是别的= =: 棍斤拷乱码: 源于GBK字符集和Unicode字符集之间的转换问题。Unicode和老编码体系的转化过程中,肯定有一些字,用Unicode是没法表示的,Unicode官方用了一个占位符来表示
阅读全文
摘要:参考文章:http://www.cnblogs.com/GoodHelper/archive/2009/10/25/SpringNET_Config.html 一、环境下载及安装 到Spring的官方网站下载Spring.NET框架的安装文件(Spring.NET-1.3.0-RC1.exe)。目前
阅读全文
摘要:引言 在开发中,往往会遇到一些关于延时任务的需求。例如 生成订单30分钟未支付,则自动取消 生成订单60秒后,给用户发短信 生成订单30分钟未支付,则自动取消 生成订单60秒后,给用户发短信 对上述的任务,我们给一个专业的名字来形容,那就是延时任务。那么这里就会产生一个问题,这个延时任务和定时任务的
阅读全文
摘要:什么是缓存击穿 在谈论缓存击穿之前,我们先来回忆下从缓存中加载数据的逻辑,如下图所示 因此,如果黑客每次故意查询一个在缓存内必然不存在的数据,导致每次请求都要去存储层去查询,这样缓存就失去了意义。如果在大流量下数据库可能挂掉。这就是缓存击穿。 场景如下图所示: 我们正常人在登录首页的时候,都是根据u
阅读全文
摘要:首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。 但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存。又或者是先删除缓存,再更新数据库,其实大家存在很大的争议。目前没有一篇全面的博客,对这几种方案进行解析。于
阅读全文
摘要:本文围绕以下几点进行阐述 1、为什么使用redis2、使用redis有什么缺点3、单线程的redis为什么这么快4、redis的数据类型,以及每种数据类型的使用场景5、redis的过期策略以及内存淘汰机制6、redis和数据库双写一致性问题7、如何应对缓存穿透和缓存雪崩问题8、如何解决redis的并
阅读全文
摘要:1、概述 log4net是.Net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。本文主要是介绍如何在Visual Studio2008中使用log4net快速创建系统日志,如何扩展以输出自定义字段。 2、一个简单的使
阅读全文
摘要:一、log4net简介: 1. Log4net的优点: 几乎所有的大型应用都会有自己的用于跟踪调试的API。因为一旦程序被部署以后,就不太可能再利用专门的调试工具了。然而一个管理员可能需要有一套强大的日志系统来诊断和修复配置上的问题。 经验表明,日志记录往往是软件开发周期中的重要组成部分。它具有以下
阅读全文
摘要:从v0.7.1.30开始,EasyNetQ简单易用AutoSubscriber。你可以用它来轻松地扫描实现任何接口的类的特定组件IConsume<T>或IConsumeAsync<T>,然后让汽车用户订阅这些消费者到你的总线。一个实现IConsume<T>将使用总线订阅方法,而实现IConsumeA
阅读全文
摘要:许多业务流程要求在将来某个日期安排事件。例如,在与客户进行初次销售联系后,我们可能希望在将来的某个时间安排跟进电话。EasyNetQ可以通过其Future Publish功能帮助您实现此功能。例如,这里我们使用FuturePublish扩展方法来安排未来一个月的后续销售电话。请注意,FuturePu
阅读全文
摘要:默认的AMQP发布不是事务性的,并不保证您的消息实际到达代理。AMQP确实指定了事务发布,但是使用RabbitMQ它非常慢,我们还没有通过EasyNetQ API支持它。对于高性能保证交付,建议您使用“发布者确认”。简单来说,这是AMQP的扩展,它在代理成功接收到您的消息时提供回调。 “成功收到”是
阅读全文
摘要:您可以订阅接口,然后发布该接口的实现。 我们来看一个例子。我有一个接口IAnimal和两个实现Cat和Dog: 我可以订阅IAnimal并接收Cat和Dog类: 让我们发布一只猫和一只狗: 请注意,我必须明确指定我发布IAnimal。EasyNetQ使用发布和订阅方法中指定的泛型类型将发布路由到订阅
阅读全文
摘要:在为队列生成名称时,EasyNetQ的默认行为是使用消息类型名称并将其附加到订阅ID。例如PartyInvitation,命名空间中的消息类型EasyNetQ.Tests.Integration将使用队列名称EasyNetQ.Tests.Integration.PartyInvitation:Eas
阅读全文
摘要:RabbitMQ具有非常酷的功能,基于主题的路由,允许订户根据多个标准过滤消息。主题是由与消息一起发布的点分隔的单词列表。例如,“stock.usd.nyse”或“book.uk.london”或“abc”,这些单词可以是您喜欢的任何内容,但通常是该消息的某些属性。主题字符串的长度限制为255个字符
阅读全文
摘要:发布/订阅和请求/响应模式是位置透明的,因为您不需要指定消息的使用者所在的位置,而发送/接收模式专门用于通过命名队列进行通信。它也不会假设可以通过队列发送的消息类型。这意味着您可以通过同一队列发送不同类型的消息。 发送/接收模式非常适合创建“命令管道”,您需要将缓冲通道发送到单个命令处理器。 要发送
阅读全文
摘要:EasyNetQ还支持请求/响应消息传递模式。这使得实现客户端/服务器应用程序变得容易,客户端向服务器发出请求,然后服务器处理请求并返回响应。与传统的RPC机制不同,EasyNetQ请求/响应操作没有名称,但只是由请求/响应消息类型对定义。 此外,与传统的RPC机制(包括大多数Web服务工具包)不同
阅读全文
摘要:EasyNetQ订阅者订阅消息类型(消息类的.NET类型)。一旦通过调用Subscribe方法设置了对类型的订阅,就会在RabbitMQ代理上创建一个持久队列,并且该类型的任何消息都将被放置在队列中。只要连接,RabbitMQ就会将任何消息从队列发送给用户。 要订阅消息,我们需要为EasyNetQ提
阅读全文
摘要:EasyNetQ支持的最简单的消息传递模式是发布/ 订阅。这种模式是消除消费者信息提供者的绝佳方式。出版商简单地向全世界说,“这已经发生了”或“我现在有了这些信息”。它不关心是否有人正在倾听,他们可能是谁或他们所在的位置。我们可以添加和删除特定消息类型的订阅者,而无需重新配置发布者。我们还可以让许多
阅读全文
摘要:EasyNetQ可以通过SSL连接。戈登·库尔特(Gordon Coulter)撰写的这本指南最初是针对一个提出的问题而写的。 首先,您必须仔细按照https://www.rabbitmq.com/ssl.html上的步骤操作。我花了很多时间试图让openssl部分工作,然后花更多的时间让它按照我需
阅读全文
摘要:如果您习惯于处理与SQL Server等关系数据库的连接,那么您可能会发现EasyNetQ处理连接的方式有点奇怪。与关系数据库的通信始终由客户端启动。客户端打开连接,发出SQL命令,在必要时处理结果,然后关闭连接。一般的建议是,您应该在尽可能短的时间内保持打开连接,并将连接池保留给API。 与Rab
阅读全文
摘要:EasyNetQ是一个简单易用的,稳定的的RabbitMQ .NET API 。 如果您只想尽快启动并运行,请转到“ 快速开始”指南。 EasyNetQ的目标是提供一个库,使得在.NET中使用RabbitMQ尽可能简单。为了做到这一点,它必须采取一种自以为是的观点,看看你应该如何使用RabbitMQ
阅读全文
摘要:欢迎来到EasyNetQ。本指南向您展示如何在大约10分钟内启动并运行EasyNetQ。 你可以在GitHub上找到这个快速入门的代码:https://github.com/mikehadlow/EasyNetQTest EasyNetQ是一个简单易用的RabbitMQ客户端API。首先安装Rabb
阅读全文
摘要:ICache 接口 CacheManager 管理类 asp.net 系统缓存封装 自定义缓存 调用代码 :拿用户登录做列子 MVC检验登陆和权限的filter 特性AuthorityFilter验证是否登陆 转自:https://blog.csdn.net/u014742815/article/d
阅读全文