javascript
Elasticsearch(二), WebService, 机器人参考资源, Spring
http://antkillerfarm.github.io/
Elasticsearch
ELK的配置部署(續)
5.Bootstrap checks failing
當配置的host不是localhost的時候,ES會進行Bootstrap checks。其主要目的是增加ES能夠獲得的各種資源。一般不推薦在實際生產環境中,關閉Bootstrap checks。
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
修改/etc/security/limits.conf:(需要root權限)
es soft nproc 65536 es hard nproc 65536 es soft nofile 65536 es hard nofile 65536重新登錄es用戶后,修改生效。
在bin/elasticsearch的開頭添加:
ulimit -n 65536
注:ulimit增加的資源數,不能超過limits.conf中的數量,否則會報錯。
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
修改/etc/sysctl.conf:(需要root權限)
vm.max_map_count=262144
執行sysctl -p使配置生效。
參考:
http://stackoverflow.com/questions/42300463/elasticsearch-5-x-bootstrap-checks-failing
5.數據存儲
默認情況下,data和log都在ES文件夾下的同名文件夾下。可在config/elasticsearch.yml中修改之。
Java REST Client
ES的Client支持多種語言。其中,Java語言有兩種API:Java API和Java REST API。其中,前者對后者的調用進行了封裝,但由于REST命令可以直接在kibana中調試,實際使用中,反而后者更方便一些。
Java REST API的示例參見:
https://github.com/antkillerfarm/antkillerfarm_crazy/tree/master/helloworld/elasticsearch/es_client_hello
其中,test1函數給出了基本的查詢示例。test2函數給出了json格式查詢的示例,test3函數對查詢返回的json數據采用jackson的樹模型進行解析,test3函數對查詢返回的json數據采用jackson的流模型進行解析。
更全面的示例參見:
https://github.com/Top-Q/elasticsearch-client
logstash-output-jdbc
bin/logstash-plugin install logstash-output-jdbc
https://github.com/theangryangel/logstash-output-jdbc/blob/master/examples/mysql.md
Spring
Spring也提供了對ES的支持。
SpringBoot官方的ES文檔:
http://docs.spring.io/spring-data/elasticsearch/docs/current/reference/html/
這篇文章里的Table 2寫的很好,可以方便用戶快速掌握最常用的查詢語法。
SpringBoot官方的ES示例:
https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-data-elasticsearch
Spring的問題在于它的發布由于和ES并無關聯,因此更新比較遲。而且內部由于使用的是ES Java API,對ES版本有要求,通用性上不如Java REST API。
參考:
http://blog.720ui.com/2016/springboot_02_data_elasticsearch/
Spring Boot揭秘與實戰(二)數據存儲篇-ElasticSearch
https://juejin.im/entry/58b56c4a8d6d81005765fc73
SpringBoot整合Elasticsearch
參考
http://cloud.51cto.com/art/201505/476450.htm
五類Elasticsearch擴展性插件推薦
http://blog.csdn.net/cnweike/article/details/33736429
Elasticsearch基礎教程
http://blog.csdn.net/a809146548/article/details/52371110
Logstash使用詳解
http://www.cnblogs.com/ajianbeyourself/p/5529575.html
Elasticsearch教程-從入門到精通
http://www.freebuf.com/sectool/78225.html
Elk大數據查詢系列:Elasticsearch與Logstash基礎篇
http://www.tuicool.com/articles/YR7RRr
ELK搭建實時日志分析平臺
http://467754239.blog.51cto.com/4878013/1700828/
ELK 日志分析系統
https://www.ibm.com/developerworks/cn/opensource/os-cn-elk/
集中式日志系統ELK協議棧詳解
https://es.xiaoleilu.com/
Elasticsearch權威指南(中文版)
http://udn.yyuap.com/doc/logstash-best-practice-cn/
logstash最佳實踐
https://zhuanlan.zhihu.com/p/24428355
使用ElasticSearch踩過的坑
https://zhuanlan.zhihu.com/p/25723815
教你快速使用Tensorflow/Elasticsearch實現全文的圖片搜索
http://www.cnblogs.com/buzzlight/p/logstash_elasticsearch_kibana_log.html
使用logstash+elasticsearch+kibana快速搭建日志平臺
http://blog.csdn.net/longxibendi/article/details/35237543/
ELK入門學習資源索引
http://www.jianshu.com/p/0b4346f503e3
探索elasticsearch。該文包含如何使用ES進行TF/IDF的方法
WebService
WebService經過近二十年的發展,已經有非常多的框架了。知名的有:Axis1、Axis2、Xfire、CXF、JWS等。
其中的JWS在JDK 1.6之后被集成到JDK中,成為了我學習的首選。
JWS包含了JAX-WS、JAX-RS、JAXB、JAXR、SAAJ、StAX等組件。這里主要涉及的是JAX-WS。
教程
參考:
http://www.blogjava.net/zjhiphop/archive/2009/04/29/webservice.html
http://blog.csdn.net/lifetragedy/article/details/7205832
以上兩篇是中文blog。
http://java.globinch.com/enterprise-java/web-services/jax-ws/java-jax-ws-tutorial-develop-web-services-clients-consumers/
這個教程雖然是英文的,但質量超過前兩篇。且該網站還有其他相關文章,質量也頗高。
demo
本文相關的demo參見:
https://github.com/him-bhar/jax-ws
這個demo包括jaxws-demo、jaxws-demo-client-stubs和jaxws-demo-client三個模塊。
使用這個demo會有若干問題,也可直接采用本人修改之后的代碼:
https://github.com/antkillerfarm/antkillerfarm_crazy/tree/master/java/jax-ws
開發模型
JAX-WS 2.0有兩種開發過程:自頂向下和自底向上。自頂向下方式指通過一個WSDL文件來創建Web Service,自底向上是從Java類出發創建Web Service。
demo選用Server端通過Java Class生成webservice,而客戶端通過wsdl生成Java調用類的做法。
這種方法的優點在于:
1.服務端開發基于Java,基本不需要對WSDL有過多研究,上手簡單。
2.客戶端通過wsdl生成Java調用類,可以很方便的導入第三方WebService,同樣無需對WSDL有過多研究。
綜上,這實際上是個由服務端驅動的開發模型。
jaxws-demo的結構
jaxws-demo包含了兩個WebService例子分別是rpc_type和document_type。
這兩種類型實際上指的是SOAP Binding的類型。兩者的區別參見:
http://java.globinch.com/enterprise-java/web-services/soap-binding-document-rpc-style-web-services-difference/
吐槽一下,雖然這只是個基本的問題,然而中文blog中竟然沒有令人滿意的文章。
這些文章的毛病在于:
1.對Java和JWS過于細節,而忽視了交互報文。SOAP Binding類型主要是個通訊協議問題,而不是Java或者JWS的問題。
2.沒有比較交互報文,就來籠統的談各自的優缺點的,都是耍流氓。
從上文的交互報文可以看出,document_type雖然更復雜,但也更靈活。從直觀來看,前者只有wsdl一個文件,而后者有wsdl和xsd兩個文件。
jaxws-demo的部署
jaxws-demo編譯之后,除了生成相應的.class之外,還會生成對應的wsdl和xsd文件。
通常的做法是將這些文件一起部署到諸如Tomcat之類的Web容器中。
但JDK也提供了更簡易的做法,使用javax.xml.ws.Endpoint類的publish方法,將WebService綁定到特定的URI上。
這里我們將com.himanshu.poc.jaxws.service.deploy.EndpointPublisherDocument設為主類,并執行程序。
在瀏覽器上輸入:
http://localhost:9999/ws/hellodocument?wsdl
正常情況下會返回一個wsdl文件。
jaxws-demo-client-stubs
JDK中,有兩個和WebService相關的工具:
JAXWS為我們提供了兩個工具:
wsgen。主要用于Server端通過Java類編譯成Webservice及相關的wsdl文件。
wsimport。主要用于Client端(調用端)通過wsdl編譯出調用Server端的Java文件。
jaxws-demo中,調用wsgen生成的wsdl和xsd文件,在這里被wsimport編譯成客戶端的樁代碼。
由于我使用的JDK是JDK 1.8,因此會遇到如下問題:
由于 accessExternalSchema屬性設置的限制而不允許 'file' 訪問, 因此無法讀取方案文檔'xjc.xsd'。
解決方法:
<plugin><groupId>org.jvnet.jax-ws-commons</groupId><artifactId>jaxws-maven-plugin</artifactId><version>2.3</version><configuration><!-- Needed with JAXP 1.5 --><vmArgs><vmArg>-Djavax.xml.accessExternalSchema=all</vmArg></vmArgs></configuration> </plugin>這個問題是由于JDK 1.8以后相關權限變得更加嚴格所導致的。
參見:
https://my.oschina.net/fuckmylife0/blog/325432
jaxws-demo-client
jaxws-demo-client就是具體的客戶端實現了,可以看出相比于上一步的樁代碼,這里的代碼文件,數量上要少得多。
機器人參考資源
http://blog.exbot.net/
一個機器人技術方面的網站。
http://www.ros.org/
ROS(Robot Operating System)是一個機器人軟件平臺,前身是斯坦福人工智能實驗室為了支持斯坦福智能機器人STAIR而建立的項目。
http://www.cnblogs.com/yhlx125/p/4707693.html
SLAM(simultaneous localization and mapping)學習筆記
http://www.cnblogs.com/gaoxiang12/p/5113334.html
視覺SLAM中的數學基礎
https://www.zhihu.com/question/25371476
怎樣從實際場景上理解粒子濾波(Particle Filter)?
LIDAR:LIght Detection And Ranging
https://zhuanlan.zhihu.com/p/26988866
機器人學習Robot Learning的發展
https://mp.weixin.qq.com/s/tH-1XTEC-S7bIFoDdDK5CQ
如何給機器人一雙慧眼:從視覺SLAM技術說起!
https://mp.weixin.qq.com/s/YLhECwwig9f21zk1-PNiTw
25篇車輛檢測與分類DL文章讀懂自動駕駛
Spring
Spring是一個Java Web應用框架。官網:
http://spring.io/
Ubuntu安裝Eclipse、Spring
1.安裝Eclipse
sudo apt-get install eclipse
2.安裝Spring
sudo apt-get install libspring-web-portlet-java
注意:ubuntu軟件倉庫中還有一個叫做spring的游戲引擎,不要弄錯了。
http://www.mkyong.com/spring/quick-start-maven-spring-example/
http://wiki.jikexueyuan.com/project/spring/
Restful
http://spring.io/guides/gs/rest-service/
Spring Boot
https://www.tianmaying.com/tutorial/deploy-spring-boot-application
http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
Spring Boot默認的配置文件
WebService
https://spring.io/guides/gs/producing-web-service/
http://localhost:9999/ws/countries.wsdl
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Elasticsearch(二), WebService, 机器人参考资源, Spring的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习(二十一)——Optimizer
- 下一篇: mesh threejs 属性_thre