随笔分类 -  .NET Research

摘要:Windbg程序调试是.Net高级开发需要掌握的必备技能,分析内存泄露、分析高CPU、分析线程阻塞、分析内存对象、分析线程堆栈、Live Dedugging。这个领域可以说一个技能+场景化应用的结合,如果单学Windbg命令,不理解实际Troubleshooting中的作用,是没有意义的。所以,准备 阅读全文
posted @ 2018-10-28 20:08 Eric zhou 阅读(4768) 评论(5) 推荐(9)
摘要:最近一直在频繁使用Windbg做线上Dump调试,与微软做Case交流的时候,发现微软CSS团队,用了一个非常效率的Windbg 插件,Mex: 使用介绍: https://blogs.msdn.microsoft.com/luisdem/2016/07/19/mex-debugging-exten 阅读全文
posted @ 2018-07-26 09:14 Eric zhou 阅读(4671) 评论(0) 推荐(3)
摘要:我们现在用的数据访问组件封装了IBatis.Net框架,提供了标准的数据访问接口和服务。正好总结一下老技术IBatis.Net在进行实际的数据访问开发之前,我们先了解一下:IBatis.Net中几个重要的配置文件和一些关键的技术原理:4个重要的配置文件: 关键的技术特性 开发一个数据访问的业务功能, 阅读全文
posted @ 2017-10-14 22:51 Eric zhou 阅读(2342) 评论(6) 推荐(3)
摘要:在生产环境中,通过运行日志我们会发现一些异常问题,此时,我们不能直接拿VS远程到服务器上调试,同时日志输出的信息无法百分百反映内存中对象的状态,比如说我们想查看进程中所有的Socket连接状态、服务路由信息等等。 即:如何分析.Net 运行时内存对象? 所以,今天我们推荐.Net进阶必备神器:Win 阅读全文
posted @ 2017-10-06 10:42 Eric zhou 阅读(3430) 评论(3) 推荐(6)
摘要:最近在做服务的细粒度治理,统一管理所有服务的方法、参数、返回值信息。方便后续的各个模块之间的对接和协作。 目前系统中所有的服务,管理到接口契约粒度,即服务接口声明和服务接口实现。要做服务的细粒度治理: 首先需要将服务的各个方法信息全部反射出来,然后再统一管理。 大致的思路是这样的: 1. 下载所有最 阅读全文
posted @ 2017-09-29 12:50 Eric zhou 阅读(2366) 评论(5) 推荐(3)
摘要:随着ASP.NET Core 2.0发布之后,原先运行在Windows IIS中的ASP.NET WebApi站点,就可以跨平台运行在Linux中。我们有必要先说一下ASP.NET Core。 ASP.NET Core 是新一代的 ASP.NET,第一次出现时的代号为 ASP.NET vNext,后 阅读全文
posted @ 2017-09-28 11:47 Eric zhou 阅读(3816) 评论(22) 推荐(22)
摘要:上一篇文章,我们做了内存数据库的技术选型: 内存数据库技术选型 本文中,我们继续深入研究Apache Ignite,同时分享一些我们.Net的编码实践。 首先,Apache Ignite是一个内存数据组织是高性能的、集成化的以及分布式的内存平台,他可以实时地在大数据集中执行事务和计算,和传统的基于磁 阅读全文
posted @ 2017-08-26 22:18 Eric zhou 阅读(6875) 评论(4) 推荐(3)
摘要:最近一段时间研究了内存数据库,总结了一下,分享给大家。我们先从应用场景说起。 一. 内存数据库的应用场景 数据缓存:将经常使用的数据存放在内存中,全局共享,减少和数据库之间的交互频率,提升数据访问速度,主要用于应用程序全局共享缓存。 内存计算:支持通过标准SQL或者LINQ的方式实现对内存数据的聚合 阅读全文
posted @ 2017-08-25 22:39 Eric zhou 阅读(55354) 评论(0) 推荐(6)
摘要:上两篇文章我们介绍了时序数据库Influxdb在互联网级监控系统下的应用: 互联网级监控系统必备-时序数据库之Influxdb技术 互联网级监控系统必备-时序数据库之Influxdb集群及踩过的坑 在我们监控平台V1.0和V2.0版本的演进过程中,设计上,我们在监控引擎端引入了内存存储的理念,即监控 阅读全文
posted @ 2017-08-24 23:13 Eric zhou 阅读(2382) 评论(0) 推荐(6)
摘要:上篇博文中,我们介绍了做互联网级监控系统的必备-Influxdb的关键特性、数据读写、应用场景: 互联网级监控系统必备-时序数据库之Influxdb 本文中,我们介绍Influxdb数据库集群的搭建,同时分享一下我们使用集群遇到的坑! 一、环境准备 二、一步一步搭建Influxdb集群 1. 在各个 阅读全文
posted @ 2017-07-12 08:40 Eric zhou 阅读(20786) 评论(8) 推荐(9)
摘要:时间序列数据库,简称时序数据库,Time Series Database,一个全新的领域,最大的特点就是每个条数据都带有Time列。 时序数据库到底能用到什么业务场景,答案是:监控系统。 Baidu一下,互联网监控系统,大家会发现小米、饿了吗等互联网巨头都在用时序数据库实现企业级的互联网监控系统。 阅读全文
posted @ 2017-07-11 22:28 Eric zhou 阅读(31166) 评论(6) 推荐(11)
摘要:上周,我们举办了第二届技术沙龙,我这边主要演讲了消息队列技术的议题,现分享给大家: 在我们团队内部,随着消息应用中心(任务中心)的广泛应用,有时候我们感觉不到消息队列的存在,但这不影响消息队列在高可用、分布式、高并发架构下的核心地位。 消息队列都应用到了哪些实际的应用场景中? 一、再谈消息队列的应用 阅读全文
posted @ 2017-07-03 12:01 Eric zhou 阅读(35129) 评论(7) 推荐(19)
摘要:分享一则先前对Windows Server AppFabric分布式缓存的技术研究。 一. AppFabric 技术架构和原理 AppFabric与Memcached类似,采用C/S的模式,在 server 端启动服务进程,在启动时可以指定监听的 ip,自己的端口号,所使用的内存大小等几个关键参数。 阅读全文
posted @ 2017-06-21 09:05 Eric zhou 阅读(1655) 评论(4) 推荐(2)
摘要:上两篇文章,主要介绍了Thread、ThreadPool和TPL 多线程异步编程示例和实践-Thread和ThreadPool 多线程异步编程示例和实践-Task 本文中,分享两则我们在做多线程和异步编程中实际踩过的坑,实际生产环境遇到的问题,以及解决办法。 1. HttpClient 业务场景:使 阅读全文
posted @ 2017-06-16 08:52 Eric zhou 阅读(4213) 评论(8) 推荐(10)
摘要:上篇博文中,我们介绍了Thread和ThreadPool: 多线程异步编程示例和实践-Thread和ThreadPool 本文中我们继续,说一下TPL(Task Parallel Library, 简称TPL)。 在实际的开发中,使用线程池相当复杂,线程的异常捕获、传递以及编排这些问题实现起来都很复 阅读全文
posted @ 2017-06-09 09:13 Eric zhou 阅读(5508) 评论(9) 推荐(8)
摘要:说到多线程异步编程,总会说起Thread、ThreadPool、Task、TPL这一系列的技术。总结整理了一版编程示例和实践,分享给大家。 先从Thread和ThreadPool说起: 1. 创建并启动线程 2. 暂停线程 当前线程在执行Thread.Sleep方法时,会等待指定的时间(1000ms 阅读全文
posted @ 2017-06-08 08:45 Eric zhou 阅读(2291) 评论(15) 推荐(4)
摘要:最近在总结多线程、CLR线程池以及TPL编程实践,重读一遍CLR via C#,比刚上班的时候收获还是很大的。还得要多读书,读好书,同时要多总结,多实践,把技术研究透,使用好。 话不多说,直接上博文吧。先说一下,为什么Windows要支持线程机制? 1. Windows为什么要支持线程 计算机的早期 阅读全文
posted @ 2017-05-26 09:23 Eric zhou 阅读(1391) 评论(0) 推荐(2)
摘要:上篇博文中,我们通过编程的方式介绍了如何将事件消息发送到Azure Event Hub: Azure Event Hub 技术研究系列2-发送事件到Event Hub 本篇文章中,我们继续:从Event Hub中接收事件。 1. 新建控制台工程 EventHubReceiver 2. 添加Nuget 阅读全文
posted @ 2017-05-17 03:19 Eric zhou 阅读(2005) 评论(1) 推荐(2)
摘要:上篇博文中,我们介绍了Azure Event Hub的一些基本概念和架构: Azure Event Hub 技术研究系列1-Event Hub入门篇 本篇文章中,我们继续深入研究,了解Azure Event Hub的创建、编程SDK,实现将事件发送到云端的Azure Event Hub。 一、Azu 阅读全文
posted @ 2017-05-17 02:30 Eric zhou 阅读(2749) 评论(0) 推荐(2)
摘要:最近编码的过程中,使用了对象本地内存缓存,缓存用了Dictionary<string,object>, ConcurrentDictionary<string,oject>,还可以是MemoryCache(底层基于Hashtable)。使用缓存,肯定要处理数据变化缓存同步的问题。如何比较数据的变化, 阅读全文
posted @ 2017-04-25 06:24 Eric zhou 阅读(839) 评论(0) 推荐(0)