`
brandNewUser
  • 浏览: 456082 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
由于业务需要,在官网上部署两套前端页面,通过特定的字段(例如手机号码)进行分流,来达到a/b站的要求,后续对a/b站最终数据进行分析,选出哪部分页面对用户体验来说会更优秀。   nginx请求分流 考虑利用nginx的分流 ...
目前服务器上安装的solr版本:5.3.1,不同于测试和研究,如果要把solr产品化部署,需要将其安装成一个服务。在solr压缩包中的bin/目录下有一个脚本文件**install_solr_service.sh**,负责solr的安装,并注册为自启动的service。   1. 环境准备 首先需要创建一个solr用户,并赋予其相应的权限: groupadd zpsolr useradd -g zpsolr zpsolr passwd zpsolr chown -R zpsolr:zpsolr /var/solr /usr/local/solrcloud/ 同时也建立两 ...
  为了更好的用户体验,启用了https,需要去各大主机商那里购买SSL证书,https的好处大概以下几点:   1.数据传输加密,防止信息被窃取; 2.防止被欺诈,增加网站信任,防钓鱼; 3.防止被劫持;   部署了https的整体结构如图:       https配置,以nginx为例,参考:http://www.cnblogs.com/wang_yb/p/4330689.html,https://iyaozhen.com/nginx-https-conf.html   1.生成证书,使用openssl工具来生成对应的证书:   cd ...
  双11过后,当前需要对本公司的所有服务器进行清点整理,便跟着运维一起学习了很多关于这方面的东西,同时自己也做了一些记录。   我们当前的机房的整体架构图:     所有设备,硬件防火墙,核心交换机,接入交 ...
Ganglia的基本结构   Ganglia是由gmond, gmetad和gweb三部分组成。   gmond(Ganglia Monitoring Daemon)是一种轻量级服务,安装在每台需要收集指标数据的节点主机上。gmond在每台主机上完成实际意义上的指标数据收集工作,并通过侦听/通告协议和集群内其他节点共享数据。使用gmond,你可以很容易收集很多系统指标数据,如CPU、内存、磁盘、网络和活跃进程的数据等。   gmetad(Ganglia Meta Daemon)是一种从其他gmetad或gmond源收集指标数据,并将其以RRD格式存储至磁盘的服务。gmetad为从 ...
  Java的线程是映射到操作系统的原生线程之上的,如果要阻塞或唤醒一条线程,都需要操作系统来帮忙完成,这就需要操作系统来帮忙完成,需要从用户态转换到内核态中,状态转换需要耗费很多的处理器时间。如果是非常简单的代码同步块,状态转换消耗的时间可能比用户代码执行的时间还要长。   因此可以说,synchronized是Java语言中的一个重量级操作,对于有经验的程序员都会在确实必要的情况下才使用这种操作,虚拟机本身也会进行一些优化,譬如在通知操作系统阻塞线程之前加入一段自旋等待过程,避免频繁地切入到核心态中。   关于用户态和内核态之间的区别,可以查看:http://www.cnb ...
  线上遇到了MySQL死锁的相关问题,需要查看MySQL出现的Deadlock日志,可以通过执行:   show engine innodb status     来查看innodb类型数据库的状态,查找laster detected deadlock部分,可以看到最近造成死锁的两条sql   ------------------------ LATEST DETECTED DEADLOCK ------------------------ 161020 17:58:11 *** (1) TRANSACTION: TRANSACTION ED3 ...
最近由于线上用到nginx,对其中的结构不太熟悉,故对其进行详细的分析和学习总结,其中借鉴了https://www.zybuluo.com/phper/note/89391, http://seanlook.com/2015/05/17/nginx-install-and-config/(写得非常好)。   关于代理   正向代理:也就是一个代理,其工作原理就是一个跳板,加入我要访问google.com,但不能直接访问,可以通过访问A,A可以访问到google.com,A此时就可以作为一个正向代理。正向代理是一个位于客户端和原始服务器(例如google)之间的服务器,然后 ...
  在将solr模糊词搜索从 copyfield方式修改为 qf(query function)之后,其query的性能降低不少。原来是采用将所有需要搜索的字段都copy至同一个字段中,最近要根据模糊匹配结果的权重分析,这种方式根本无法满足要求,所以就采用了query function,这样就能定义不同字段的权重了,例如我们qf可以如下定义:     product_name^2.0 category_name^1.5 category_name1^1.5      搜索出来的结果会根据不同匹配的评分进行相似度排序。   但在性能测试过程中,其非常耗费内存,在s ...
  今天在跑压力测试的过程中,一个看似不可能出错的地方居然报错了,起因在于我们定义的DateUtil工具类,用于将日期进行合理的format以及parse,出现了多线程问题(在单线程时不会出错,只有压测过程中会出现错误)。   代码上分析,原来编写的DateUtil简直是漏洞百出,首先将SimpleDateFormat定义为static变量,这表明在JVM中仅存在一份:   private final static SimpleDateFormat DATE_FORMAT = new SimpleDateFormat(YMD_HYPHEN_PATTERN);     ...
  关于java的SPI机制,可以参考:https://docs.oracle.com/javase/tutorial/sound/SPI-intro.html   为了实现在模块装配时的时候不在程序中动态指明,需要提供一种服务发现机制,为某个接口寻找服务实现的机制,就是将装配的控制权转移到程序之外,在模块化设计中这个机制尤其重要。   Java SPI(Service Provider Interface)的具体约定如下:当服务的提供者提供了服务接口的一种实现之后,在jar包的META-INF/services/ 目录中同时创建一个以服务接口命名的文件,该文件中的内容就是实 ...
  从技术上来讲,scala程序并不是一个解释器,你在命令行中输入的内容被快速地编译成字节码,然后这段字节码交给Java虚拟机执行。   变量声明:   val val不能再继续赋值, 鼓励使用该命令方式 var 生命周期中可以被多次赋值 大多数程序并不需要那么多var变量   scala中变量或函数的类型总是写在变量或函数名称后面:   val greeting: String = "Hello"     仅当同一行代码中存在多条语句时才需要用分号隔开。   scala中的数组   如果数组的长度固定 ...
    要学习storm,我们可以先从并发编程网(ifeve.com)的storm入门开始:http://ifeve.com/getting-started-with-stom-index/   Storm集群安装部署   http://www.cnblogs.com/panfeng412/archive/2012/11/30/how-to-install-and-deploy-storm-cluster.html用来参考进行storm集群的安装和部署。   Storm 官方安装文档:http://storm.apache.org/rele ...
  在redis中是支持使用通配符的使用,例如‘?’或是’’,所以我们在获取redis里面的某个db里面的所有数据可以用 `keys `这样的指令来实现。但是存在一个问题就是这样做的话,在数据量很大的情况下效率是很不理想的,一 ...
  参考:http://www.cnblogs.com/rcfeng/p/4067896.html http://www.cnblogs.com/forfuture1978/archive/2010/03/07/1680007.html   在solr的document文档定义中(schema.xml),需要对每个字段进行定义indexed, stored,其中表示的含义为:     字段名称 字段含义   indexed 如果该字段是要做查询的,需要将其设置为indexed,进行索引,以便能够根据该字段进行查询。 但是与具体分词手段无关,如果涉及到 ...
Global site tag (gtag.js) - Google Analytics