<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/hirisw</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hirisw]]></copyright><item><title><![CDATA[FourBeauties四大美人C#.net core 分库分表ORM框架]]></title><link>https://blog.youkuaiyun.com/hirisw/article/details/106430028</link><guid>https://blog.youkuaiyun.com/hirisw/article/details/106430028</guid><author>hirisw</author><pubDate>Fri, 29 May 2020 17:56:17 +0800</pubDate><description><![CDATA[自己写了一个超轻量级的ORM框架满足了八亿数据迁移的需求，支持分库分表，支持超事务，项目代号四大美人，希望同行们能优美的增、删、改、查并改善，也祝天下程序员终成眷属，爱江山更爱美人


















...]]></description><category></category></item><item><title><![CDATA[Java学习之SpringMVC零配置实践]]></title><link>https://blog.youkuaiyun.com/hirisw/article/details/89681904</link><guid>https://blog.youkuaiyun.com/hirisw/article/details/89681904</guid><author>hirisw</author><pubDate>Mon, 29 Apr 2019 19:59:25 +0800</pubDate><description><![CDATA[概述：本实践主要是对SpringMVC的主要功能做了一个大概的体验，将原来的SpringMVC的大量配置改成用SpringBoot进行集成，做到了零XML配置，本次实践分为两个部分，一部分为基本功能实践和另一部分

以Employee管理为背景做的一个更贴近实战的实践。



内容：本次实践内容包括RequestMapping关键字修饰类和方法（请求方式、请求参数&amp;请求头、Ant风格路径...]]></description><category></category></item><item><title><![CDATA[Java学习之ZooKeeper瑞士军刀简介]]></title><link>https://blog.youkuaiyun.com/hirisw/article/details/89681868</link><guid>https://blog.youkuaiyun.com/hirisw/article/details/89681868</guid><author>hirisw</author><pubDate>Mon, 29 Apr 2019 19:56:55 +0800</pubDate><description><![CDATA[1、简介

ZooKeeper 是一个开源的分布式协调服务，由雅虎创建，是 Google Chubby 的开源实现。分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能，ZooKeeper被称为分布式系统中的万能工具好比瑞士军刀。

2、基本概念

本节将介绍 ZooKeeper 的几个...]]></description><category></category></item><item><title><![CDATA[Java学习之系统高可用性渲染接口日志自动服务降级]]></title><link>https://blog.youkuaiyun.com/hirisw/article/details/89681830</link><guid>https://blog.youkuaiyun.com/hirisw/article/details/89681830</guid><author>hirisw</author><pubDate>Mon, 29 Apr 2019 19:54:10 +0800</pubDate><description><![CDATA[背景：公司都追求系统的高可用性，这里不可用时间就是其中很重要的一个指标，为此在做系统功能升级迭代的过程中如何快速处理异常恢复正常功能极为重要。现在对新增模块的

要求是都增加开关，方便快速关闭异常模块，但是如果开关只是一个配置需要人为手动干预才能达到关闭异常模块的作用，其中远程连接服务器，修改配置文件，重启网站等动作不

免要浪费好多的系统不可用时间，因此这里提出一个自动服务降级的想法，在程序出现...]]></description><category></category></item><item><title><![CDATA[公司日志系统个人看法]]></title><link>https://blog.youkuaiyun.com/hirisw/article/details/89681774</link><guid>https://blog.youkuaiyun.com/hirisw/article/details/89681774</guid><author>hirisw</author><pubDate>Mon, 29 Apr 2019 19:50:57 +0800</pubDate><description><![CDATA[背景：之前做过渲染日志的记录工作，做过一些日志采集、日志分析及系统实时状况监控方面的工作，简单的学习过一些ElasticSearch的知识，而最近又有在学习大数据方面Hadoop和Storm方面的简介，就自己对这三个开源框架的了解和自己在日志记录分析方面的体验谈谈自己的想法，其中ElasticSearch、Hadoop、Storm等开源框架的学习体会也会在后续的JAVA学习开源框架中跟大家做分享，...]]></description><category></category></item><item><title><![CDATA[Hadoop之家族成员Pig简介]]></title><link>https://blog.youkuaiyun.com/hirisw/article/details/89681701</link><guid>https://blog.youkuaiyun.com/hirisw/article/details/89681701</guid><author>hirisw</author><pubDate>Mon, 29 Apr 2019 19:46:43 +0800</pubDate><description><![CDATA[Hadoop发展很快，Hadoop作为Apache的一个顶级项目旗下有许多的子项目，今天的内容就是简单的介绍一下Hadoop家族的子项目中的Pig。

下图是一个Hadoop子项目的大体结构图



Pig简介

Pig是Hadoop数据操作的客户端是一个数据分析引擎，采用了一定的语法操作HDFS中的数据（Pig应该说是一种语言，有人说Pig是类SQL的语言我这里只能说它的功能类似Sql语言和数据...]]></description><category></category></item><item><title><![CDATA[Hadoop之HBase逻辑模型简介]]></title><link>https://blog.youkuaiyun.com/hirisw/article/details/89681689</link><guid>https://blog.youkuaiyun.com/hirisw/article/details/89681689</guid><author>hirisw</author><pubDate>Mon, 29 Apr 2019 19:45:49 +0800</pubDate><description><![CDATA[HBase概念：

HBase是一个分布式面向列的开源数据库，它的思想来源于Google的一篇叫BigTable的论文。与BigTable类似，BigTable是基于GFS(Google File System)的分布式列式数据库，HBase是基于HDFS(Hadoop Distributed File System)的分布式列式数据库，不了解BigTable的读者可能不知道它的内容是什么，这里简...]]></description><category></category></item><item><title><![CDATA[Hadoop之YARN简介]]></title><link>https://blog.youkuaiyun.com/hirisw/article/details/89681679</link><guid>https://blog.youkuaiyun.com/hirisw/article/details/89681679</guid><author>hirisw</author><pubDate>Mon, 29 Apr 2019 19:44:50 +0800</pubDate><description><![CDATA[YARN ：Yet Another Resource Negotiator，有部电影《The Negotiator》叫王牌对王牌，可以看出YARN取名设计之初即有对它的定位，除了有一个霸气的英文名字同时也有个一见倾心的中文名字“雅恩”

它是Hadoop 2.0后的新一代计算框架，目前可以支持多种计算框架运行在YARN上面,比如MapReduce（离线计算）、Storm（实时计算）、Spark（内...]]></description><category></category></item><item><title><![CDATA[Hadoop之MapReduce简介]]></title><link>https://blog.youkuaiyun.com/hirisw/article/details/89681666</link><guid>https://blog.youkuaiyun.com/hirisw/article/details/89681666</guid><author>hirisw</author><pubDate>Mon, 29 Apr 2019 19:43:40 +0800</pubDate><description><![CDATA[背景：今天的MapReduce简介从生活中的一个例子说起，相信麻将作为一个中国人大家应该都熟悉，现在有一个任务，将一堆数量不确定的麻将中的萬字都挑出来统计个数该怎么做？最直接的办法就是自己动手一个一个的清一个一个的数，如果这堆麻将的数量很大呢？是不是可以分成多份，多个人清多个人数，然后把每个人的数量加起来就是所需要的总数。没错，MapReduce就是这个原理，在分布式文件系统中进行分布式处理就是把...]]></description><category></category></item><item><title><![CDATA[Hadoop之HDFS简介]]></title><link>https://blog.youkuaiyun.com/hirisw/article/details/89681647</link><guid>https://blog.youkuaiyun.com/hirisw/article/details/89681647</guid><author>hirisw</author><pubDate>Mon, 29 Apr 2019 19:42:22 +0800</pubDate><description><![CDATA[Hadoop是Google的集群系统的开源实现：Google集群系统包括GFS(Google File System)、MapReduce、BigTable。Hadoop的两大核心支撑就是HDFS(Hadoop Distributed File System)Hadoop分布式文件管理系统和MapReduce，Hadoop的初衷是为了解决Nutch的海量数据数据爬取和存取的需求。这里主要讲解HDF...]]></description><category></category></item><item><title><![CDATA[C# 多线程资源克隆解决方式及其应用]]></title><link>https://blog.youkuaiyun.com/hirisw/article/details/83036268</link><guid>https://blog.youkuaiyun.com/hirisw/article/details/83036268</guid><author>hirisw</author><pubDate>Sat, 13 Oct 2018 10:40:58 +0800</pubDate><description><![CDATA[背景：多线程中的共享资源处理常用的方法是加锁，但是加锁是的任务处理由并行处理编程了串行处理大大降低了多线程的效率，这里介绍另一种处理多线程共享资源的处理方式克隆，介绍在C#中克隆解决多线程问题的示例和其他开源框架中使用这种思想实现的一些功能，欢迎大家留言交流。

代码：这是一段很简单的多线程循环取值的代码，虽然简单但是很快就出错了，索引超出范围



原理：这就是同一个公共变量i共享出现的问题，解...]]></description><category></category></item><item><title><![CDATA[C#多线程List的非线程安全性]]></title><link>https://blog.youkuaiyun.com/hirisw/article/details/83036205</link><guid>https://blog.youkuaiyun.com/hirisw/article/details/83036205</guid><author>hirisw</author><pubDate>Sat, 13 Oct 2018 10:35:47 +0800</pubDate><description><![CDATA[背景：最近在做多线程方面的工作，工作中发现多线程中很多坑，这里就有一个List添加对象的误区，这里做个分享跟大家讲讲这个坑是怎么形成的怎么样避免。

示例：

代码及错误：



如果单单只从程序逻辑上看，应该没有逻辑错误，但是结果却是是有为空值的情况，这时候有些多线程经验的读者可能会想到，构造函数也是一个函数，有可能在往List中添加对象的时候，构造函数还没有将对象返回就执行了添加操作，造成了这...]]></description><category></category></item><item><title><![CDATA[Java学习之SpringBoot整合SSM Demo]]></title><link>https://blog.youkuaiyun.com/hirisw/article/details/80734755</link><guid>https://blog.youkuaiyun.com/hirisw/article/details/80734755</guid><author>hirisw</author><pubDate>Wed, 20 Jun 2018 08:52:37 +0800</pubDate><description><![CDATA[背景：在Java Web中Spring家族有着很重要的地位，之前JAVA开发需要做很多的配置，一堆的配置文件和部署调试一直是JavaWeb开发中的一大诟病，但现在Spring推出了SpringBoot，提供了快速单机部署调试和注解配置的便利。作为一名Java初学者本不该一开始就使用这么偷懒的方法，不利于学习但实在是抵制不住SpingBoot的诱惑还是亲自尝试了一把，本来是想自己整合Dubbo搭建一...]]></description><category></category></item><item><title><![CDATA[Java学习之Mysql结构优化]]></title><link>https://blog.youkuaiyun.com/hirisw/article/details/80734710</link><guid>https://blog.youkuaiyun.com/hirisw/article/details/80734710</guid><author>hirisw</author><pubDate>Tue, 19 Jun 2018 15:36:58 +0800</pubDate><description><![CDATA[背景：业务发展初期为了便于快速迭代，很多应用都采用集中式的架构，随着业务规模的扩展，系统变得越来越复杂，访问量越来越大，不得不进一步扩展系统的吞吐能力。 优化1、主从集群：通过数据库的复制策略，可以将一台mysql数据库服务器中的数据复制到其他的mysql数据库服务器之上，当各台数据库服务器上都包含相同数据的时候，前端应用通过访问mysql集群中任意一台服务器，都能够读取到相同的数据，这样，每台m...]]></description><category></category></item><item><title><![CDATA[Java学习之Dubbo+ZooKeeper分布式服务Demo]]></title><link>https://blog.youkuaiyun.com/hirisw/article/details/80734631</link><guid>https://blog.youkuaiyun.com/hirisw/article/details/80734631</guid><author>hirisw</author><pubDate>Tue, 19 Jun 2018 15:34:23 +0800</pubDate><description><![CDATA[背景：在之前的一个《Java学习之SpringBoot整合SSM Demo》分享中说到搭建ZooKeeper和Dubbo分布式框架中遇到了一些技术问题没能成功，只分享了其中的一个中间产物，那就是大家看到的《Java学习之SpringBoot整合SSM Demo》分享，带着深深的遗憾父亲节端午节没有回家陪老婆孩子也没有陪岳父岳母在公司苦学JAVA，终于现在解决了这其中的技术难点将ZooKeeper ...]]></description><category></category></item><item><title><![CDATA[C# 面向切面编程--监控日志记录方案]]></title><link>https://blog.youkuaiyun.com/hirisw/article/details/80734521</link><guid>https://blog.youkuaiyun.com/hirisw/article/details/80734521</guid><author>hirisw</author><pubDate>Tue, 19 Jun 2018 15:30:06 +0800</pubDate><description><![CDATA[背景：现在公司整体在做监控平台，要求把各个部分的细节都记录下来，在前台页面上有所显示，所以现在需要做的就是一个监控日志的记录工作，今天讲的就是渲染监控日志的例子。 现状：当前的渲染程序没有为监控日志记录预留代码接入口，因此要新增加监控日志势必要增加新的代码。但是如果只是单单在已有逻辑中新增日志记录的代码似乎不太合理：因为记录日志的代码很多都是一样的，直接插入代码有很多重复代码；原有代码已经上线并且...]]></description><category></category></item><item><title><![CDATA[C# 通用类型转换方法]]></title><link>https://blog.youkuaiyun.com/hirisw/article/details/80734441</link><guid>https://blog.youkuaiyun.com/hirisw/article/details/80734441</guid><author>hirisw</author><pubDate>Tue, 19 Jun 2018 15:24:35 +0800</pubDate><description><![CDATA[在程序开发过程中经常需要进行数据的类型转换，而且如果一个字段的类型改成另一个类型时，所有相关的类型转换的地方都要跟着修改，不但造成了很多重复转换的代码而且修改字段类型时额外修改相关转换代码的工作量也很大，为此做了一个通用的类型转换方法，此方法能转换几乎所有简单的值类型以及实现了强制类型转换的引用类型，此方法利用反射和lambda实现，由于此方法是在大约2010年左右写的，当时个人知识有限对反射了解...]]></description><category></category></item><item><title><![CDATA[C# 结构体集合元素属性不可修改疑惑]]></title><link>https://blog.youkuaiyun.com/hirisw/article/details/80734342</link><guid>https://blog.youkuaiyun.com/hirisw/article/details/80734342</guid><author>hirisw</author><pubDate>Tue, 19 Jun 2018 15:19:44 +0800</pubDate><description><![CDATA[背景：用C#的人都知道结构体在C#中是值类型的，由于这个原因出现了一个有趣的问题，那就是结构体集合通过数字索引修改对应属性的值能不能影响到集合中的结构体呢？答案很多人可能会说不能，因为结构体是值类型的那是一个副本；也可能有人说会，因为它是通过集合索引来操作的，集合本身时引用类型，集合索引取得的将是集合引用的一个地址按理应该也是引用类型的。 结论：结果可能会大跌眼镜，结果是C#编译器根本通不过这样的...]]></description><category></category></item><item><title><![CDATA[C# 异常内存信息导出Dump文件]]></title><link>https://blog.youkuaiyun.com/hirisw/article/details/80734248</link><guid>https://blog.youkuaiyun.com/hirisw/article/details/80734248</guid><author>hirisw</author><pubDate>Tue, 19 Jun 2018 15:15:27 +0800</pubDate><description><![CDATA[背景：很多情况下程序崩溃我们只能看到程序抛出来的异常信息，但是有时候异常信息不清不楚我们处理异常还是一头雾水，这种情况下我们就很希望能有种办法获取程序运行时的内存进行调试，查看其中的变量、参数、方法执行情况等信息，这里就提供一种异常时将程序的异常时内存信息导出到文件的方法，这是当初设计渲染监控日志时的一个初步设想，想错误内存导出保存起来帮助分析处理异常，但是与渲染的同事接触后了解到渲染时内存达10...]]></description><category></category></item><item><title><![CDATA[C# 不使用Task实现的多线程顺序执行]]></title><link>https://blog.youkuaiyun.com/hirisw/article/details/80734145</link><guid>https://blog.youkuaiyun.com/hirisw/article/details/80734145</guid><author>hirisw</author><pubDate>Tue, 19 Jun 2018 15:10:53 +0800</pubDate><description><![CDATA[多线程有很好的并发性即无序性，在某些特殊情况下需要用到多线程然而又要使其具备顺序性，这种时候就有了一个特殊的场景那就是多线程顺序执行，在现在VS2015中Task自带了顺序执行的方法，但在此之前的旧项目中如果需要使用多线程顺序执行该怎么办呢？Task又是怎么实现的呢？这里提供了一种类似Task顺序执行多线程的实现(可能跟Task的原理有很大区别)，希望对大家能有帮助，对此类问题的实现有更好的思路和...]]></description><category></category></item></channel></rss>