JAVA面试题16

161. FreeMarker 的使用步骤

第一步:创建一个 Configuration 对象,直接 new 一个对象。

第二步:设置模板文件所在的路径。

第三步:设置模板文件使用的字符集。一般就是 utf-8.

第四步:加载一个模板,创建一个模板对象。

第五步:创建一个模板使用的数据集,可以是 pojo 也可以是 map。一般是 Map。

第六步:创建一个 Writer 对象,一般创建一 FileWriter 对象,指定生成的文件名。

第七步:调用模板对象的 process 方法输出文件。

第八步:关闭流  

162. nginx 是什么

Nginx 是一款 C 语言开发的高性能的 http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用 nginx 做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。

163. nginx 有什么特点

1、高并发,官方测试 nginx 能够支支撑 5 万并发链接;

2、cpu、内存等资源消耗却非常低,运行非常稳定;

3、可以作为网关,针对并发阙值和黑名单进行设置;

164. nginx 的负载均衡策略

1、轮询:默认负载均衡策略,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能 自动剔除。虽然这种方式简便、成本低廉。但缺点是:可靠性低和负载分配不均衡。适用于图片服务器集群和纯静 态页面服务器集群。

2、weight(权重):指定轮询几率,用于后端服务器性能不均的情况。

3、ip_hash: 每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 共享的问题。

4、 fair(第三方) 按后端服务器的响应时间来分配请求,响应时间短的优先分配。

165. 正向代理和反向代理

正向代理:

正向代理就像是路由器一样,服务于客户端,不关心服务端是谁,所有的客户端通过正向代理服务器,将请求发给服务器,服务器会将响应数据返回给正向代理服务器,再由正向代理服务器将响应结果返回给客户端。

反向代理:

反向代理和正向代理正好相反,服务于服务端,不关心客户端是谁,所有的来自于客户端的请求都发送到反向代理服务器,反向代理服务器再通过负载均衡对请求进行分发,由具体的服务器处理请求,服务器处理完请求,将响应结果返回反向代理服务器,再由反向代理服务器返回个客户端。如 10086,收发室老大爷,所有的客户都不知道后面谁处理请求,但是会有一个对外的统一服务,能够接受客户端请求。

166. 什么是 solr

Solr 是 Apache 开源全文检索引擎,用于构建搜索应用程序。 它建立在 Lucene(全文搜索引擎)之上。 Solr 是企业级的,快速的和高度可扩展的。 使用 Solr 构建的应用程序非常复杂,可提供高性能。

167. 为什么使用 solr

因为 mysql 数据库具有 I/O 读写瓶颈问题,分布式系统的数据量一般比较大,但是 mysql 单表最大存储数据量 350W 多条(强调:这个没测试过,是看资料提到过),一旦数据量过大,必然会引起查询速度慢,服务器资源耗费多等各种问题,所以这时近实时搜索引擎 solr 就是专门解决这种问题的技术实现。

168. solr 的特点

1、对外提供 Web Service API 接口用户可以在客户端通过 HTTP 调用这些接口,来实现索引管理和查询服务。

2、可扩展、可配置

可以方便地在 Solr 的基础上进行扩展,同时通过配置文件可以对 Solr 的诸多性能参数进行配置。

3、XML 格式的信息交流方式

Solr 接受一定格式的 XML 文件来建立索引,同时查询结果也可以 XML 的方式进行返回,XML 格式文件处理的方便性使得 Solr 的外围应用扩展性更强。

4、高效、灵活的缓存功能

Solr 引入缓存功能对查询结果进行缓存,使得查询性能更加优秀;缓存的多种实现能从更大程度上满足用户需求。

5、强大的模式自定义功能

Solr 有一个 schema.xml 文件,通过该文件可以定义 Solr 的字段、字段类型(字段类型表明了字段可以进行的操作,包括采用何种分词器)、默认逻辑操作符和默认的被搜索字段等。

6、强大的系统配置功能

通过 solrconfig.xml 文件,可以对 Solr 的系统参数进行配置。我们可以配置索引数据库允许的最大文档数,字段的最长长度等参数;可以配置各种缓存的具体参数;可以配置查询时使用何种“处理器”,更新索引时使用何种“处理器”。

169. solr 的使用步骤

1:安装 Tomcat,解压缩即可。

2:解压 solr。

3:把 solr 下的 dist 目录 solr-4.10.3.war 部署到 Tomcat\webapps 下(去掉版本号)。

4:启动 Tomcat 解压缩 war 包

5:创建一个 solrhome 。solr 下的/example/solr 目录就是一个 solrhome。复制此目录到 D 盘改名为 solrhome

6:关联 solr 及 solrhome。需要修改 solr 工程的 web.xml 文件配置solrhome地址。

7:启动 Tomcat http://IP:8080/solr/

170. 中文如何分词

因为 solr 是老外开发的,所以分词是英语会根据单词进行自动分词,但是中文的话无法识别,每个字都认为是一个词汇,所以为了让 solr 能够自动识别汉语的词汇,需要设置中文分词器,让 solr 能识别汉字,我们选择的

IK 分词器,但是需要配置 IK 中文分词器:

<!--

配置 IK 分词器 -->

<fieldType name="text_ik" class="solr.TextField">

<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>

</fieldType>

添加两个字段进行分词测试:

<field name="title_ik" type="text_ik" indexed="true" stored="true" />

<field name="content_ik" type="text_ik" indexed="true" stored="false" multiValued="true"/>

在 solr 页面中,进行分词测试,就会发现,已经按照中文词组规则分词了。

更多面试题,请打开主页分栏 java面试 进行查看,谢谢

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值