session-service Docker 镜像下载 - 轩辕镜像
session-service 镜像详细信息和使用指南
session-service 镜像标签列表和版本信息
session-service 镜像拉取命令和加速下载
session-service 镜像使用说明和配置指南
Docker 镜像加速服务 - 轩辕镜像平台
国内开发者首选的 Docker 镜像加速平台
极速拉取 Docker 镜像服务
相关 Docker 镜像推荐
热门 Docker 镜像下载
session-service 镜像详细信息
session-service 镜像标签列表
session-service 镜像使用说明
session-service 镜像拉取命令
Docker 镜像加速服务
轩辕镜像平台优势
镜像下载指南
相关 Docker 镜像推荐
session-service 镜像详细说明
session-service 使用指南
session-service 配置说明
session-service 官方文档
session-service 技术文档
一、镜像概述和主要用途
session-service 是一个用于 cBioPortal 会话管理的 RESTful API 服务,基于 MongoDB 存储会话数据。该服务将会话信息以 JSON 格式持久化,具备通用性,可扩展至任何 JSON 对象的存储与管理。其核心功能是为 cBioPortal 相关应用提供会话数据的创建、查询、更新和删除(CRUD)操作接口。
二、核心功能和特性
- RESTful API 接口:提供标准的 HTTP 方法(POST/GET/PUT/DELETE)实现会话数据的完整生命周期管理。
- 多会话类型支持:预定义多种会话类型(如
main_session、virtual_study等),适配不同业务场景(结果页查询、虚拟研究、比较页查询等)。 - MongoDB 数据存储:使用 MongoDB 作为后端数据库(默认数据库名
session_service),支持高可用和可扩展的数据存储。 - 灵活的认证机制:可选启用基本认证(Basic Authentication),通过配置控制访问权限。
- Swagger 文档集成:内置 Swagger UI,自动生成 API 文档(访问路径:
http://[服务地址]:[端口]/swagger-ui.html)。 - 跨部署模式支持:支持 Docker 容器化部署和传统 JAR/WAR 包部署,适配不同运维环境。
三、使用场景和适用范围
适用场景
- cBioPortal 会话管理:存储用户在 cBioPortal 中的查询结果、页面配置、自定义数据等会话信息。
- 多类型数据持久化:支持虚拟研究(
virtual_study)、比较页查询(comparison_session)、自定义基因列表(custom_gene_list)等场景的数据存储。 - Web 应用状态管理:为需要持久化用户操作状态的 Web 应用提供通用 JSON 数据存储接口。
适用范围
适用于基于 cBioPortal 开发的生物信息学平台、需要管理用户会话数据的 Web 应用,或任何需通过 API 接口存储 JSON 结构数据的场景。
四、使用方法和配置说明
4.1 Docker 部署
4.1.1 环境要求
- Docker Engine 19.03+
- Docker Compose 1.27+
4.1.2 部署步骤
启动服务
通过 docker-compose 启动服务(默认使用项目根目录下的 docker-compose.yml 配置):
bash# 前台运行(日志实时输出) docker-compose up # 后台运行(detached 模式) docker-compose up -d
停止服务
后台运行模式下停止服务:
bashdocker-compose down
重建镜像
开发环境中修改代码后,需重建镜像并重启:
bashdocker-compose up --build
验证服务状态
服务启动后,访问以下地址验证是否运行正常(返回版本号即表示成功):
bashcurl http://localhost:8080/info
4.1.3 测试会话创建
通过 curl 命令测试会话创建接口(默认未启用认证,若启用需添加 --user user:pass 参数):
bashcurl -H "Content-Type: application/json" -X POST http://localhost:8080/api/sessions/test_portal/main_session \ --data '{"title": "我的主门户会话", "description": "这是一个示例会话"}'
成功响应:返回状态码 200 和会话 ID(如 {"id": "57167a52ef86d81afb415aba"})。
4.1.4 连接 MongoDB 数据库
默认配置下 MongoDB 端口不对外暴露,需通过容器内部连接:
bash# 进入 MongoDB 容器(容器名默认:session-service_db_1) docker exec -it session-service_db_1 mongo mongodb://localhost:27017
4.2 非 Docker 部署
4.2.1 环境要求
- JDK 1.7+
- Maven 3.0+
- MongoDB 3.0+(需提前启动并监听默认端口
27017)
4.2.2 部署步骤
1. 准备 MongoDB 数据库
通过 MongoDB Shell 创建默认数据库 session_service:
bashmongo # 进入 MongoDB Shell > use session_service # 创建并切换到数据库 session_service
2. 编译与启动服务
克隆代码仓库并通过 Maven 编译运行:
bash# 克隆仓库 git clone [***] cd session-service # 编译打包(生成 JAR 包)并启动服务 mvn package -Dpackaging.type=jar && \ java -Dspring.data.mongodb.uri=mongodb://localhost:27017/session-service \ -jar target/session_service-0.1.0.jar
3. 生成 WAR 包(可选)
如需部署到 Java Web 容器(如 Tomcat),可生成 WAR 包并自定义配置:
bash# 创建配置文件目录 mkdir src/main/resources/ # 复制自定义配置文件(示例配置见 4.3 节) cp /path/to/custom.config src/main/resources/ # 编译生成 WAR 包 mvn package
五、配置说明
5.1 配置文件参数
通过配置文件(默认路径 src/main/resources/application.properties 或 application.yml)自定义服务行为,支持以下核心参数:
| 参数键 | 说明 | 默认值 |
|---|---|---|
spring.data.mongodb.database | MongoDB 数据库名 | session_service |
spring.data.mongodb.host | MongoDB 主机地址 | localhost |
spring.data.mongodb.port | MongoDB 端口 | 27017 |
server.contextPath | 服务上下文路径(非根路径时配置) | / |
server.port | 服务监听端口 | 8080 |
security.basic.enabled | 是否启用基本认证 | false(默认关闭) |
spring.security.user.name | 基本认证用户名(启用认证时必填) | -(需手动配置) |
spring.security.user.password | 基本认证密码(启用认证时必填) | -(需手动配置) |
5.2 环境变量
通过环境变量覆盖默认配置,优先级高于配置文件:
| 环境变量名 | 说明 | 示例值 |
|---|---|---|
SERVER_PORT | 服务监听端口 | 8090 |
5.3 配置示例
基础配置(application.properties)
properties# MongoDB 配置 spring.data.mongodb.database=session_service spring.data.mongodb.host=mongodb-host spring.data.mongodb.port=27017 # 服务端口与上下文路径 server.port=8081 server.contextPath=/session-service # 启用基本认证 security.basic.enabled=true spring.security.user.name=admin spring.security.user.password=secret123
六、API 文档
6.1 文档访问
服务启动后,通过 Swagger UI 查看完整 API 文档:
http://[服务地址]:[端口]/swagger-ui.html
(若启用基本认证,需通过 [***][服务地址]:[端口]/swagger-ui.html 访问)
6.2 会话类型
服务支持以下预定义会话类型,用于区分不同业务场景:
| 类型 | 描述 |
|---|---|
main_session | 表示结果页查询会话 |
virtual_study | 表示从研究摘要页保存的样本子集 |
group | 类似 virtual_study,用于比较页 |
comparison_session | 表示比较页查询会话 |
settings | 表示 cBio 页面配置(通过 page 字段标识页面类型) |
custom_data | 存储研究视图页的自定义图表数据 |
genomic_chart | 表示用户在研究视图页添加的基因组图表 |
custom_gene_list | 表示用户在查询页添加的自定义基因列表 |
6.3 核心接口
6.3.1 创建会话
请求:POST http://[服务地址]:[端口]/api/sessions/{source}/{type}/
source:会话来源(如msk_portal,区分不同应用)type:会话类型(需为 6.2 节中定义的有效类型)- 请求体:JSON 格式的会话数据
示例:
bashcurl -H "Content-Type: application/json" --user user:pass -X POST \ http://localhost:8080/api/sessions/msk_portal/main_session \ --data '{"title": "我的主门户会话", "description": "这是一个示例"}'
响应:
- 成功:状态码
200,返回会话 IDjson{"id": "57167a52ef86d81afb415aba"} - 失败:状态码
400(无效类型或空请求体)
6.3.2 查询会话列表
请求:GET http://[服务地址]:[端口]/api/sessions/{source}/{type}/
source:会话来源type:会话类型
响应:
- 成功:状态码
200,返回会话列表(包含id、data、source、type)json[ { "id": "57167a52ef86d81afb415aba", "data": {"title": "我的主门户会话", "description": "这是一个示例"}, "source": "msk_portal", "type": "main_session" } ]
6.3.3 查询单个会话
请求:GET http://[服务地址]:[端口]/api/sessions/{source}/{type}/{id}
id:会话 ID(创建会话时返回)
响应:
- 成功:状态码
200,返回单个会话详情 - 失败:状态码
404(会话不存在)
6.3.4 更新会话
请求:PUT http://[服务地址]:[端口]/api/sessions/{source}/{type}/{id}
- 请求体:更新后的 JSON 会话数据
示例:
bashcurl -H "Content-Type: application/json" --user user:pass -X PUT \ http://localhost:8080/api/sessions/msk_portal/main_session/57167a52ef86d81afb415aba \ --data '{"title": "更新后的主门户会话", "description": "这是更新示例"}'
响应:
- 成功:状态码
200(无响应体) - 失败:状态码
400(空请求体)或404(会话不存在)
6.3.5 删除会话
请求:DELETE http://[服务地址]:[端口]/api/sessions/{source}/{type}/{id}
响应:
- 成功:状态码
200(无响应体) - 失败:状态码
404(会话不存在)
6.3.6 条件查询会话
请求:GET http://[服务地址]:[端口]/api/sessions/{source}/{type}/query?field={field}&value={value}
field:查询字段(如data.title)value:字段值(URL 编码)
示例:
bashcurl --user user:pass "http://localhost:8080/api/sessions/msk_portal/main_session/query?field=data.title&value=我的主门户会话"
响应:状态码 200,返回匹配的会话列表。
6.4 注意事项
- 大小写敏感:
source、type和id参数区分大小写(如MSK_portal与msk_portal视为不同来源)。 - 认证要求:启用基本认证后,所有接口需通过
--user {username}:{password}传递认证信息。
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务
常见问题
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
轩辕镜像下载加速使用手册
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
登录仓库拉取
通过 Docker 登录认证访问私有仓库
Linux
在 Linux 系统配置镜像加速服务
Windows/Mac
在 Docker Desktop 配置镜像加速
Docker Compose
Docker Compose 项目配置加速
K8s Containerd
Kubernetes 集群配置 Containerd
宝塔面板
在宝塔面板一键配置镜像加速
群晖
Synology 群晖 NAS 配置加速
飞牛
飞牛 fnOS 系统配置镜像加速
极空间
极空间 NAS 系统配置加速服务
爱快路由
爱快 iKuai 路由系统配置加速
绿联
绿联 NAS 系统配置镜像加速
威联通
QNAP 威联通 NAS 配置加速
Podman
Podman 容器引擎配置加速
Singularity/Apptainer
HPC 科学计算容器配置加速
其他仓库配置
ghcr、Quay、nvcr 等镜像仓库
专属域名拉取
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429