- 博客(23)
- 资源 (17)
- 收藏
- 关注
原创 FourBeauties四大美人C#.net core 分库分表ORM框架
自己写了一个超轻量级的ORM框架满足了八亿数据迁移的需求,支持分库分表,支持超事务,项目代号四大美人,希望同行们能优美的增、删、改、查并改善,也祝天下程序员终成眷属,爱江山更爱美人...
2020-05-29 17:56:17
938
原创 Java学习之SpringMVC零配置实践
概述:本实践主要是对SpringMVC的主要功能做了一个大概的体验,将原来的SpringMVC的大量配置改成用SpringBoot进行集成,做到了零XML配置,本次实践分为两个部分,一部分为基本功能实践和另一部分以Employee管理为背景做的一个更贴近实战的实践。内容:本次实践内容包括RequestMapping关键字修饰类和方法(请求方式、请求参数&请求头、Ant风格路径...
2019-04-29 19:59:25
554
原创 Java学习之ZooKeeper瑞士军刀简介
1、简介ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现。分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能,ZooKeeper被称为分布式系统中的万能工具好比瑞士军刀。2、基本概念本节将介绍 ZooKeeper 的几个...
2019-04-29 19:56:55
237
原创 Java学习之系统高可用性渲染接口日志自动服务降级
背景:公司都追求系统的高可用性,这里不可用时间就是其中很重要的一个指标,为此在做系统功能升级迭代的过程中如何快速处理异常恢复正常功能极为重要。现在对新增模块的要求是都增加开关,方便快速关闭异常模块,但是如果开关只是一个配置需要人为手动干预才能达到关闭异常模块的作用,其中远程连接服务器,修改配置文件,重启网站等动作不免要浪费好多的系统不可用时间,因此这里提出一个自动服务降级的想法,在程序出现...
2019-04-29 19:54:10
290
原创 公司日志系统个人看法
背景:之前做过渲染日志的记录工作,做过一些日志采集、日志分析及系统实时状况监控方面的工作,简单的学习过一些ElasticSearch的知识,而最近又有在学习大数据方面Hadoop和Storm方面的简介,就自己对这三个开源框架的了解和自己在日志记录分析方面的体验谈谈自己的想法,其中ElasticSearch、Hadoop、Storm等开源框架的学习体会也会在后续的JAVA学习开源框架中跟大家做分享,...
2019-04-29 19:50:57
681
原创 Hadoop之家族成员Pig简介
Hadoop发展很快,Hadoop作为Apache的一个顶级项目旗下有许多的子项目,今天的内容就是简单的介绍一下Hadoop家族的子项目中的Pig。下图是一个Hadoop子项目的大体结构图Pig简介Pig是Hadoop数据操作的客户端是一个数据分析引擎,采用了一定的语法操作HDFS中的数据(Pig应该说是一种语言,有人说Pig是类SQL的语言我这里只能说它的功能类似Sql语言和数据...
2019-04-29 19:46:43
8397
原创 Hadoop之HBase逻辑模型简介
HBase概念:HBase是一个分布式面向列的开源数据库,它的思想来源于Google的一篇叫BigTable的论文。与BigTable类似,BigTable是基于GFS(Google File System)的分布式列式数据库,HBase是基于HDFS(Hadoop Distributed File System)的分布式列式数据库,不了解BigTable的读者可能不知道它的内容是什么,这里简...
2019-04-29 19:45:49
1581
原创 Hadoop之YARN简介
YARN :Yet Another Resource Negotiator,有部电影《The Negotiator》叫王牌对王牌,可以看出YARN取名设计之初即有对它的定位,除了有一个霸气的英文名字同时也有个一见倾心的中文名字“雅恩”它是Hadoop 2.0后的新一代计算框架,目前可以支持多种计算框架运行在YARN上面,比如MapReduce(离线计算)、Storm(实时计算)、Spark(内...
2019-04-29 19:44:50
559
原创 Hadoop之MapReduce简介
背景:今天的MapReduce简介从生活中的一个例子说起,相信麻将作为一个中国人大家应该都熟悉,现在有一个任务,将一堆数量不确定的麻将中的萬字都挑出来统计个数该怎么做?最直接的办法就是自己动手一个一个的清一个一个的数,如果这堆麻将的数量很大呢?是不是可以分成多份,多个人清多个人数,然后把每个人的数量加起来就是所需要的总数。没错,MapReduce就是这个原理,在分布式文件系统中进行分布式处理就是把...
2019-04-29 19:43:40
363
原创 Hadoop之HDFS简介
Hadoop是Google的集群系统的开源实现:Google集群系统包括GFS(Google File System)、MapReduce、BigTable。Hadoop的两大核心支撑就是HDFS(Hadoop Distributed File System)Hadoop分布式文件管理系统和MapReduce,Hadoop的初衷是为了解决Nutch的海量数据数据爬取和存取的需求。这里主要讲解HDF...
2019-04-29 19:42:22
658
原创 C# 多线程资源克隆解决方式及其应用
背景:多线程中的共享资源处理常用的方法是加锁,但是加锁是的任务处理由并行处理编程了串行处理大大降低了多线程的效率,这里介绍另一种处理多线程共享资源的处理方式克隆,介绍在C#中克隆解决多线程问题的示例和其他开源框架中使用这种思想实现的一些功能,欢迎大家留言交流。代码:这是一段很简单的多线程循环取值的代码,虽然简单但是很快就出错了,索引超出范围原理:这就是同一个公共变量i共享出现的问题,解...
2018-10-13 10:40:58
220
原创 C#多线程List的非线程安全性
背景:最近在做多线程方面的工作,工作中发现多线程中很多坑,这里就有一个List添加对象的误区,这里做个分享跟大家讲讲这个坑是怎么形成的怎么样避免。示例:代码及错误:如果单单只从程序逻辑上看,应该没有逻辑错误,但是结果却是是有为空值的情况,这时候有些多线程经验的读者可能会想到,构造函数也是一个函数,有可能在往List中添加对象的时候,构造函数还没有将对象返回就执行了添加操作,造成了这...
2018-10-13 10:35:47
2852
原创 Java学习之SpringBoot整合SSM Demo
背景:在Java Web中Spring家族有着很重要的地位,之前JAVA开发需要做很多的配置,一堆的配置文件和部署调试一直是JavaWeb开发中的一大诟病,但现在Spring推出了SpringBoot,提供了快速单机部署调试和注解配置的便利。作为一名Java初学者本不该一开始就使用这么偷懒的方法,不利于学习但实在是抵制不住SpingBoot的诱惑还是亲自尝试了一把,本来是想自己整合Dubbo搭建一...
2018-06-20 08:52:37
611
原创 Java学习之Mysql结构优化
背景:业务发展初期为了便于快速迭代,很多应用都采用集中式的架构,随着业务规模的扩展,系统变得越来越复杂,访问量越来越大,不得不进一步扩展系统的吞吐能力。 优化1、主从集群:通过数据库的复制策略,可以将一台mysql数据库服务器中的数据复制到其他的mysql数据库服务器之上,当各台数据库服务器上都包含相同数据的时候,前端应用通过访问mysql集群中任意一台服务器,都能够读取到相同的数据,这样,每台m...
2018-06-19 15:36:58
181
原创 Java学习之Dubbo+ZooKeeper分布式服务Demo
背景:在之前的一个《Java学习之SpringBoot整合SSM Demo》分享中说到搭建ZooKeeper和Dubbo分布式框架中遇到了一些技术问题没能成功,只分享了其中的一个中间产物,那就是大家看到的《Java学习之SpringBoot整合SSM Demo》分享,带着深深的遗憾父亲节端午节没有回家陪老婆孩子也没有陪岳父岳母在公司苦学JAVA,终于现在解决了这其中的技术难点将ZooKeeper ...
2018-06-19 15:34:23
570
原创 C# 面向切面编程--监控日志记录方案
背景:现在公司整体在做监控平台,要求把各个部分的细节都记录下来,在前台页面上有所显示,所以现在需要做的就是一个监控日志的记录工作,今天讲的就是渲染监控日志的例子。 现状:当前的渲染程序没有为监控日志记录预留代码接入口,因此要新增加监控日志势必要增加新的代码。但是如果只是单单在已有逻辑中新增日志记录的代码似乎不太合理:因为记录日志的代码很多都是一样的,直接插入代码有很多重复代码;原有代码已经上线并且...
2018-06-19 15:30:06
3253
原创 C# 通用类型转换方法
在程序开发过程中经常需要进行数据的类型转换,而且如果一个字段的类型改成另一个类型时,所有相关的类型转换的地方都要跟着修改,不但造成了很多重复转换的代码而且修改字段类型时额外修改相关转换代码的工作量也很大,为此做了一个通用的类型转换方法,此方法能转换几乎所有简单的值类型以及实现了强制类型转换的引用类型,此方法利用反射和lambda实现,由于此方法是在大约2010年左右写的,当时个人知识有限对反射了解...
2018-06-19 15:24:35
954
原创 C# 结构体集合元素属性不可修改疑惑
背景:用C#的人都知道结构体在C#中是值类型的,由于这个原因出现了一个有趣的问题,那就是结构体集合通过数字索引修改对应属性的值能不能影响到集合中的结构体呢?答案很多人可能会说不能,因为结构体是值类型的那是一个副本;也可能有人说会,因为它是通过集合索引来操作的,集合本身时引用类型,集合索引取得的将是集合引用的一个地址按理应该也是引用类型的。 结论:结果可能会大跌眼镜,结果是C#编译器根本通不过这样的...
2018-06-19 15:19:44
2840
原创 C# 异常内存信息导出Dump文件
背景:很多情况下程序崩溃我们只能看到程序抛出来的异常信息,但是有时候异常信息不清不楚我们处理异常还是一头雾水,这种情况下我们就很希望能有种办法获取程序运行时的内存进行调试,查看其中的变量、参数、方法执行情况等信息,这里就提供一种异常时将程序的异常时内存信息导出到文件的方法,这是当初设计渲染监控日志时的一个初步设想,想错误内存导出保存起来帮助分析处理异常,但是与渲染的同事接触后了解到渲染时内存达10...
2018-06-19 15:15:27
2209
原创 C# 不使用Task实现的多线程顺序执行
多线程有很好的并发性即无序性,在某些特殊情况下需要用到多线程然而又要使其具备顺序性,这种时候就有了一个特殊的场景那就是多线程顺序执行,在现在VS2015中Task自带了顺序执行的方法,但在此之前的旧项目中如果需要使用多线程顺序执行该怎么办呢?Task又是怎么实现的呢?这里提供了一种类似Task顺序执行多线程的实现(可能跟Task的原理有很大区别),希望对大家能有帮助,对此类问题的实现有更好的思路和...
2018-06-19 15:10:53
1914
原创 C# Lambda快速深度拷贝
背景:今天上班在班车上和一个同事讨论有关C#拷贝效率的问题,聊到了多种深度拷贝方法,其中就提到了一种Lambda表达式拷贝的方法,这位同事说这种深度拷贝快是快但是如果对象里面再嵌入对象就不能深度拷贝了,只进行浅拷贝,我很疑惑,如果是这样设计的那这个深度拷贝还有什么意义呢?于是办公室开始写Demo,经过多次修改发现是可以实现嵌套对象深度拷贝的,把实验结果写出来跟大家分享,顺便告诉那位同事问题解决了。...
2018-06-19 15:05:49
392
原创 C# IL中间代码注入实现切面编程
背景及现状:之前分享的那篇“面向切面编程–渲染监控日志记录方案”中提供了利用RealProxy作为代理类来生成代理的面向切面的编程方法,那个方法可以实现面向切面编程进行日志记录,现在渲染主程序也是采用的这种方式。那篇分享中也提到使用这中方式不适用于静态方法,而且代理类需继承一个接口或者MarshalByRefObject类,为此这里寻找到了另一种更直接的方法进行动态代理,来解决这两个弊端。 解决方...
2018-06-19 15:01:27
1903
1
原创 C# Dynamic通用反序列化Json类型并遍历属性比较
背景 : 最近在做JAVA 3D API重写,重写的结果需要与原有的API结果进行比较,只有结果一致时才能说明接口是等价重写的,为此需要做一个API结果比较的工具,比较的内容就是Json内容,但是为了实现宽泛的内容相等即只需要字段和值相等即可,不需要字符串严格相等,这种情况下就需要将Json内容字符串转换成具体的对象,出于通用性方面的考虑希望这个工具能比较所有的API结果不单单只是3D的API,所...
2018-06-19 14:41:08
2641
FourBeauties.zip
2020-05-29
C#多线程List的非线程安全性
2018-11-07
C#泛型参数多线程与复杂参数多线程2
2018-07-19
C#泛型参数多线程与复杂参数多线程
2018-07-19
SpringMVC Employee Demo
2018-06-20
SpringMVC示例
2018-06-20
Java学习之Dubbo+ZooKeeper分布式服务Demo
2018-06-19
C# 面向切面编程--监控日志记录方案
2018-06-19
C# 通用类型转换方法
2018-06-19
C# 结构体集合元素属性不可修改疑惑
2018-06-19
C# 异常内存信息导出Dump文件
2018-06-19
C# 不使用Task实现的多线程顺序执行
2018-06-19
C# Lambda快速深度拷贝
2018-06-19
C# IL中间代码注入实现切面编程
2018-06-19
C# Dynamic通用反序列化Json类型并遍历属性比较
2018-06-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人