Swagger-Lazydoc版本更新-API文档管理UI介绍及使用

swagger版本更新

待实现功能列表
支持API 测试用例 Mock功能
云服务端支持多用户
云服务端支持开放API管理
支持导出swagger PDF或者HTML文档

swagger-lazydoc v1.0.2
测试用例响应JSON字符串超长自动换行
增加本地权限控制
增加云登录权限控制
增加云服务端管理
增加测试用例保存功能

swagger-lazydoc v1.0.0
项目初始化构想设计
优化文档管理界面风格
测试用例页面增加格式化响应报文
测试用例页面增加响应头信息

swagger-lazydoc-ui 在线文档管理利器-API接口文档自动生成

在介绍API在线文档管理工具swagger-lazydoc-ui之前,不得不先简单介绍一下其依赖的强大的一款RESTFUL接口的文档在线自动生成+功能测试功能软件Swagger UI。
API接口

概述

在常规的开发过程中,经常会使用word的形式编写响应的API接口请求响应接口报文的描述说明文档,俗称API接口文档.相信大部分的研发同学都苦于编写文档的繁琐、大材小用了。也经常在接口更新之后懒于在更新word文档。特别是在项目需求变化越来越频繁,接口维护增加越来越多的情况一下,常规的文档管理的方式已经不利于现状。再加上现今前后端分离方式,合作协调开发等等场景。

为了解决上述描述的问题,Swagger UI应运而生。

Swagger UI可以让我们把定义的接口以配置文件或者代码注解的方式编写,最后生成一个可视化较高的网站。在开发过程中随手而写的注释时,就已经把文档编写完成了。如此强大的工具,如果你还没引进,继续阅读下文,将对你的工作提升十倍的效率。

Swagger官网:http://swagger.io
Swagger官方描述:The World’s Most Popular Framework for APIs.

Swagger ui 的原生UI管理界面如下:

swagger-ui

关于swagger-lazydoc-ui

swagger-ui-layer针对原生的UI显示重新进行了设计,以使界面更加符合文档的管理方式,在请求和响应描述处使用表格展示的形式比原生的UI更加直观, 在此感谢swagger-ui-layer作者提供了Swagger 自定义UI界面方案。
在此基础上做了部分改进,SpringMVC/Springboot实战集成Swagger2, 后期还在持续更新中,本章可作为Swagger入门教程。具体进度将抽时间更新该文章:

  • 优化文档管理界面的风格样式
  • 解决文档展示信息的不全引起的bug
  • 增加接口调试相关的头信息
  • 增加接口调试信息的记录
  • 增加云端拆分部署的方式
  • 增加接口数据的Mock

其他功能还在持续优化进行中,欢迎提供建议或意见

当前的效果图如下:

swagger-lazydoc-ui

安装部署

1、引入jar包

首先需要在你的 pom.xml 中引入swagger的包, 相关jar已发布在maven中央仓库上,或者直接下载jar 
swagger-lazydoc jar Maven仓库:https://mvnrepository.com/artifact/cn.bywei



    cn.bywei
    swagger-lazydoc-ui
    1.0.2

 

2、添加swagger自定义配置文件信息

spring boot项目在配置文件中根据具体需求添加如下内容

#swagger lazydoc config
#配置是否启用swagger lazydoc生成文档
swagger.lazydoc.enable=true
#配置生成的swagger lazydoc文档版本
swagger.lazydoc.version=2.0
#文档展示标题
swagger.lazydoc.title=swagger lazydoc apis
#文档展示描述信息
swagger.lazydoc.description=swagger lazydoc Project!
#文档联系人
swagger.lazydoc.contact.name=ByWei.Cn
#文档联系网址
swagger.lazydoc.contact.url=http://swagger-lazydoc.bywei.cn
#文档联系邮箱
swagger.lazydoc.contact.mail=master@bywei.cn
#生成文档包路径
swagger.lazydoc.basePackage=cn.bywei.api.controller
#是否启用权限验证,为true则必须验证后登录,并配置本地权限验证用户名密码
swagger.lazydoc.auth=true
#开启本地权限验证swagger.lazydoc.auth=true后,登录用户名
swagger.lazydoc.username=lazydocuser
#开启本地权限验证swagger.lazydoc.auth=true后,登录密码
swagger.lazydoc.password=lazydocpwd123
#配置云服务地址(非必须),可下载开源代码自定义部署
swagger.lazydoc.cloudUrl=http://swagger-lazydoc.bywei.cn/cloud

 

3、启用swagger

  • spring boot项目启动项添加@EnableSwaggerLazydoc:
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    import cn.bywei.swaggerlazydoc.core.EnableSwaggerLazydoc;
    
    @SpringBootApplication
    @EnableSwaggerLazydoc
    public class SwaggerlazydocTestApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(SwaggerlazydocTestApplication.class, args);
        }
    }
    
    
  • spring-mvc注入Bean:
    @Configuration
    @EnableSwaggerLazydoc
    @EnableWebMvc
    public class SwaggerLazydocConfig {
    }
    

4、添加swagger注解

常用的swagger注解如下,具体可以参考swagger官方注解文档:http://docs.swagger.io/swagger-core/apidocs/index.html

Annotation Type Description
Api
Marks a class as a Swagger resource.
ApiImplicitParam
Represents a single parameter in an API Operation.
ApiImplicitParams
A wrapper to allow a list of multiple ApiImplicitParam objects.
ApiModel
Provides additional information about Swagger models.
ApiModelProperty
Adds and manipulates data of a model property.
ApiOperation
Describes an operation or typically a HTTP method against a specific path.
ApiParam
Adds additional meta-data for operation parameters.
ApiResponse
Describes a possible response of an operation.
ApiResponses
A wrapper to allow a list of multiple ApiResponse objects.
Authorization
Declares an authorization scheme to be used on a resource or an operation.
AuthorizationScope
Describes an OAuth2 authorization scope.

示例Controller方法

 @ApiOperation(value = "发送邮箱验证码",notes ="type类型和mail邮箱地址为必传项" )
 @RequestMapping(value = "/sendValidateCodeForMail",method = RequestMethod.POST)
 public BaseResponse<String> sendValidateCodeForMail(
 @RequestBody @ApiParam(name="发送邮件验证码对象",value="传入json格式",required=true)
 SendValidateCodeForMailReq req){
     ...
 return null;
 }

示例请求参数SendValidateCodeForMailReq 注解, 响应对象注解类似

@ApiModel(value="SendValidateCodeForMailReq",description="发送邮箱验证码请求对象")
public class SendValidateCodeForMailReq {
    @ApiModelProperty(value="验证类型 1:忘记密码验证码  2:新用户校验邮箱",name="type",required=true,example="1")
    private int type;	
    @ApiModelProperty(hidden=true)
    private String mebid;
    @ApiModelProperty(value="邮箱地址",name="mail",required=true)
    private String mail; 
    @ApiModelProperty(value="语言类型  LANG_ZH:中文 LANG_EN:英文",name="language")
    private LanguageTypeEnum  language;

    ... 

 

5、查看API接口文档

swagger-lazydoc-ui 的默认访问地址是:

http://${host}:${port}/swagger-lazydoc.html

 

开源地址

swagger lazydoc github :

https://github.com/bywei/SwaggerLazydoc

Nginx配置正向代理http/https案例

Nginx正向代理配置案例如下:

编辑nginx.conf文件,配置正向代理

#HTTP
server {
    #定义域名解析,可配置多个
    resolver 8.8.8.8 114.114.114.114;
    #用于指定dns解析的超时时间
    resolver_timeout 20s;

    listen 0.0.0.0:8888;

    access_log  /data/log/nginx/nginx.proxy.log;

    location / {
        #此处代理访问
        proxy_pass $scheme://$host$request_uri;
        proxy_set_header Host $http_host;

        proxy_buffers 256 4k;
        proxy_max_temp_file_size 0;

        proxy_connect_timeout 50;
        proxy_send_timeout 60;
        proxy_read_timeout 60;

        proxy_cache_valid 200 302 10m;
        proxy_cache_valid 301 1h;
        proxy_cache_valid any 1m;
   }
}

#HTTPS
server{
         #定义域名解析,可配置多个
         resolver 8.8.8.8 114.114.114.114;
         #用于指定dns解析的超时时间
        resolver_timeout 20s;
        access_log /data/log/nginx/nginx.proxy.log main;
        listen 443;
        location / {
                root html;
                index index.html index.htm;
                proxy_pass https://$host$request_uri;
                proxy_buffers 256 4k;
                proxy_max_temp_file_size 0k;
                proxy_connect_timeout 50;
                proxy_send_timeout 60;
                proxy_read_timeout 60;
                proxy_next_upstream error timeout invalid_header http_502;
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
                root html;
        }
}

客户端增加代理访问

如上正向代理配置完成后,在浏览器或者程序中配置代理,其中浏览器配置代理如下:
代理配置

验证代理访问

查看Nginx访问日志 /data/log/nginx/nginx.proxy.log 验证是否正常代理,例子如下表示已经过代理服务器转发

 - -[18/Jan/2019:14:01:31 +0800] "CONNECT fonts.googleapis.com:443 HTTP/1.1" 200 598 "-" "-"
 - - [18/Jan/2019:14:01:31 +0800] "CONNECT static.cnblogs.com:443 HTTP/1.1" 200 598 "-" "-"
 - - [18/Jan/2019:14:01:31 +0800] "CONNECT pic.cnblogs.com:443 HTTP/1.1" 200 598 "-" "-"
.......

参考地址:http://nginx.org/en/docs/http/ngx_http_core_module.html#resolver

基于Nginx+Lua模块校验的Token认证

nginxlua

前言

在使用Nginx实现访问时的Token验证,将会使用到一个基于 Nginx 与 Lua 模块来实现Token的验证。在请求Nginx配置的地址时,将使用Headers传递Token参数,并在Nginx端做网关校验。

环境说明

有两种方式可选择,推荐使用OpenResty简单快捷:

1)使用nginx的lua模块配置环境

  • LuaJIT (下载地址:http://luajit.org/download.html)
  • lua-nginx-module (下载地址:https://github.com/openresty/lua-nginx-module/releases)
  • nginx (下载地址:http://nginx.org/en/download.html)

2)封装过后的高性能 Web 平台 OpenResty

OpenResty 其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

其官网做了更多详细的简介描述:

OpenResty 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 Web 应用平台。这样,Web 开发人员和系统工程师可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,快速构造出足以胜任 10K 乃至 1000K 以上单机并发连接的高性能 Web 应用系统。

OpenResty 的目标是让你的Web服务直接跑在 Nginx 服务内部,充分利用 Nginx 的非阻塞 I/O 模型,不仅仅对 HTTP 客户端请求,甚至于对远程后端诸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都进行一致的高性能响应。

以上信息参考OpenResty官方中文网站 http://openresty.org/cn/

软件安装

Nginx及模块安装可参阅官方的安装介绍,再此不再重述。
附赠Centos7的简单安装脚本

yum install -y yum-utils
yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo
yum install -y openresty

另Centos7 OpenResty Dockerfile见GitHub: https://github.com/bywei/Centos_OpenResty_Dockerfile

Nginx配置

Nginx的Token校验实现在nginx.conf中配置相应的Lua脚本,编辑Nginx配置文件即可。

vi nginx/conf/nginx.conf

完整的nginx.conf配置文件演示如下,在实际业务场景中通过扩展Lua脚本功能逻辑来实现即可。比如可通过增加Redis来实现Nginx Token权限校验Api网关,具体通过Redis实现权限校验网关,有兴趣的网友可在文章下方评论留言,将附赠Lua实现源码。

#user  nobody;
worker_processes  1;
 
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
 
#pid        logs/nginx.pid;
 
 
events {
    worker_connections  1024;
}
 
 
http {
    include       mime.types;
    default_type  application/octet-stream;
 
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
 
    access_log  logs/access.log  main;
 
    sendfile        on;
    #tcp_nopush     on;
 
    #keepalive_timeout  0;
    keepalive_timeout  65;
 
    #gzip  on;
 
    server {
        listen       80;
        server_name  localhost;
 
        #charset koi8-r;
 
        access_log  logs/access.log;
 
        location / {
            autoindex on;
                autoindex_exact_size off;
                autoindex_localtime on;
                root   /fileroot;
 
            index  index.html index.htm;
            access_by_lua '
              --获取请求的Header参数列表
              local args   = ngx.req.get_headers();
              --提取Header中的token参数,该参数在请求地址时必须加上
              local token1 = args["token"];
              --配置验证的token,此处可增加Redis做存储,然后提取
              local token2 = "f7781231c6f2ea3161sd244453580f73a";
              --token不一致则相应403无权限访问该地址
              if token1 ~= token2 then
                  ngx.exit(ngx.HTTP_FORBIDDEN);
              end
          ';
        }
 
        #通过该地址可测试Lua脚本是否安装成功
        location /lua {
            default_type 'text/html';
            content_by_lua 'ngx.say("hello world");';
        }
 
        #error_page  404              /404.html;
  }
}

 

企业微信开发JAVA源码框架[weiwork]

weiwork 项目介绍

微信企业号管理系统 Java企业微信开发源码框架,获取AccessToken,发送消息 . 当前应用于公司的企业微信监控报警系统.列表

微信企业号管理系统源码框架

  1. 使用springboot框架
  2. 基础签名验证,附加强加密算法jar
  3. 获取accessToken
  4. 发送消息
  5. 扩展对接其他系统(联系开发者定制)
扩展系统 扩展功能说明
表单流程 通过表单设计器及流程引擎 快速搭建企业工作流 费控报销
费控报销 自动生成报销单,随时随地 审批,缩短员工报销周期 会议助手
会议助手 会议室查询预定、一键通知 开会人员,微信会议签到 移动外勤
移动外勤 快速联系,跨部门沟通快速 联系,跨部门沟通 培训学习
培训学习 搭建移动培训平台,员工随 时随地可以进行学习 考试评测
考试评测 支持自建题库、系统智能出 卷、改卷,成绩自动统计
新闻公告 新闻公告消息通告、员工生日周年关 怀、微信工资条发放
开放API 定制开发应用API,方便与 其他OA、CRM、ERP、财务 系统进行集成

扩展对接系统演示

扩展系统

开源地址:https://github.com/bywei/weiwork

参与贡献

  1. Fork 本项目
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request

关于作者

bywei = 程序员百味

个人博客 = “http://www.bywei.cn

用户协议

  • 禁止用户在使用中触犯中国法律范围内的任何法律条文。
  • 不通过出售任何以此项目为基础开发的产品,仅用作自身学习研究使用。
  • 任何个人,公司和组织不得以任何形式和目的侵犯百味博客的版权和著作权。
  • 在未经官方书面允许的情况下,任何个人、公司和组织不能单方面发布和出售以此项目为基础开发的任何互联网软件或者产品,否则将视为侵权行为,将依照中华人民共和国法律追究其法律责任。

如何利用免费邮件群发软件做到精准邮件营销推广

今天介绍关于邮件营销推广工具,俗称EDM营销工具,邮件群发软件。翻看市场上邮件群发软件繁多,各种收费限制,功能功能限制,以此萌发了以自己软件工程专业知识开发一款完全免费邮件群发软件分享。

该邮件群发软件已上传到github代码开源分享社区。可以免费下载安装使用,有任何疑问或建议可以在本博客评论区留言,谢谢!

 免费邮件群发软件简介

该邮件群发软件简称钱龙邮件群发,技术使用C#+Web协调运行机制,本地邮件服务将作为临时测试使用,正式运行请添加正式的邮件服务。 screenshot

发送效果演示

最新版界面UI

免费邮件群发软件
钱龙邮件群发软件界面

软件版本说明

Qianlongsoft_email_v2.5.1
1.修复个人信息界面
增加了邮件群发技巧教程
增加了邮件统计链接
修复了刷新信息产生的多个icon
2.修复编辑邮件时插入代码问题
3.修复发件统计代码,使其自动化识别链接地址

Qianlongsoft_email_v2.5.0
1.增加企业邮箱服务器
smtp1.qianlongsoft.com
smtp2.qianlongsoft.com
smtp3.qianlongsoft.com
smtp4.qianlongsoft.com
smtp5.qianlongsoft.com
smtp6.qianlongsoft.com
2.修改软件风格样式,增加用户体验
3.修改v2.3.4遗留的发送时间问题
4.去掉试用用户的邮件广告
Qianlongsoft_email_v2.3.4
1.在收件人管理里面添加删除发送成功的收件人
2.增加钱龙smtp服务器
3.增加邮件编辑日期变量
4.增加html在线编辑器
5.修改登录界面特效

V2.3.2升级记录
1.当软件登录帐号被锁定,设置五分钟后可自动登录
2.设置测试一封只能测试前二十个发件人
3.邮件标题使用 ‘|’分割,可以添加多个标题,发送时随机选择标题

V2.3.2升级记录
–失败的右键重新发送

Qianlongsoft_email_v2.3.2 升级日志
1.增加导入收件人完成后的提示信息
2.提升导入收件人速度
3.修改切换界面显示花屏问题
4.增加删除发发送的时候箱
5.隐藏smtp地址
6.卸载不干净
7.兼容w7 jet

V2.3.1升级记录
1.增加了来源邮箱的统计分析,结合在线邮件营销跟踪系统

V2.3.0升级记录
1.增加了在线邮件营销效果跟踪,已经实现了在线申请软件帐号,在线管理个人资料信息,邮件内部链接统计分析等功能。
[Web管理项目](https://github.com/bywei/qianlong-email-marketing-assistant)
2.修改用户登录记录,每次只能登录一个用户。防止帐号多个地方登录。

V2.0.0升级记录
1.邮件时间配置
2.登录大小写问题
3.注册中文问题
4.发件配置:购买企业版发件邮箱和链接
5.登录界面广告
6.邮件内容广告
7.批量生成发邮箱的小号
8.测试一封大于10使用list列表
9.邮件发送机制:
构建线程池
(1)一封邮件发送失败后,临时保存
–(2)连续发送失败3封后更换发件人
–(4)连续发送(用户自定义发送N封)封后睡眠一会儿
–(5)通过主线程来控制发送的排序(发送到什么地方了)
–(6)生成子线程来控制连续发送几封邮件(控制(4))
–(7)如果发件人循环完毕,就(更换ip),再重新循环发送
(8)运行完毕之后,进行失败项的第二次发送
–(9)用户自定义发送N封邮件后换发件人
(10)内容中间添加白色字符和宏变量
–(11)如果用户没有自定义邮件发送邮件数量=>采用平均分配 发件人
(12)记录已经发送的位置
10.把广告放入到数据库中,一次性读取

关于作者

bywei = 程序员百味

个人博客 = “http://www.bywei.cn

用户协议

  • 禁止用户在使用中触犯中国法律范围内的任何法律条文。
  • 不通过出售任何以此邮件群发软件为基础开发的产品,仅用作自身学习研究使用。
  • 任何个人,公司和组织不得以任何形式和目的侵犯百味博客邮件群发软件的版权和著作权。
  • 在未经官方书面允许的情况下,任何个人、公司和组织不能单方面发布和出售以此邮件群发软件为基础开发的任何互联网软件或者产品,否则将视为侵权行为,将依照中华人民共和国法律追究其法律责任。

微信小程序:百味博客音乐播放器项目开源

微信小程序

微信小程序:百味博客音乐播放器项目介绍

百味博客音乐播放器小程序示例源代码, 自动连播,使用后端接口数据。

项目开源地址:https://github.com/bywei/wxapp-music 

该小程序为针对light-music提供的源码进行优化改进

  • 修复播放时间会出现毫秒显示问题
  • 修复分享音乐播放问题
  • 增加自动连播功能
  • 优化界面列表导航位置到左边,并增加列表返回按钮(原右边和微信小程序自带的按钮重叠)
  • 使用全屏显示播放器
  • 修改播放器风格
  • 增加使用api获取音乐列表

感谢原作者:https://github.com/facejiong/light-music-wechat-mini-programs

修改后的演示

播放 列表

参与贡献

  1. Fork 本项目
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request

关于作者

bywei = 程序员百味

个人博客 = “http://www.bywei.cn

用户协议

  • 禁止用户在使用中触犯中国法律范围内的任何法律条文。
  • 不通过出售任何以此小程序模板为基础开发的产品,仅用作自身学习研究使用。
  • 任何个人,公司和组织不得以任何形式和目的侵犯百味博客小程序示例的版权和著作权。
  • 在未经官方书面允许的情况下,任何个人、公司和组织不能单方面发布和出售以此小程序模板为基础开发的任何互联网软件或者产品,否则将视为侵权行为,将依照中华人民共和国法律追究其法律责任。

腾讯云免费ssl证书nginx配置

免费https百味博客从独立VPS迁移到腾讯云服务器后,发现腾讯有一年免费的ssl证书,发现好多童鞋都是用了。为提升博客安全/专业,今天闲暇时间也做了相关配置。具体操作形式比较简单,在腾讯云后台按照指引进行申请证书。

提供的免费TrustAsiaSSL 证书如下:
TrustAsia 是亚数信息科技(上海)有限公司应用于信息安全领域的品牌。包括国际第一 Symantec 数字证书、代码签名证书,技术支持与售后服务等,还拥有世界领先的 TrustAsia 自主知识产权的 SSL 证书 MPKI? 管理平台、SSL 证书云安全(SSLCloud?)监控检测平台,以及先进的“加密无处不在”网络安全综合解决方案、密钥保护安全解决方案等一系列网络信息安全管理解决方案。

证书审核通过后下载证书压缩包,压缩包内有Apache/Tomcat/nginx等所需证书文件,百味博客使用的是nginx,故选择nginx证书上传到服务器目录:/data/server/nginx/ssl/;
然后修改百味博客nginx的配置文件部分如下即可.

#实现了三种场景的配置
   
   #访问顶级域名bywei.cn跳转到www.bywei.cn域名
   server {
        listen       80;
        server_name  bywei.cn;
        return       301 https://www.bywei.cn$request_uri;
   }
  
   #访问非https域名跳转到https://www.bywei.cn
   server {
        listen       80;
        server_name  www.bywei.cn;
        rewrite ^ https://$http_host$request_uri? permanent;    # force redirect http to https
        #return 301 https://$http_host$request_uri;
   }
  
  #https证书支持
   server {
        listen       443 ssl;
        server_name  www.bywei.cn;
        #禁用返回服务器版本信息
        server_tokens off;
        
        #配置证书文件路径
        ssl_certificate /data/server/nginx/ssl/1_www.bywei.cn_bundle.crt;
        ssl_certificate_key /data/server/nginx/ssl/2_www.bywei.cn.key;
  }
  
  #百味博客使用wordpress,故添加fastcgi_param配置
  location ~ \.php(.*)$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root;
            fastcgi_param   HTTPS               on;
            fastcgi_param   HTTP_SCHEME         https;
            include        fastcgi_params;
   }

百味博客增加Https访问演示效果:https://www.bywei.cn

基于lucene实时分布式搜索引擎ElasticSearch

ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。支持通过HTTP使用JSON进行数据索引。

下载地址: http://www.elasticsearch.org/download/

 

一、elasticSearch安装方法:

1.设置jdk环境变量,至少jdk1.6.

2.设置环境变量 ES_HOME,配置path后重启
a. ES_HOME  : ElasticSearch安装路径

b. ES_MAX_MEM : 设置 ElasticSearch 的最大使用内存

c. EX_MIN_MEM :  设置ElasticSearch 的最小使用内存

d.  ES_HEAP_SIZE: 环境变量,保证 JVM 使用的最大和最小内存用量相同。

例子linux

export ES_HOME="/home/weblogic/elasticsearch-0.90.0";export PATH=$ES_HOME/bin:$PATH;export ES_MAX_MEM="25g";export ES_MIN_MEM="1024M";

 

3.windows直接运行bin\elasticsearch.bat  ; linux 运行elasticsearch.sh

4.推荐学习资料:http://www.searchtech.pro/

 

一、插件安装方法:

服务器管理插件:  https://github.com/mobz/elasticsearch-head 

1.进入elasticsearchbin目录 cd D:\elasticsearch-0.20.5

2. 执行bin\plugin.bat  如:bin\plugin -install mobz/elasticsearch-head  

3.es服务开启访问http://localhost:9200/_plugin/head/

 

服务器启动运行工具:https://github.com/elasticsearch/elasticsearch-servicewrapper

1.直接解压到bin目录(bin\service)。service目录下有个elasticsearch.conf配置文件,主要是设置一些java运行环境参数

参数:

#eshome路径,不用用默认值就可以

set.default.ES_HOME=<Path to ElasticSearch Home>

#分配给es的最小内存

set.default.ES_MIN_MEM=256

#分配给es的最大内存

set.default.ES_MAX_MEM=1024

启动等待超时时间(以秒为单位)

wrapper.startup.timeout=300

关闭等待超时时间(以秒为单位)

wrapper.shutdown.timeout=300

# ping超时时间(以秒为单位)

wrapper.ping.timeout=300

2.运行命令:

bin/service/elasticsearch +

console 在前台运行es

start 在后台运行es

stop 停止es

install 使es作为服务在服务器启动时自动启动

remove 取消启动时自动启动

 

集群监控工具 https://github.com/lukas-vlcek/bigdesk

bigdeskelasticsearch的一个集群监控工具;

1.插件安装运行:bin\plugin -install lukas-vlcek/bigdesk

2.运行es

3.打开http://localhost:9200/_plugin/bigdesk/

客服端开发工具 Jest

Jest:https://github.com/searchbox-io/Jest

它是ESjava开源客户端,基于http restful方式。

 

ES操作工具 CURL

CURL:http://curl.haxx.se/download.html

curl是利用URL语法在命令行方式下工作的文件传输工具。

创建索引 curl -XPUT ‘http://localhost:9200/music_reviews/’

 

中文分词插件(ik,mmseg) ES默认的分词器为standard,自定义的analyzer配置为:index.analysis.analyzer.default.type:ik  

1.安装:plugin -install medcl/elasticsearch-analysis-ik/1.1.0  

2.配置词典config目录

cd config

wget http://github.com/downloads/medcl/elasticsearch-analysis-ik/ik.zip –no-check-certificate

unzip ik.zip

rm ik.zip

3.ik分词配置elasticsearch.yml文件

index.analysis.analyzer.ik.type : “ik”

或者
index:

analysis:

analyzer:

ik:

alias: [ik_analyzer]

type: org.elasticsearch.index.analysis.IkAnalyzerProvider

【基于Nginx】Tengine淘宝开源服务器官方下载安装

最近一直忙于服务器的性能优化上,为了能使奇趣坊网站的访问速度更快,花了很大的功夫来研究整个系统。网站一直用的nginx服务器,这算是一款非常不错的服务器了;特别是对于像奇趣坊这样的多个子系统运行的环境来说,已经把nginx的功能发挥得玲离尽致了。传言淘宝产品技术中心在nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。并且这个已经成为一个开源项目,于是便小试一下。

简单介绍一下淘宝网的这个免费开源的web服务器项目:

项目名:Tengine-是由淘宝网发起的Web服务器项目。基于Nginx针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。

从2011年12月开始,Tengine成为一个开源项目。现在,它由Tengine团队开发和维护。Tengine团队的核心成员来自于淘宝、搜狗等互联网企业。

开源项目地址:
http://tengine.taobao.org/

以下沿引项目主页上的特性介绍:

继承Nginx-1.2.5的所有特性,100%兼容Nginx的配置;
动态模块加载(DSO)支持。加入一个模块不再需要重新编译整个Tengine;
输入过滤器机制支持。通过使用这种机制Web应用防火墙的编写更为方便;
动态脚本语言Lua支持。扩展功能非常高效简单;
支持管道(pipe)和syslog(本地和远端)形式的日志以及日志抽样;
组合多个CSS、JavaScript文件的访问请求变成一个请求;
可以对后端的服务器进行主动健康检查,根据服务器状态自动上线下线;
自动根据CPU数目设置进程个数和绑定CPU亲缘性;
监控系统的负载和资源占用从而对系统进行保护;
显示对运维人员更友好的出错信息,便于定位出错机器;
更强大的防攻击(访问速度限制)模块;
更方便的命令行参数,如列出编译的模块列表、支持的指令等;
可以根据访问文件类型设置过期时间;

帮助文档:
http://tengine.taobao.org/documentation_cn.html

Tengine下载地址:
http://tengine.taobao.org/download/tengine-1.4.2.tar.gz

基本上,Tengine可以被看作一个更好的Nginx,或者是Nginx的超集。目前最新的Tengine版本号为1.4.2,网上也有在LNMP环境下nginx如何升级至Tengine的教程,可以查阅学习学习。