pallas icon indicating copy to clipboard operation
pallas copied to clipboard

Curator is to Zookeeper what Pallas is to Elasticsearch

logo Pallas

Curator is to Zookeeper what Pallas is to Elasticsearch.

                  --Dylan.Xue

Pallas, the VIP.com's uniform search platform, built on top of the elasticsearch, aiming to solve all kinds of search-problem, such as full-text search with scoring, database sharding search, big-data search, complex aggregation search along with performance, scalability and high avaliability required, which are hard to sovled by the tradition SQL or NoSQL database. Shinning features include:

  • ES visualization management & monitoring tools based on Cerebro, bigdesk, sense. You can get them all by visiting http://localhost:8081.
  • ES search template management based on index level.
    • CURD, render and debug the templates.
    • Import and export.
    • Include syntax, highlighting, json fromat.
    • Review process required before taking effect.
    • Version comparing.
    • Template canary.
  • Deep integration between MySQL and ES.
    • Field Mapping auto generated based on MySQL schema.
    • Generate DSL via elasticsearch-sql.
    • Data-sync from DB to ES, including full-import/checking/binlog-based incremental update.(base on saturn and rdp, to be open)
  • ES http-protocol proxy.
    • Netty-based application with filter-chain pattern.
    • Service governance: index routing/timeout/retry/flow-record/slow log/index and template canary/toke-based authorization.
    • Together with Client-SDK provides you with load balance/failover abilities.
  • Pallas ES-plugin updated without a restarat.
    • Extends from AbstractSearchScript.
    • Each plugin has its own classloader.
    • Thorough class loading & unloading.
  • Pallas Console
    • ES clusters management.
    • Index management.
    • Tempalate review process.
    • ES-proxy management(metrisc/offline & online).
    • Token management.
    • Pallas plugin management.

Pallas是唯品会统一的检索平台,基于ElasticSearch深度定制,解决关系数据库和NOSQL均无法有效处理的文本检索打分,模糊查询,数据多关键字组合查询,聚合等问题场景。 功能包括:

  • ES可视化管理监控,基于Cerebrobigdesksense。通过访问http://localhost:8081 就能全拥有了。
  • ES模板管理,基于索引粒度
    • 增删改查、渲染DSL、在线调试
    • 批量导入导出
    • include语法, json 美化,高亮语法
    • 模板审核机制,灰度上线
    • 新旧版本对比
  • 深度整合MySQL和ES
    • 基于db schema自动生成Field mapping
    • 通过elasticsearch-sql自动转化SQL到ES DSL。
    • 数据同步(全量、对账、增量),基于saturnrdp,这块很快会开源。
  • ES http协议代理
    • 基于netty和filter链模式代理http请求
    • 完善的服务治理:路由、超时重试、流量录制、索引和模板灰度、基于token的鉴权
    • 配合使用client-sdk,能做到负载均衡、自动容错
  • Pallas的ES插件,线上热插拔
    • Extends from AbstractSearchScript
    • 独立的classloader设计
    • 完善的class加载和卸载
  • Pallas Console管理控制台
    • ES集群管理
    • 代理管理(监控指标、上线下线)
    • token管理
    • 模板审核流程
    • 插件管理

Main modules 主要模块

Modules Functionalities
pallas-es 基于ES 5.5.2
增加在线升级、在线重启插件
提供rpm包,一键安装
pallas-index
尚未开源
同步数据模块,包括全量、增量、对账
同步状态检测
pallas-search ES http代理层
服务治理:鉴权、路由、超时重试、流量复制、模板灰度、别名灰度等
pallas-console 索引管理:管理索引、管理模板、管理版本、流量录制、路由管理、服务治理、索引操作记录等等
集群管理:管理ES集群,集成cerebro可视化管理系统,集成bigdesk可视化监控
权限管理:基于token的授权方式
代理管理:上线/下线代理,实时查看qps/流量记录/连接数
pallas-client 基于ES rest client
自动负载均衡
超时重试
可配置直连ES还是经过proxy

Pallas architecture

arc

How it looks

looks

looks

looks

looks

Quick Start

Visit http://localhost:8081 after running the following command, make sure you have >=jdk8 installed.

cd quickstart
java -Dfile.encoding=UTF-8 -jar pallas-demo.jar  
(或者运行:sh quickstart.sh)

Click here for more details: Quick Start

Contributing

Pallas官方微信讨论群,请搜索微信号viptech128(唯技术),添加好友(备注Pallas开源交流)后加入。

所有报Bug、建议与咨询,请在Issue发起;所有代码提交,请走Pull Request流程。

对于优秀的代码提交和建议,唯品会将不吝发挥电商本色,给予vip.com购物卡的奖励 !!!

Documents

Get Started

Team members