前言 最近需要使用到消息队列相关技术,于是重新接触RabbitMQ.其中遇到了不少可靠性方面的问题,归纳了一下,大概有以下几种: 1. 临时异常,如数据库网络闪断.http请求临时失效等: 2. 时序异常,如A任务依赖于B任务,但可能由于调度或消费者分配的原因,导致A任务先于B任务执行: 3. 业务异常,由于系统测试不充分,上线后发现某几个或某几种消息无法正常处理: 4. 系统异常,业务中间件无法正常操作,如网络中断.数据库宕机等: 5. 非法异常,一些伪造.攻击类型的消息. 针对这些异常,我采…
前言 本文介绍在k8s集群中使用node-exporter.prometheus.grafana对集群进行监控.其实现原理有点类似ELK.EFK组合.node-exporter组件负责收集节点上的metrics监控数据,并将数据推送给prometheus, prometheus负责存储这些数据,grafana将这些数据通过网页以图形的形式展现给用户. 在开始之前有必要了解下Prometheus是什么?Prometheus (中文名:普罗米修斯)是由 SoundCloud 开发的开源监控报警系统和…
//注:此函数主要的特点为准,快,体积小,非常适合于8位单片机 int16 crc_1021(int16 old_crc, int8 data) {   int16 crc;   int16 x;     x = ((old_crc>>8) ^ data) & 0xff;     x ^= x>>4; crc = (old_crc << 8) ^ (x << 12) ^ (x <<5) ^ x; crc &= 0xffff; re…
很长一段时间以来,我都在思考如何在ASP.NET Core的框架下,实现一套完整的事件驱动型架构.这个问题看上去有点大,其实主要目标是为了实现一个基于ASP.NET Core的微服务,它能够非常简单地订阅来自于某个渠道的事件消息,并对接收到的消息进行处理,于此同时,它还能够向该渠道发送事件消息,以便订阅该事件消息的消费者能够对消息数据做进一步处理.让我们回顾一下微服务之间通信的几种方式,分为同步和异步两种.同步通信最常见的就是RESTful API,而且非常简单轻量,一个Request/Resp…
前言: 自从.net core问世之后,就一直想了解.但是由于比较懒惰只是断断续续了解一点.近段时间工作不是太忙碌,所以偷闲写下自己学习过程.慢慢了解.net core 等这些基础方面学会之后再用.net core写一个项目,前期文章都是为之后的项目做准备.同时也希望这些基础文章能帮助更多的想入手 .net core的小白.(文中如有不正确地方欢迎各位指正) 开发工具vs2017 数据库  mysql8.0 .net core环境 .net core2.1 1]model层建立 先新建一个项目:…
C#中缓存的使用   缓存的概念及优缺点在这里就不多做介绍,主要介绍一下使用的方法. 1.在ASP.NET中页面缓存的使用方法简单,只需要在aspx页的顶部加上一句声明即可:  <%@ OutputCache Duration="100" VaryByParam="none" %> Duration:缓存时间(秒为单位),必填属性 2.使用微软自带的类库System.Web.Caching 新手接触的话不建议直接使用微软提供的类库,因为这样对理解不够深刻…
一.前言     上篇说给大家来写C#和Java的方案,最近工作也比较忙,迟到了一些,我先给大家补上C#的方案,另外如果没看我上篇博客的人最好看一下,否则你可能看的云里雾里的,这里我就不进行具体的方案画图了:传送门 二.使用的插件     HangFire 一个开源的.NET任务调度框架,最大特点在于内置提供集成化的控制台,方便后台查看及监控,支持多种存储方式:在方案中主要使用定时任务做补偿机制,后期可能会封装一些,能通过页面的形式直接添加任务: NLog 日志记录框架,方案中使用记录日志,后期…
一直有自己写个框架的想法,但是一直没有行动起来,最近比较闲,正好可以开工了. 现在已经完成了两部分.1.一个简单仓储,实现使用的是ef 2.IOC部分,这里是把内置的ioc替换成了aotofac,这部分感觉还是有一点缺陷的.下面说 仓储部分 这里主要是接口是实现,目前使用ef实现了仓储的接口.看一下代码 public interface IRepository<TEntity, TPrimaryKey> where TEntity : class { #region Select/Get/Qu…
先拉开MSDN的文档,大致读一遍 (https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/websockets) WebSocket 是一个协议,支持通过 TCP 连接建立持久的双向信道. 它可用于聊天.股票报价和游戏等应用程序,以及 Web 应用程序中需要实时功能的任何情景. 使用方法 安装 Microsoft.AspNetCore.WebSockets 包. 配置中间件. 接受 WebSocket 请求. 发送和接收消息. 如果是…
并发编程概述   前言 说实话,在我软件开发的头两年几乎不考虑并发编程,请求与响应把业务逻辑尽快完成一个星期的任务能两天完成绝不拖三天(剩下时间各种浪),根本不会考虑性能问题(能接受范围内).但随着工作内容的变化,一些问题,它的解决方案已经让我避不开并发编程这一块知识点了.为了一劳永逸,此系列与并发编程有关的系列文章诞生,希望对各有有所帮助.   基础术语 同步(synchronization):关于协调线程或进程之间的活动,并确保被多个线程或进程访问的数据一直有效,同步允许线程和进程一致地操作…