甲爪广告联盟

甲爪广告联盟 查看完整档案

填写现居城市  |  填写毕业院校  |  填写所在公司/组织 www.jiazhua.com 编辑
编辑

甲爪联盟网络营销:甲爪广告联盟|高价CPA广告联盟|APP推广|甲爪联盟-提供专业的网络广告营销服务,提供站长各类APP、CPA、广告,佣金单价高,结算信誉,是站长投放广告的最佳选择。

发布垃圾广告信息,该用户账号已被停用

个人动态

甲爪广告联盟 发布了文章 · 2017-03-30

2017年前端流行的数百个javascript库,你会几个?

有数百个免费的JS库出来,为应用程序选择正确的JavaScript框架变得非常困难。一些开发商最终会抛弃,而其他开发者则迅速发展,并得到广泛采用。许多开发人员只知道像jQuery和React这样的大牌,但还有许多其他流行的JavaScript框架或JS库,在2017年将不可错过。
我们来讨论一些流行的JavaScript框架,这将在2017年发展。
Nodejs

Node.js是流行的JavaScript驱动技术之一,由Ryan Dahl于2009年创建。框架演变为发达的生态系统。一般来说,Node.js由三件事组成。首先,如果V8是Chrome浏览器中使用的Google JavaScript引擎。第二个是处理文件输入和输出操作的线程池,这里执行所有阻塞系统调用。最后是事件循环库。在这三个块中,有几个暴露低层接口的绑定。剩下的Node.js是用JavaScript编写的。几乎所有我们看作内置模块的API都是用JavaScript编写的。
ReactJS

这是DOM操作的一个概念的反应是一个开源的JavaScript最受欢迎的框架。手动优化DOM操作将结束许多无聊,重复和容易出错的样板代码。React是声明式的,随着数据的更改React触发刷新按钮,并且知道只更新更改的部分。数据的简单流畅以及简单的显示逻辑使得React JS的开发变得简单易懂。反应由Facebook,Instagram和许多开发人员和个人的社区维护。旨在解决开发单页应用程序时遇到的挑战。
AngularJS

AngularJS是启动应用程序的一种惊人方式。随着人气的增加,越来越多的功能进入核心,因此Angular的团队决定重写原始框架,因此引入了Angular 2。Angular拥有创新的功能,如双向数据绑定和依赖注入。AngularJS是一种用于构建最适合您的应用程序开发的框架的工具集。它是一个可扩展的框架,可以与其他库一起使用。对于独特的开发工作流程,每个功能都可以修改或替代。角度允许在JavaScript中查看自动更改的JavaScript中的数据。这使得事情变得更容易,因为不需要更多的编码,除了正确的控制器成为HTML的一部分。
VUE.JS

在前端框架的世界中,开发人员通常会有两个突出的选择,即角度或灰度,但是作为MVVM前端JavaScript框架的Vue.js正在成为程序员中的受欢迎的选择,并且正在迅速获得更多的关注,因为其版本2版本。它是一个用于构建Web界面的简单库。Vue的核心库专注于视图层,只是很容易拾取,并且可以轻松地与其他库和现有项目集成。当与现代工具和支持库一起使用时,Vue完全能够为复杂的单页应用程序提供动力。Vue.js很难学习,但一旦了解了它的工作原理,语法似乎很简单。
Backbone.JS

Backbone.js诞生于2010年,是一个轻量级的MVC框架。它成为笨拙,庞大和功能齐全的MVC框架(如ExtJS)的精简替代品。它通过为模型提供自定义事件,键值绑定,与富有无数功能的丰富API的累积,为Web应用程序提供结构。许多住宿都采用了它,其中包括Pinterest,Flixster,Airbnb等等。主干是发现最小的数据结构集和利用通过JavaScript构建Web应用程序时通常使用的界面原语的努力。
Meteor

Meteor不仅仅是一个JavaScript库,比如jQuery或者AngularJS,而是一个包含前端库,一个命令行工具和一个基于Node.js的服务器的全栈解决方案。Meteor可以快速构建Web应用程序,因此可以处理文件链接,缩小和连接文件等所有过程。您可以轻松地将任何具有Meteor框架的平台与惊人的结果进行整合。这个开源项目帮助开发人员构建JavaScript动力应用程序,如实时聊天应用程序或自定义仪表板或社区。有一个伟大的社会新闻框架,称为望远镜,建在Meteor之上。这样就可以创建一个运行在流星和反应的社交新闻和社会投票网站。流星包括许多功能,因此需要大量的学习能力。熟练的JavaScript开发人员可以使用此平台构建任何内容。
Ember

Ember.js由SproutIt开发,之后由苹果公司开发。基于模型视图控制器(MVC)软件架构模式Ember.js是一个开源的客户端JavaScript Web应用程序框架。图书馆规模和支持网络是EmberJS最大的优势。如果您有兴趣从事多功能,导航,长期项目,EmberJS是您的正确选择。这只是一个框架,那些只需要专注于约定而不是配置的人。EmberJS拥有非常强大的路由框架。Ember的一些知名用户包括Yahoo,Groupon和ZenDesk。

本文由甲爪cpa联盟http://www.jiazhua.com整理编辑!原创文章转载请注明!

查看原文

赞 3 收藏 9 评论 0

甲爪广告联盟 发布了文章 · 2017-03-28

规范合理部署SSL证书,提升HTTPS网站安全性

Chrome浏览器在2017年1月1日起将把非HTTPS网站标记为不安全;苹果强制启动ATS协议,规定App Store所有iOS应用必须使用HTTPS; 英美国家要求所有政府网站必须完成全站HTTPS部署……等等一系列措施,足以证明HTTP将被淘汰,HTTPS成为网络世界当红的“炸子鸡”。到底是什么是HTTPS? 下面,GDCA将带领大家一起来认识HTTPS。

什么是HTTPS?
HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,通俗一点就是HTTP的升级版。在HTTP的基础上加入安全协议SSL,即可以完成HTTPS。

clipboard.png

什么是SSL证书?

L协议的服务器数字证书,具有网站身份验证和加密传输双重功能。确保用户访问网站时可直观辨别其安全性,以及进行数据交互时确保数据安全。该证书须验证网站身份后由受信任的证书颁发机构(CA机构)才能颁发。
目前证书颁发机构(CA机构)提供专业型SSL(IV SSL),域名型SSL(DV SSL),企业型SSL(OV SSL)以及增强型SSL(EV SSL)证书三种。
专业型SSL证书(IV SSL)
IV 证书,需要验证网站经营者(个人)真实身份的专业级SSL证书。个人SSL证书可显示个人名称,适用于个人专业网站。
域名型SSL证书(DV SSL)
DV证书即Domain Validation Certificate。申请证书时,CA只验证域名信息,即who is信息中的管理员邮箱验证。自媒体、个人品牌网站,可使用DV SSL证书。
企业型SSL证书(OV SSL)
OV证书即Organization Validation Certificate。 OV证书是在DV证书的基础上,信任等级强,须要验证企业的身份,审核严格,安全性更高。支持显示中文单位名称和中文域名。电子商务平台、企业官网,涉及注册、登录、会员中心等普通企业网站,可选择OV SSL证书。
增强型SSL证书(EV SSL)
EV证书即Extended Validation Certificate。信任等级最高,审核严格,安全性最高,可以激活绿色网址栏并同时显示网站所属企业/组织名称。金融证券、银行、第三方支付、网上商城等高度安全和信任的企业网站,重点强调网站安全和品牌可信形象的网站,涉及交易支付、客户隐私信息和账号密码的传输,可使用最高安全级别、显示绿色地址栏的EV SSL证书。
SSL证书域名的类型
单域名SSL 证书:如果只有单个域名需要部署SSL证书,则可以任意选择一种SSL证书。
多域名SSL 证书:若有多个不同顶级域名需要使用SSL证书(如: ABC.com、EFG.com、123.com),则需要选择支持多域名的SSL证书类型 。EV SSL证书和OV SSL证书都支持多域名,域名数量可达50到100个。
通配符SSL 证书:有多个顶级域名相同的子域名需要使用SSL证书,(如:A.123.com、B.123.com、C.123.com为通配符域名),则必须选择支持通配域名的SSL证书, 目前有DV SSL证书和OV SSL证书支持通配域名。
今年各大网络平台纷纷采取HTTPS替换HTTP的措施,增强平台的加密安全性。面对市面上的各种的SSL证书,各大运营企业需根据自身情况来选择合适SSL证书,完成HTTPS的加密升级。
本文由甲爪cpa联盟整理编辑!http://www.jiazhua.com转载请注明!

查看原文

赞 0 收藏 0 评论 0

甲爪广告联盟 发布了文章 · 2017-03-28

HTTPS是什么?网站部署HTTPS的注意事项有哪些!

什么是 HTTPS?

HTTPS(超文本传输安全协议)是一种互联网通信安全协议,它确保在用户的计算机与网站终端服务器之间传递的数据的完整性和机密性。所以,为了保护用户的隐私数据,国内信息安全服务商GDCA建议采用HTTPS来保护网站与用户之间的通讯。

clipboard.png

HTTPS之所以是安全的通信协议,是因为在HTTP下加入SSL层(传输层安全协议SSL/TLS)进行保护。该协议可提供三层的防护:

◾加密:对交换数据进行加密,避免他人窥视。

这意味着用户在浏览网站的期间,当用户与网站进行数据交换的时候,第三方无法跟踪及窃取其中的数据。

◾数据完整性:保证数据交换的完整性

数据传输期间,第三方是无法通过任何工具检测或篡改已受保护的信息数据。

◾身份验证:用户可对网站的真实进行验证

可帮助用户辨明网站的真实身份,免受中间的攻击或误入钓鱼网站,建立用户对网站的网站真实性的信任。

部署HTTPS的最佳方法

使用安全的证书:为网站启用 HTTPS,必须通过安全的SSL证书。SSL证书由数字证书认证机构 (CA) 颁发。颁发证书之前,CA机构为了保障用户的安全利益,必须要对网站地址、所属机构等等相关信息进行权威验证,确保正确无误后再颁发证书。目前SSL证书的最高级别的密钥可达2048位,网站运营者可根据系统设置,选择最高级别密钥的SSL证书。选择SSL证书时,请注意以下几点:

网站运营根据自身需求向CA机构申请证书适合的SSL证书

目前市面上的主流SSL证书可分为三大类,DV SSL证书(域名验证型)、OV SSL证书(组织验证型)、EV SSL证书(扩展验证型)。

clipboard.png

DV SSL证书

DV SSL证书之所以被称为域名验证型SSL证书,是因为在申请时CA机构只审核域名的所有权,只能实现传输加密,无法验证网站所有者身份,是不完整的SSL证书产品,通常只适用于产品测试、个人网站、个人博客等方面。

OV SSL证书

OV SSL证书被称为企业验证型SSL证书,是因为申请时不仅需要验证域名所有权,还需要提交企业真实身份的验证材料,无法通过真实身份验证的用户,无法获取到OV级别的SSL证书,因此其具备加密传输和身份验证的完整功能

如果网站涉及多个域名,推荐使用OV SSL证书可支持一张证书绑定一个顶级域名下的无数个通配符子域名或绑定100个多域名,是性价比很高的选择。

EV SSL证书

EV SSL证书被称为扩展验证型SSL证书,是因为申请EV SSL证书不仅需要验证域名所有权,按规定提交企业真实身份验证材料,还要求提供更加详细的企业信息(如具体营业地址等信息),并提供具有法律效力的证明文件(如律师函等)。经过EV级别验证的网站,身份真实可靠,浏览器也会对EV验证的网站进行特殊的品牌展示,比如浏览器地址栏显示绿色、直观展示网站所属单位名称等等,展现良好的品牌形象和公信力。

如果企业涉及金融、网银、电商等安全信任级别较高的应用,推荐使用最高等级的EV SSL证书。

用服务器端 301 重定向

使用服务器端 301 HTTP 重定向将用户和搜索引擎重定向至 HTTPS 网页。

确认各大浏览器能否抓取HTTPS 网页并将其收录

◾请勿通过txt 文件阻止抓取网站的HTTPS 网页。

◾请勿在HTTPS 网页中包含noindex标记。

◾使用抓取工具测试 Googlebot 能否访问HTTPS的网页。

支持 HSTS

网站部署HTTPS网站时必须要支持 HSTS。因为当用户在浏览器地址栏中输入的是HTTPS,HSTS可自动通知浏览器请求 HTTPS 页面,它还会通知 Google 在搜索结果中提供安全网址。以最大限度降低用户访问不安全网站的风险。网络运营者要启动HSTS,需要适用支持 HTTP 严格传输安全 (HSTS) 的网络服务器并启用 HSTS。

clipboard.png

考虑使用 HSTS 预加载。

当网络运营者启用了 HSTS,则可以选择支持 HSTS 预加载,进一步提高网站的安全性。要启用此功能,必须在 HSTS 标头中设置 includeSubDomains 指令。

子域名匹配的工作原理如下:若网站http://www.jiazhua.com支持含includeSubdomains的 HSTS 标头,则它将与以下域名匹配:

clipboard.png

避免以下常见问题

在使用 TLS 保护网站安全的过程中,避免以下错误:

clipboard.png

本文属于原创文章版权归甲爪广告联盟所有 ,文章由日付cpa广告联盟编辑整理!原文链接:http://www.jiazhua.com/wz/829...

查看原文

赞 2 收藏 3 评论 1

甲爪广告联盟 发布了文章 · 2017-03-27

PHP知识难点TOP3,挑战一下你

php虽然容易入门,但是要想深入,还是有些路要走的,今天我们就来聊聊php一些比较难理解的知识点。
use

php从5.3.0开始引入了一个叫作命名空间的新特征,让我们能够定义相同的类和处理与第三方库同名类的时候有了很好的解决方案,在一个命名空间里面能够包括类、函数、接口和常量,有了命名空间以后,在其他地方需要使用命名空间时,需要使用use引入该命名空间或者为该命名空间定义一个别名再使用,这是use的第一种使用情况,特别注意的是,这里的use并没有将其对应的文件加载进来。
在使用php的时候,我们发现有很多函数有一个回调函数的参数,我们可以使用匿名函数(也叫闭包来实现),同时,我们知道在php的函数里面无法直接用外部的变量,那么在闭包里面要使用外面的变量,怎么办呢?参考下面的例子,用use就可以做到,这是use的第二种用法。
至于use的第三种用法请看下面的Traits。

clipboard.png

Traits

我们知道,php不像C++一样,是多继承语言,它是一种单继承语言,如果有时我们需要继承多个类怎么办?这个时候Traits就上场了,我们仅仅需要在类中用use声明多个trait,这样当前类中的同名方法覆盖trait,而trait又覆盖基类中的同名方法,属性也是一样的。

clipboard.png

错误和异常的区别

不管是错误发生还是某种异常我们未捕获,我们的程序都会出现问题,而且不管是错误还是未捕获异常,二者的表现都是一样的,导致我们对错误和异常的理解总是很模糊,其实异常就是理论上程序没有问题,但是运行的时候,因为某些特殊的情况而终止了程序的运行,比如链接数据库的操作,如果一切都好,那么我们应该可以正常的链接数据库,但是当数据库的可用连接数没有了,或者无法链接数据库,那么这个时候,如果没有捕获这个异常,肯定是会出错的。

clipboard.png

如果大家觉得这篇文章还不错,请给予一个赞或者分享给你的好友,如果你有更多好的经验或问题,请在评论中和大家分享一下。

本文由甲爪cpa联盟整理编辑!http://www.jiazhua.com转载请注明!

查看原文

赞 0 收藏 0 评论 0

甲爪广告联盟 发布了文章 · 2017-03-25

甲爪联盟讲解:网站中常见到的提示框设计

提示框用于给客户提示输出消息,通常用于信息反馈。Bootstrap中提供了一组灵活的提示框机制。在以往的网页制作过程中我们经常使用alert来提示输出消息,但是这样并不是太友好,而且界面也不是很漂亮,Bootstrap改善了这一点。
Bootstrap中的提示框分为四种。
class="alert-success",成功提示框:告诉用户操作成功,呈现的背景、边框和文本都绿色。
class="alert-info",信息提示框:呈现的背景、边框和文本都是浅蓝色。
class="alert-warning",警告提示框,呈现的背景、边框、文本都是浅黄色。
class="alert-danger",错误提示框:呈现的背景、边框和文本都是浅红色。
这与前面章节讲到的按钮(button)中的几种主题色基本类似,使用方式也差不多。以上四种样式的使用都不是基于class="alert",代码如下:

clipboard.png

上述代码定义了四种不同的提示框,这是Bootstrap中提示框的最基本的用法,页面运行效果如图所示。上面的代码提示框是包含在网格系统的列中的,提示框的宽度默认占据容器的100%。

clipboard.png

上面的提示框没有任何功能作用,我们可以在提示框上添加一个按钮用于关闭提示框,这个在Bootstrap中也是支持的。弹出框的关闭是依赖js插件的,这个会在后续的章节中讲解。要想实现提示框的关闭功能,只需以下几个步骤即可,代码如下:
在提示框class="alert"中添加一个按钮。
在提示框class="alert"上添加"alert-dismissable"样式类。
在新增按钮上添加样式class="close",用于显示关闭图标。
在新增按钮上新增属性data-dismiss="alert“。

clipboard.png

上述代码中定义了两个提示框,其中第一个提示框中添加了“关闭”按钮,当我们单击“关闭”按钮时提示框会消失。其中“&times”;是显示一个“(”型符号,页面运行效果如图所示。

clipboard.png

我们可以在提示框中加入一个链接用于提示跳转到另外一个页面,并在Bootstrap框架中对提示框里的链接样式做一个高亮显示处理,为不同类型的提示框内的链接进行加粗处理,并且使颜色相应加深,代码如下:

clipboard.png

代码中定义了两个提示框,分别添加了“帮助”链接,运行效果如图8-14所示,链接文本内容高亮显示。

clipboard.png

本文由甲爪cpa广告联盟整理编辑!http://www.jiazhua.com转载请注明!

查看原文

赞 0 收藏 0 评论 0

甲爪广告联盟 发布了文章 · 2017-03-22

深入理解PHP异常和错误处理(6)PHP如何优雅的处理错误

前言:有错就改,错误光屏蔽是不行的,还需要对错误进行处理和记录。

内容概要:

1、顶层错误处理器的介绍
2、示例代码

一、顶层错误处理器的介绍

php在处理错误的时候,可以简单的使用exit()和die()来进行基本的处理,不过这样处理会让程序显得臃肿。
PHP中也有一个比较神奇的函数用来处理错误,set_error_handler(),这个函数可以通过设置用户自定的错误函数,来处理所有的错误。用法和set_exception_handler()是一样的,不过错误函数的写法不一样。
二、实例代码:

废话少说,上代码:
图片描述

运行结果:
/Users/haodaquan/Sites/Test/exception/index.php
8
Undefined variable: a
27
array(4) { ["_GET"]=> array(0) { } ["_POST"]=> array(0) { } ["_COOKIE"]=> array(0) { } ["_FILES"]=> array(0) { } }
看到了吧,默认处理了除零的错误,直接就地处理,是不是特别酸爽,哦,不,应该用优雅来形容。
另外,关于php的错误处理还有用户自定义的方式,用到的不多,这里就不介绍了。
使用顶层处理器的方式来处理错误和异常,这种用法在好多PHP中都存在,大家可以看看框架源码。
好了,终于写完了《深入理解PHP异常和错误处理》这个系列了,可能大家平时使用框架开发,基本上不用考虑错误和异常,阅读,评论、转发数量不尽人意,也可能自己水平有限

本文由甲爪cpa广告联盟整理编辑!

查看原文

赞 0 收藏 1 评论 0

甲爪广告联盟 发布了文章 · 2017-03-14

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

当前是云计算和数据快速增长的时代,今天的应用程序正以PB级和ZB级的速度生产数据,但人们依然在不停的追求更高更快的性能需求。随着数据的堆积,如何快速有效的搜索这些数据,成为对后端服务的挑战。本文,我们将比较业界两个最流行的开源搜索引擎,Solr和ElasticSearch。两者都建立在Apache Lucene开源平台之上,它们的主要功能非常相似,但是在部署的易用性,可扩展性和其他功能方面也存在巨大差异。
关于Apache Solr

Apache Solr基于业界大名鼎鼎的java开源搜索引擎Lucene,Lucene更多的是一个软件包,还不能称之为搜索引擎,而solr则完成对lucene的封装,是一个真正意义上的搜索引擎框架。在过去的十年里,solr发展壮大,拥有广泛的用户群体。solr提供分布式索引、分片、副本集、负载均衡和自动故障转移和恢复功能。如果正确部署,良好管理,solr就能够成为一个高可靠、可扩展和高容错的搜索引擎。不少互联网巨头,如Netflix,eBay,Instagram和Amazon(CloudSearch)均使用Solr。
solr的主要特点:
全文索引
高亮
分面搜索
实时索引
动态聚类
数据库集成
NoSQL特性和丰富的文档处理(例如Word和PDF文件)
关于Elasticsearch

与solr一样,Elasticsearch构建在Apache Lucene库之上,同是开源搜索引擎。Elasticsearch在Solr推出几年后才面世的,通过REST和schema-free(不需要预先定义 Schema,solr是需要预先定义的)的JSON文档提供分布式、多租户全文搜索引擎。并且官方提供Java,Groovy,PHP,Ruby,Perl,Python,.NET和Javascript客户端。
分布式搜索引擎包含可以华为为分片(shard)的索引,每一个分片可以有多个副本(replicas)。每个Elasticsearch节点可以有一个或多个分片,其引擎既同时作为协调器(coordinator ),将操作转发给正确的分片。
Elasticsearch可扩展为准实时搜索引擎。其中一个关键特性是多租户功能,可根据不同的用途分索引,可以同时操作多个索引。
Elasticsearch主要特性:
分布式搜索
多租户
查询统计分析
分组和聚合
热度对比
Solr vs. Elasticsearch谁是开源搜索引擎王者
在开始比较前,我们可以查看两者在google中的搜索热度,可以看出在2013年后,Elasticsearch与Solr相比具有很大的吸引力,但这并不意味着Apache Solr已经死了。虽然不少人不认可,但Solr仍然是最流行的搜索引擎之一,具有强大的开源社区支持。
安装与配置
相对来说,Elasticsearch更易于安装,与Solr相比非常轻量级。 Solr的分发软件包大小的当前版本(6.4.2)大约为150 MB,而Elasticsearch分发软件包大小的当前版本(5.2.2)仅为32.2MB。
但是,如果Elasticsearch管理不好,这种易于部署和使用可能会成为一个问题。基于JSON的配置很容易,但如果你想为文件中的每个配置指定注释,那么它不适合你。Solr也提供了Rest API,可以通过集合API创建自定义分片集合,记录聚类算法和执行自定义分片。
总的来说,如果你的应用程序使用JSON,那么Elasticsearch是一个更好的选择。否则,使用Solr,因为它的schema.xml和solrconfig.xml有很好的文档。
索引和搜索
数据源
Solr接受来自不同来源的数据,包括XML文件,逗号分隔符(CSV)文件和从数据库中的表提取的数据以及常见的文件格式(如Microsoft Word和PDF)。
Elasticsearch还支持其他来源的数据,例如ActiveMQ,AWS SQS,DynamoDB(Amazon NoSQL),FileSystem,Git,JDBC,JMS,Kafka,LDAP,MongoDB,neo4j,RabbitMQ,Redis,Solr和Twitter。还有各种插件可用。
搜索
Solr专注于文本搜索,而Elasticsearch则常用于查询、过滤和分组分析统计,Elasticsearch背后的团队也努力让这些查询更为高效。因此当比较两者时,对那些不仅需要文本搜索,同时还需要复杂的时间序列搜索和聚合的应用程序而言,毫无疑问Elasticsearch是最佳选择。
索引
两者都支持使用停用词和同义词来匹配文档。
在Solr中,索引间进行join必须是单个分片和其他节点上的副本集进行关联来搜索文档间关系(例如SQL连接)。而Elasticsearch提供更高效的has_children和top_children查询来检索这样的相关文档。
可扩展性和分布式
搜索引擎需要处理数以百万级的文档,基于此搜索引擎应该是可复制的,模块化的和可扩展的,支持集群和分布式架构。
专为云而设计
Elasticsearch非常易于扩展,拥有足够多的需要大集群的使用案例。
Solr 基于Apache ZooKeeper也实现了类似ES的分布式部署模式。ZooKeeper是成熟和广泛使用的独立应用程序。
相对比,Elasticsearch有一个内置的类似ZooKeeper的名为Zen的组件,通过内部的协调机制来维护集群状态。
可以说Elasticsearch是转为云而设计,是分布式首选。
分片拆分和再平衡
shards是luence索引的分区单元,solr和elasticsearch均使用。你可以通过在集群中的不同计算机上运行shard来分发索引。随着SolrCloud的引入,Solr开始支持shard拆分,这允许您通过拆分现有shard来添加更多shard。相比之下,ElasticSearch仍然不支持这一点,事实上,实际上阻止了这种做法。ES通过向设置中添加更多计算机,可以使用自动碎片平衡功能。相比之下,Solr允许添加分片(使用隐式路由时)或分割(使用复合ID时),但不能删除分片。它允许您增加副本。在Elasticsearch中,默认情况下每个索引具有五个分片。它不允许您更改主分片的数量,但它允许您增加副本的数量。分片再平衡对于水平扩容非常有用。当添加新机器时,它将自动重新平衡不同机器中可用的分片。
社区
Solr有一个广泛的开源社区。任何人都可以贡献给Solr,新的Solr开发人员或代码提交者只能根据功能选择。 Elasticsearch在技术上是开源的,但不完全。所有贡献者都可以访问源代码,用户可以进行更改并提供。但最终的变化由Elastic(运行Elasticsearch和其他软件的公司)的员工确认和完成。因此,Elasticsearch更多地由单个公司驱动,而不是整个社区。
Solr贡献者和提交者跨越多个组织,而Elasticsearch提交者仅来自Elastic。还有人指出,Solr的强大社区有一个健康的项目管道和许多知名公司参与。这些成员还通过在整个开发和工程过程中做出贡献来投资该平台。
两者都有很好的用户群和丰富的开发人员社区,但ElasticSearch相较于Solr更新。 Solr已经存在了更长的时间,所以它的生态系统是发达的,拥有更大的用户群。
文档
Solr在这里得分很高。它是一个非常有据可查的产品,具有清晰的示例和API用例场景。 Elasticsearch的文档组织良好,但它缺乏好的示例和清晰的配置说明。
选Solr 还是 Elasticsearch?
通过上面的对比,很难确定谁是最终赢家。其实,无论选择Solr还是Elasticsearch,你首先需要了解您的用户场景和未来的需求。我们来总结一下:
Solr vs. Elasticsearch谁是开源搜索引擎王者
请记住:
Elasticsearch由于其易用性而在较新的开发人员中更受欢迎
但是如果你已经在使用solr了,请继续使用它,因为迁移到Elasticsearch并不会带来具体的优势
如果您需要它来处理分析查询以及搜索文本,Elasticsearch是更好的选择,特别是收集日志,做分析处理
总之,两者都是功能丰富的搜索引擎,并且或多或少地给出相同的性能,只要它们被设计和实施得很好。
文章转载自互联网由甲爪cpa联盟整理编辑!

查看原文

赞 5 收藏 7 评论 0

甲爪广告联盟 发布了文章 · 2017-03-11

浅谈ThinkPHP 5.0

自从接触php开始,用的就是thinkphp框架,它给我的感觉是轻量,且容易上手。后来进了一家外包公司又用了laravel框架,个人觉得laravel还是很高大上的,功能强大,开发过程是一种愉悦,创造性的体验。用laravel的时候吗,感觉能接触到很多框架性之外的东西。laravel的特点是它提供了强大的工具用以开发大型、健壮的应用。杰出的IoC、数据库迁移工具和紧密集成的单元测试支持,这些工具赋予你构建任何应用的能力。浅谈ThinkPHP 5.0

应公司要求,现在用ThinkPHP5.0重新搭一个框架,接触了几天tp5.0,对它也有了一定的了解。ThinkPHP5.0版本是一个颠覆和重构版本,和ThinkPHP3.2有很大 不同,在学习5.0的时候要抛开很多3.2的思想,很多思想都参考了laravel框架。
浅谈ThinkPHP 5.0

1.支持Composer,支持php单元测试。
2.更加严谨了,异常严谨的错误检测和安全机制。我发现html页面中如果有不存在的url,就会马上报错模板不存在。
3.很多都是参考的laravel的特性,但是也保持着thinkphp原有的简单易学。因为我之前用过laravel,看thinkphp5.0的第一眼我就忍不住感叹怎么和laravel那么像,目录结构有着laravel的影子,数据查询,引导文件以及路由都有借鉴。
4.惰性加载,及路由、配置和自动加载的缓存机制,模型类并不一定要访问数据库,而且在5.0的架构设计中,只有进行实际的数据库查询操作的时候,才会进行数据库的连接,是真正的惰性连接。
5.路由有了很大的改进。支持路由都模块的控制器、控制器类的方法、闭包函数和重定向地址,支持路由到任意层次的控制器,子域名路由功能也有很大的改善。
6.模块的功能更加灵活了,默认采用多模块,同时也支持单一模块设计。
7.API进行了优化,不依赖原来的API模式扩展。控制器输出采用Response类统一处理,而不是直接在控制器中输出。
8.模板的输出,url的访问以及数据的增删改查都有了小小的变动。
ThinkPHP5.0功能还是完善优化了很多,现在官网已经不维护3.2版本了,程序猿们赶紧升级5.0,会有意想不到的收获 ~
本文由甲爪广告联盟供稿

查看原文

赞 3 收藏 6 评论 1

甲爪广告联盟 发布了文章 · 2017-03-03

php设计模式(1) 前言

前言:
php设计模式这个系列是基于我2012年的学习笔记,共11篇,结合近几年一些开发实践,也参考网上的一些高手的文章和视频,编辑整理而成,希望能给大家的帮助带来一些帮助。
php设计模式(1) 前言

一、什么是设计模式

面试中,经常会问到设计模式的相关问题,那么什么是设计模式呢?
php设计模式(1) 前言

官方的意思是:Descriptions of communicating objects and classes that are customized to solve a general design problem in a particular context.翻译就是说为解决特定上下文中的一般设计问题而定制的通信对象和类的说明。
百度百科上也有解释,这里不抄了。
通俗的说,设计模式是一种编码规则,是从宏观上思考为实现特定功能或者系统而设计的代码组织方式。就像一群人完成某一项工作,不能一窝蜂全上,需要有组织有纪律,这个组织和纪律就是设计模式的概念。
二、设计模式有啥好处

灵活正确的使用设计模式,能够让系统的开发速度快,代码复用性高,容易维护,扩展性强,并且利于团队协作。
三、常用设计模式有哪些

参考java的设计模式,php常用的设计模式大概分为三类:
1、创建型设计模式: 创建对象时使用,将某个对象从实现中解耦合。
2、行为型设计模式:用于在不同的对象之间管理算法、关系以及职责
3、结构型设计模式:用于在不同的对象之间构造大的对象结构。
如下图所示:
php设计模式(1) 前言

php设计模式图解,php在路上制作
我们这个系列就依次按照工厂模式、单例模式、注册模式、原型模式、适配器模式、数据映射模式、装饰器模式、代理模式、策略模式、观察者模式、迭代模式的顺序分别进行讨论交流。
当然,水平有限,有些不合适的地方,请评论中指出来,以免误人子弟。
本文由甲爪cpa联盟供稿

查看原文

赞 2 收藏 8 评论 0

甲爪广告联盟 发布了文章 · 2017-02-28

PHP发送邮件功能——ThinkPHP3.2.3

首先第一步 :在网上down了一个PHPMailer插件,下载解压后,这里我们只需要用到其中两个文件,如下图所示:

clipboard.png

将class.phpmail
er.php和class.smtp.php两个文件分别放置到
ThinkPHP/Library/Vendor/PHPMailer/class.phpmailer.php (注意大小写哦)
ThinkPHP/Library/Vendor/PHPMailer/class.smtp.php

clipboard.png

注意:现在放置的是thinkPHP默认的第三方类库目录,如果在index.php定义了如define('VENDOR_PATH',APP_PATH.'Common/Vendor/'); 那么文件放置的路径要与之相同,免得出现class 'PHPMailer' not found情况。
2、创建用户自定义函数文件Application/Home/Common/function.php,放置如下函数:

clipboard.png

/**

  • 功能:邮件发送函数

  • @param string $to 目标邮箱

  • @param string $subject 邮件主题(标题)

  • @param string $to 邮件内容

  • @return bool true
    */

function sendMail($to, $subject, $content) {
vendor('PHPMailer.class#smtp');
vendor('PHPMailer.class#phpmailer'); //注意这里的大小写哦,不然会出现找不到类,PHPMailer是文件夹名字,class#phpmailer就代表class.phpmailer.php文件名
$mail = new PHPMailer();
// 装配邮件服务器
if (C('MAIL_SMTP')) {
$mail->IsSMTP();
}
$mail->Host = C('MAIL_HOST'); //这里的参数解释见下面的配置信息注释
$mail->SMTPAuth = C('MAIL_SMTPAUTH');
$mail->Username = C('MAIL_USERNAME');
$mail->Password = C('MAIL_PASSWORD');
$mail->SMTPSecure = C('MAIL_SECURE');
$mail->CharSet = C('MAIL_CHARSET');
// 装配邮件头信息
$mail->From = C('MAIL_USERNAME');
$mail->AddAddress($to);
$mail->FromName = C('MAIL_FROMNAME');
$mail->IsHTML(C('MAIL_ISHTML'));
// 装配邮件正文信息
$mail->Subject = $subject;
$mail->Body = $content;
// 发送邮件
if (!$mail->Send()) {
return FALSE;
} else {
return TRUE;
}
}
3、上述函数中,用到C方法来加载了一些配置信息,所以我们得在配置文件里(默认/Application/Home/Conf/config.php)加入如下配置信息:
<?php
return array(
//其他配置项省略......
// 配置邮件发送服务器
'MAIL_SMTP' => TRUE,
'MAIL_HOST' => 'smtp.163.com', //邮件发送SMTP服务器
'MAIL_SMTPAUTH' => TRUE,
'MAIL_USERNAME' => '123*@163.com', //SMTP服务器登陆用户名
'MAIL_PASSWORD' => '123456abc', //SMTP服务器登陆密码
'MAIL_SECURE' => 'tls',
'MAIL_CHARSET' => 'utf-8',
'MAIL_ISHTML' => TRUE,
'MAIL_FROMNAME' => '某某网站客户',
);
4、开始调用,假设通过网址/?m=home&c=index&a=send访问,那我们相应的在Application/Home/Controller/IndexController.class.php文件里加入方法,如下:
<?php
namespace HomeController;
use ThinkController;
class IndexController extends Controller {
public function index(){
}
public function send(){
if(sendMail('vsiryxm@qq.com','你好!邮件标题','这是一篇测试邮件正文!')){
echo '发送成功!';
}
else{
echo '发送失败!';
}
}
}
写在最后:本文由甲爪cpa联盟原创供稿!

查看原文

赞 0 收藏 0 评论 0

认证与成就

  • 获得 15 次点赞
  • 获得 1 枚徽章 获得 0 枚金徽章, 获得 0 枚银徽章, 获得 1 枚铜徽章

擅长技能
编辑

(゚∀゚ )
暂时没有

开源项目 & 著作
编辑

(゚∀゚ )
暂时没有

注册于 2017-01-20
个人主页被 438 人浏览