2017年4月28日

Solr vs. Elasticsearch谁是开源搜索引擎王者

摘要: 当前是云计算和数据快速增长的时代,今天的应用程序正以PB级和ZB级的速度生产数据,但人们依然在不停的追求更高更快的性能需求。随着数据的堆积,如何快速有效的搜索这些数据,成为对后端服务的挑战。本文,我们将比较业界两个最流行的开源搜索引擎,Solr和ElasticSearch。两者都建立在Apache 阅读全文

posted @ 2017-04-28 17:10 张玉良 阅读(217) 评论(0) 推荐(0) 编辑

关于后台系统自动生成的一点思考

摘要: 大量实践发现后台管理程序,其实90%的代码都是相同的,当然是在抛弃复杂逻辑业务的情况下,那么如何能高效的节约这些时间呢,那就是接下来我要说的,对于后台系统自动生成的一些思考。 适用情景: 1、表编号id为自增(基于现在大部分表编号都是自增的情况); 2、没有太复杂业务关联关系,比如表的某一个字段,存 阅读全文

posted @ 2017-04-28 17:09 张玉良 阅读(522) 评论(0) 推荐(0) 编辑

Visual Studio 2017 ASP.NET Core开发

摘要: Visual Studio 2017 ASP.NET Core开发,Visual Studio 2017 已经内置ASP.NET Core 开发工具. 在选择.NET Core 功能安装以后就可以进行ASP.NET Core开发。 新的ASP.NET Core项目为csproj ,打开之前的xpro 阅读全文

posted @ 2017-04-28 17:08 张玉良 阅读(812) 评论(0) 推荐(0) 编辑

后端架构高可用可伸缩

摘要: 去年参加技术分享活动,七牛的一个技术简要的介绍了一些高可用可伸缩的一些经验之谈,听完之后受益匪浅,整理一下,主要分以下几个部分: 入口层高可用 业务层高可用 缓存层高可用 数据库高可用 入口层可伸缩 业务层可伸缩 缓存层可伸缩 数据库可伸缩 下面来分层介绍实践方法。 入口层高可用 nigix两个 k 阅读全文

posted @ 2017-04-28 17:08 张玉良 阅读(208) 评论(0) 推荐(0) 编辑

线程安全问题

摘要: 本文楼主主要以用户在售票厅购买车票为背景进行多线程的实现。假设A市到B市的车票共50张,共有3个售票窗口在进行售票,使用多线程来模拟理想情况下的用户购票: 实现Runnable的Ticket类: 简单的售票业务构建好后,我们用三个线程模拟售票窗口来进行测试: 输出结果可以看到,三个线程抢占式地将50 阅读全文

posted @ 2017-04-28 17:06 张玉良 阅读(151) 评论(0) 推荐(0) 编辑

多线程等待唤醒机制之生产消费者模式

摘要: 上篇楼主说明了多线程中死锁产生的原因并抛出问题——死锁的解放方案,那么在本篇文章,楼主将引用一个KFC生产汉堡,顾客购买汉堡的过程来说明死锁解决方案及多线程的等待唤醒机制。 简单地用一幅图来说明KFC生产汉堡,顾客来消费的过程: 场景分析: 代码构建:类里面的i属性是楼主为了效果好一些特意加的,与本 阅读全文

posted @ 2017-04-28 17:05 张玉良 阅读(251) 评论(0) 推荐(0) 编辑

对spring web启动时IOC源码研究

摘要: 这代表了web容器启动的时候会首先进入ContextLoaderListener这个类,并且之后会去加载classpath下的applicationContext.xml文件。那么重点就在ContextLoaderListener上,点开源码: 里面主要为ServletContextListener 阅读全文

posted @ 2017-04-28 17:05 张玉良 阅读(121) 评论(0) 推荐(0) 编辑

MS SQL开发命名规则

摘要: 下面的SQL开发命名规则是我自己开发时总结、整理出来的,以后的开发过程中将不断完善、修改。也希望各位网友指点、批判。 纲领: SQL 语句关键字全部大写, 命名规则建议使用Pascal Case 或 每个单词使用下划线_隔开,不建议全部使用小写。尽量少使用特殊字符比如数字、空格等 使用英文或英文缩写 阅读全文

posted @ 2017-04-28 17:03 张玉良 阅读(338) 评论(0) 推荐(0) 编辑

动态SQL应用小列子

摘要: 呵呵,几乎成标题党了,今天要写个脚本查询7天内所有有登录玩家的数据,要求按注册日期统计,虽然是个简单的问题,但是关键是用户表有30个,分别是user0, user1......到user29 ,光是把它们UNION ALL起来,我都够郁闷了,你想象下脚本有多长吧,一大堆堆在那儿,光是复制都让你难以忍 阅读全文

posted @ 2017-04-28 17:03 张玉良 阅读(213) 评论(0) 推荐(0) 编辑

重温SQL——行转列,列转行

摘要: 行转列,列转行是我们在开发过程中经常碰到的问题。行转列一般通过CASE WHEN 语句来实现,也可以通过 SQL SERVER 2005 新增的运算符PIVOT来实现。用传统的方法,比较好理解。层次清晰,而且比较习惯。 但是PIVOT 、UNPIVOT提供的语法比一系列复杂的SELECT...CAS 阅读全文

posted @ 2017-04-28 17:02 张玉良 阅读(191) 评论(0) 推荐(0) 编辑

Linux下随机生成密码的命令总结

摘要: 有时候经常为如何设置一个安全、符合密码复杂度的密码而绞尽脑汁,说实话,这实在是一个体力活而且浪费时间,更重要的是设置密码的时候经常纠结。终于有一天实在忍不住了,于是学习、整理了一下如何使用Linux下命令来随机生成安全、符合密码复杂度的命令。 俗话说“工欲善其事必先利其器”。如果能用挖土机的,你为什 阅读全文

posted @ 2017-04-28 17:00 张玉良 阅读(626) 评论(0) 推荐(0) 编辑

关于label和input对齐的那些事

摘要: input文本和label对齐 默认状态下,也就是下面这样, 文字和input是居中的。 但是经常设计图中有label的行高,或者input的高度设计,默认状态下,依然是居中的。但是很多时候label和input要浮动,一旦浮动,后面的input标签就紧紧的贴住了label标签,也就造成了视觉上看到 阅读全文

posted @ 2017-04-28 16:57 张玉良 阅读(34511) 评论(0) 推荐(1) 编辑

从USB驱动器运行Windows 10

摘要: 我相信很多人和我一样。梦想着有个随身携带的U盘版操作系统。无论走到哪里,只要有电脑都可以随时运行自己配置好的操作系统。本篇博文就会一步步的教你如何从USB驱动器加载和运行Windows 10。 让我想象一个场景。也许你使用的电脑不是你自己的,里面的系统也许是XP或Win7 Win8,系统的设置也不太 阅读全文

posted @ 2017-04-28 16:56 张玉良 阅读(271) 评论(0) 推荐(0) 编辑

Java垃圾回收学习笔记

摘要: 通常来说,要写Java代码,你基本上都没必要听说垃圾回收这个概念的。这不,对于已经写了多年Java代码的我来说,我还没有哪次经历说是需要使用垃圾回收方面的知识来解决问题的。但是,我依然督促自己花了几天时间系统性地(也比较浅显地)学习了Java垃圾回收机制。我认为学习Java垃圾回收机制至少可以得到以 阅读全文

posted @ 2017-04-28 16:55 张玉良 阅读(136) 评论(0) 推荐(0) 编辑

性能调优之:缓存

摘要: 在执行任何查询时,SQL Server都会将数据读取到内存,数据使用之后,不会立即释放,而是会缓存在内存Buffer中,当再次执行相同的查询时,如果所需数据全部缓存在内存中,那么SQL Server不会产生Disk IO操作,立即返回查询结果,这是SQL Server的性能优化机制。 一,主要的内存 阅读全文

posted @ 2017-04-28 16:54 张玉良 阅读(343) 评论(0) 推荐(0) 编辑

WebGIS中自定义互联网地图局部注记的一种方案

摘要: 1. 前言 实际项目中我们经常会遇到这样一种场景:地图底图可能是互联网地图(百度、高德、天地图)等等,同时我们自己又有某个区域单独的一套POI数据,我们需要将互联网地图中这个区域的原有POI数据进行遮罩然后只显示我们自己的POI数据。 针对这样的需求,我们首先想到的是能否我们只使用不包含注记的底图瓦 阅读全文

posted @ 2017-04-28 16:54 张玉良 阅读(288) 评论(0) 推荐(0) 编辑

HBase框架学习之路

摘要: 1 背景知识 1.1 解决问题 解决HDFS不支持单条记录的快速查找和更新的问题。 1.2 适用情况 存在亿万条记录的数据库,只有千万或者百万条记录使用RDBMS更加合适 确保你的应用不需要使用RDBMS的高级特性(第二索引,事务机制,高级查询语言等) 足够的硬件配置,即节点数,HDFS在少于5个节 阅读全文

posted @ 2017-04-28 16:47 张玉良 阅读(200) 评论(0) 推荐(0) 编辑

Flume-ng源码解析之Channel组件

摘要: 如果还没看过Flume-ng源码解析之启动流程,可以点击Flume-ng源码解析之启动流程 查看 1 接口介绍 组件的分析顺序是按照上一篇中启动顺序来分析的,首先是Channel,然后是Sink,最后是Source,在开始看组件源码之前我们先来看一下两个重要的接口,一个是LifecycleAware 阅读全文

posted @ 2017-04-28 16:46 张玉良 阅读(437) 评论(0) 推荐(0) 编辑

jQuery的ajax详解

摘要: 很多朋友都喜欢用JQ 而ajax更是JQ里必不可少的 下面为大家详细介绍一下JQ的ajax 首先 什么是ajax: AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML)。 简短地说,在不重载整个网页的情况下,AJAX 通过后台加载数据 阅读全文

posted @ 2017-04-28 16:44 张玉良 阅读(607) 评论(0) 推荐(0) 编辑

快速实现python c扩展模块

摘要: 1 python扩展模块的组成 在python中,对于一些和系统相关的模块或者对性能要求很高的模块,通常会把这个模块C化。扩展模块中主要包含下面几个部分: init函数,函数名为:init+模块名,这个函数负责初始化模块,包括设置模块中的方法、对象和其它相关数据的初始化。这个函数是必须的,在脚本中第 阅读全文

posted @ 2017-04-28 16:40 张玉良 阅读(651) 评论(0) 推荐(0) 编辑

导航