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可视化管理监控,基于Cerebro,bigdesk,sense。通过访问http://localhost:8081 就能全拥有了。
- ES模板管理,基于索引粒度
- 增删改查、渲染DSL、在线调试
- 批量导入导出
- include语法, json 美化,高亮语法
- 模板审核机制,灰度上线
- 新旧版本对比
- 深度整合MySQL和ES
- 基于db schema自动生成Field mapping
- 通过elasticsearch-sql自动转化SQL到ES DSL。
- 数据同步(全量、对账、增量),基于saturn 和 rdp,这块很快会开源。
- 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
How it 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
Team members
- Architect & Dev Leader: Dylan Xue ([email protected])
- Developer: Chembo Huang ([email protected])
- Developer: Jamin Li ([email protected])
- Developer: Owen Li ([email protected])
- Developer: Tanner Cai ([email protected])
- Developer: Haiming Wang ([email protected])
- Tester: yy.xu ([email protected])
- Front end: Gier Cai ([email protected])