- 博客(30)
- 收藏
- 关注
转载 使用Dump转储文件排查线上环境服务未知问题
利用Dump转储文件获取正式环境程序堆栈状态服务异常找不到原因时,我们通常通过重新启动服务来尝试解决问题,但是在决定重启之前,请不要立刻重启Windows服务或站点重启服务会让当前案发现场的内存证据丢失,即便是服务恢复正常了,也无法确认问题发生的原因,利用 Windows Dump 转储文件,可以将正在运行中的服务或站点的堆栈信息保存下来,然后在Visual Studio或Win...
2018-10-18 14:06:00
398
转载 DDD漫想
领域专用语言领域驱动设计(Domain Driver Design)开发中,最令我震撼的是领域专用语言(Domain specific language),领域专用语言专注于描述当前领域内的业务细节,与具体技术实现细节解耦在领域驱动设计中,具体的技术细节(数据库,消息队列,缓存),以框架的形式存在,其框架的主要作用是将领域专用语言变成可执行的存在DDD中领域专用语言并不是指一种全新...
2018-10-15 22:19:00
178
转载 利用VS2017跨平台远程调试aspnetcore应用
vs2017开始支持跨平台远程调试coreclr的应用,通常用于调试linux与mac上运行的aspnetcore程序,而如果运行在docker中的应用要使用跨平台远程调试功能,首先运行coreclr应用的环境要可以ssh远程连接,如果应用运行运行在docker中,那么首先需要先安装ssh服务,并启动首先要构建一个包含ssh服务的aspnetcore镜像,Dockerfile如下:...
2018-10-13 00:28:00
291
转载 设计原则,设计模式漫想
软件自产生之后,功能从一开始的简单慢慢演变到复杂,参与到其中的开发人员也越来越多其根本原因,就是需求的改变,在以前,对软件的需求很简单,通常只是固定的一两个功能,开发完成后基本不用维护随着时间的发展,人们对软件的需求越来越复杂,变化越来越快最终产生了各种难以维护的代码,稍微一个改动就会影响到很多现有的功能,需要分析整个程序的逻辑才能去做处理于是编程软件迫切需要一种能够解决扩展难,...
2018-09-14 16:52:00
107
转载 Task异步编程,刨根到底
1. 编译器到底对await做了什么await 一个异步操作的时候,实际上编译器会创建一个状态机,这个状态机包含了调用者的上下文变量,状态机使用yield迭代器实现,状态机由clr调度,每次运行都会重新加入回队列,直到Task完成或异常结束2.Task有哪些实现方式经常我们可以看到一些库中使用TaskCompletionSource来创建Task,改变Task的状态,实际上T...
2018-08-28 21:30:00
175
转载 Docker中使用createdump调试coreclr
应用上线后可能出现一些问题,通过源码排查,日志分析都不能确定具体原因的情况下,可以使用dump转存文件分析,netcore对于linux系统dump提供了createdump工具,配合lldb sos插件进行clr级分析启动一个dotnet容器,使用特权运行,createdump要访问其他进程内存,特权是必须的docker run --name dotnet --rm -it -...
2018-08-18 11:03:00
370
转载 数据库优化的一些方向
数据库优化,sql与索引效果最明显,也是最简单的方法而想要优化sql和索引,首先就需要知道sql的性能如何,是否有效命中索引,索引匹配行数,查询消耗时间分析这些性能指标,借助sql分析工具是最常用的方法,使用SQLServer中的执行计划,能够看到sql每一个操作的消耗,预读行数有时候,我们不确定哪些sql最终会造成性能影响,就可以借助SQLServer Profiler工具,通过...
2018-08-16 20:57:00
365
转载 再谈高性能Web服务器,MemoryPool的作用
在以往使用c#实现scoket服务器中,通常遇到一个问题就是内存占用高,GC次数频繁,导致处理能力直线下降其主要原因是在处理socket请求时,大量的申请,复制内存,为了解决这个问题,NET Core 2.1引入了Span<T>,Memory<T>,MemoryPool<T>操作类型其主要目的是能够像c/c++一样,使用指针去访问,释放内存,提...
2018-08-13 06:17:00
234
转载 netcore高性能Web服务器Kestrel分析
Kestrel是aspnetcore中的web服务器之一,其本身有跨平台,轻量级,高性能的特点在 ryzen 1600 12核cpu 测试环境中,瞬间每秒处理请求数能达到2w5以上,与netty不相上下,相当于同样环境下iis ASP.NET处理能力的3倍左右为了了解Kestrel为什么如此强劲,我从github上下载了源代码进行分析,地址是:https://github.c...
2018-08-12 10:16:00
2022
转载 数据库自增主键可能的问题
单表的情况下数据库自增id并没有什么问题,在一张表分布到多个数据库的情况下,使用表自增将会出现id重复的问题解决的办法有两个方向,一个是在应用层做处理,一个是数据库上去做处理1.给每个数据库设置不同的开始id数据库1 从 10000..开始数据库2 从 20000..开始这种办法不依赖于其他服务实现id唯一性,即时其他数据库挂了依然能生成id2.使用一个库...
2018-08-06 01:43:00
249
转载 线程安全单例最佳实践,C#中的Lazy是如何保证线程安全的
在.NET 4.0之后,.NET Framework中提供了一种安全的延迟加载类型LazyLazy能够在多线程环境下,保证GetValue函数只执行一次,从而实现单例模式在过去,实现单例模式我们通常使用二次判断锁,或者利用类的静态初始化函数利用Lazy类型,能够简化这一过程,并且性能上更好Lazy创建的时候可以指定线程安装模式,目前有两种模式,PublicationOnly,Ex...
2018-08-05 05:50:00
841
转载 多线程编程,CPU是如何解决多线程内存访问问题的
CPU对内存变量的修改是先读取内存数据到CPU Cache中,然后再由CPU做运算,运算完成后继续写入到内存中在单核CPU中,这完全没有问题,然而在多核CPU中,每一个CPU核心都拥有自己独立的Cache此时同时访问同一个内存地址时,将会把内存值复制到多个CPU的Cache中此时如果对Cache中的值进行修改数据就将会不一致,写入到内存时,内...
2018-08-04 06:48:00
875
转载 目前常用的高并发处理手段
最近看了很多高并发的解决方案,高并发并没有通用的解决方案,也不会有现成的demo或者源码可以参考,我在这方面也没有什么经验但是从我看到很多深度不高的文章来说,可以总结出一些可以真正落地的解决办法1.入口流量分发,软件硬件分发常见的nginx代理负载均衡,lvs虚拟ip流量分发,以及F5硬件负载均衡nginx负载均衡实际上是使用http代理来实现的,流量是先进入nginx服务器...
2018-08-03 04:20:00
285
转载 3.本地集群部署与压力测试
nginx安装aspnet示例程序安装tengine安装kubernetes中部署应用很简单,打开dashboard,点击右上角创建即可通过填入镜像名称和端口地址,创建好nginx应用aspnet示例程序镜像: microsoft/dotnet-samples:aspnetapptengine镜像:cloudposse/tengine压力测试工具apache ab测试...
2018-07-31 18:39:00
296
转载 2.本地集群管理环境搭建
安装好docker之后我发现一两个应用还好,如果应用一多,一个个管理起来就很麻烦,不如直接用kubernetes来管理集群kubernetes将集群里面的机器称为node,可以是一个docker容器,也可以是一台物理机docker for windows edge版本已经集成了kubenetes,目前只支持lxc默认不开启,可以在设置面板的kubenetes中可以开启该功能开启后会在...
2018-07-31 05:05:00
148
转载 1.服务器模拟环境
想要成为经验丰富的分布式技术人员,那必须熟练服务器的搭建作为一名贫困的程序员,我没办法购置多台电脑来搭建集群,那么只能使用虚拟化主机软件达成了首先我将内存加到24G,CPU是Ryzen 1600,有12个线程,省点用可以搭建5-6个服务器了调查了各种虚拟化方案,最后还是选用了dockerdocker的优点是性能好,各大公司都在使用,是运维人员必须掌握的门技能缺点也很明显,cpu跟内存...
2018-07-31 00:48:00
272
转载 0.序
在大数据以及分布式架构浪潮来袭的背景下作为一名5年开发经验的.NET程序员,希望能在这个机会中再次突破瓶颈,达到作为技术路线顶点的架构师级别在这几年中,积累了很多应用开发经验,这些经验还足以量变达到质变在最近的一年中,我阅读了大量关于高并发,高可用,动态扩容的文章和书籍,但是始终还是一知半解,犹如雾里观花想要蜕变,就需要临门的最后一脚,这一脚就是在真正的高并发的环境中积累各种解决...
2018-07-31 00:47:00
55
转载 爬虫开发过程 - 采集器主程序开发
主程序的主要任务是解析和执行规则,那么首先就得设计规则文件的结构我这里是设计了一种脚本作为规则使用,脚本有简单的语言规范:engine command param1 param2 .... ....一个简单的采集规则:engine # 文件以engine作为开头,不能有任何其他字符 # '#'作为注释标识,该行之后...
2018-07-04 01:31:00
192
转载 爬虫开发过程 - 采集器设计
看了之前几款采集器,发现了一些共同点采集器一般由3个部分组成 主程序,采集规则,入库模块主程序负责解析和采集规则流程如下 采集规则包含了需要采集网站的url,内容提取和处理,一般由正则表达式,xpath等组成 参数设置规则:url=http://xxx.html?page={$0} http请求设置:编码=utf-8 Cookie=xxx ...
2018-07-04 01:00:00
298
转载 从现在开始,使用简单优雅的validata.js
表单验证,是后台开发中万年不变的话题,在经历许多实战之后发现 使用优雅便捷的validate.js实现验证实在是一件非常愉悦的事情 <form data-validate> Enter: <input type="password" data-rule="密码:required;number[请输入一个整数]...
2016-05-26 12:56:00
154
转载 续 CentOS7(mini) 运行MVC5 + Mariadb
上一篇,介绍了在CentOS7上使用mono官方二进制安装包快速安装mono环境并且成功运行了一个Owin自宿主应用(Booker)由于Owin自宿主应用不需要System.Web的支持,所以可以轻松运行在大部分.net运行时中而ASP.NET MVC5依赖于System.Web的一些组件,所以得有web服务器才得能运行在mono的官方网站里面详细介绍了几种运...
2016-03-26 16:52:00
97
转载 CentOS7(mini) 急速部署ASP.NET应用
从mono 2.8+的时候就开始关注linux运行.NET的一些消息最近闲来无事,发现mono官方已经提供有编译好的源,极大便利了部署过程,不需要自己去编译mono了用Nancy.Owin写了一个小程序,其中的一些坑已经填上,这里是源代码:https://github.com/ss22219/Booker这里用一个全新的系统 上传程序,解压: win...
2016-03-20 21:26:00
99
转载 关于阿里的一道笔试题分析
其题目如下:#pragma pack(2)class A{public: int i; union U { char buff[13]; int i; }u; void foo() { } typedef char* (*f)(void*); enum{red, green, blue} color;}a;...
2014-05-11 19:21:00
137
转载 clang 简单的str_replace实现
自己写的一段://goolchar* str_replace(char* source, const char* find, const char* replace){ if (source == NULL || find == NULL || find == "") return strdup(source); int matchCount = 0...
2014-05-11 05:07:00
97
转载 使用curl 下载HTML
简单的一个curl小例子:#include <iostream>#include <string>#include <sstream>#include <curl/curl.h>#include <string.h>#define BUF_SIZE 1024 * 100using nam...
2014-05-11 02:27:00
253
转载 vc编译 curl 7.36.0
CURL邮件列表中提到官方最新版本的windows devel包中缺少文件,而我又用不到https,所以我就自己下载源码包来编译了 下载源码包:http://curl.haxx.se/download/curl-7.36.0.tar.gz 解压包: tar -zxvfcurl-7.36.0.tar.gz 运行vc命令工具: %comspec...
2014-05-11 02:21:00
217
转载 vc编译 zlib 1.2.8
最近用到gzip关的算法,于是想起了zlib这个库,于是将其下载下来编译。 首先,在官网上下载源码包:http://zlib.net/zlib-1.2.8.tar.gz 解压之后,打开vc 命令工具:%comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat"...
2014-05-11 01:57:00
123
转载 细数.NET 中那些ORM框架 —— 谈谈这些天的收获之一
细数.NET 中那些ORM框架 —— 谈谈这些天的收获之一(转)ADO.NET Entity FrameworkADO.NETEntity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案,早期被称为 ObjectSpace,现已经包含在 Visual Studio 2008 Service...
2014-04-21 11:49:00
111
转载 .net与mono的那些事
米格尔·德伊卡萨在.NET的文档于2000年10月发布时就马上对.NET产生了兴趣。在查看字节码解释器后,他发现对于元数据(metadata)没有相应的说明文档。2001年2月,德伊卡萨在.NET邮件列表中索要到了那段缺失了的关于元数据文件格式的信息,并开始了采用C#编写一个C#编译器的工作,作为对C#的实践。2001年4月ECMA公布了那段缺失的文件格式,而在GUADEC(2001年4...
2014-04-17 23:40:00
138
转载 安卓系统上安装.net运行时 mono runtime
感谢以下博主:ubuntu指南http://dawndiy.com/archives/229/img大小调整 http://zebinj.blog.163.com/blog/static/206290199201412114912137/mono 编译http://www.linuxdot.net/bbsfile-3090最近闲来无事,翻出了我雪藏已久的安卓小平板,别...
2014-04-17 10:41:00
547
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人