自主封装镜像
[一]支持 Postgresql 的 Nacos 自主封装镜像
Dante Cloud 自开源以来一直支持多数据的切换。对于使用 MySQL 的朋友来说,不存在部署多个数据库的问题。但是,对于使用其它数据库(比如:Postgresql)的朋友来说,部署 Dante Cloud 就需要部署两种数据库,因为 Nacos 默认只支持 MySQL。虽然,自 Nacos 2.2.0 版本开始,Nacos 已经支持以插件的方式扩展数据库存储类型,但是官方 Nacos 的 Docker 还是只支持 MySQL。
所以,为了方便用户的使用,Dante Cloud 基于 Nacos 官方 Postgresql 数据库插件和官方代码,重新构建打包了支持 Postgresql 数据库的 Nacos Docker 镜像 herodotus/nacos-server
,并已经上传至 Docker Hub。
注
该版本 Nacos Docker 镜像仅支持 Postgresql,不支持的多数据库的切换。如需使用 MySQL 版本,直接使用官方镜像即可。
[1]获取方法
- Docker Hub
docker pull herodotus/nacos-server:latest
docker pull quay.io/herodotus-cloud/nacos-server:latest
[2]Docker Compose
想要使用 herodotus/nacos-server
也非常简单,对现有 Docker Compose 进行简单修改即可
使用 Docker Compose 运行,示例脚本参见:
services:
nacos-postgresql:
image: herodotus/nacos-server:latest
container_name: nacos-postgresql
environment:
MODE: standalone
SPRING_DATASOURCE_PLATFORM: postgresql
POSTGRESQL_SERVICE_HOST: 192.168.101.10
POSTGRESQL_SERVICE_PORT: 15432
POSTGRESQL_SERVICE_USER: nacos
POSTGRESQL_SERVICE_PASSWORD: nacos
POSTGRESQL_SERVICE_DB_NAME: nacos
NACOS_AUTH_IDENTITY_KEY: serverIdentity
NACOS_AUTH_IDENTITY_VALUE: security
NACOS_AUTH_TOKEN: SecretKey012345678901234567890123456789012345678901234567890123456789
# NACOS_AUTH_ENABLE: true
volumes:
- D:\\local-cached\\docker-volumes\\nacos\\datas:/home/nacos/data
ports:
- "8848:8848"
- "9848:9848"
- "9849:9849"
[3]变量说明
参考 Nacos MySQL 相关 Docker 环境变量,增加了用于支持 Postgresql 的环境变量
变量 | 默认值 | 用途 |
---|---|---|
POSTGRESQL_SERVICE_HOST | - | Postgresql 数据库 IP 地址 |
POSTGRESQL_SERVICE_PORT | 5432 | Postgresql 数据库端口 |
POSTGRESQL_SERVICE_DB_NAME | - | Nacos postgresql 数据库名称 |
POSTGRESQL_SERVICE_USER | - | Nacos postgresql 数据库用户名 |
POSTGRESQL_SERVICE_PASSWORD | - | Nacos postgresql 数据库密码 |
POSTGRESQL_SERVICE_DB_PARAM | tcpKeepAlive=true &reWriteBatchedInserts=true &ApplicationName=nacos | Nacos postgresql 数据库连接参数 |
[4]数据库脚本
Nacos Postgresql 数据库脚本可以从 【Nacos Plugin 官网】 获取。或者关注 Dante Cloud
[二]支持持久化存储的 Sentinel 自主封装镜像
基于最新版 Spring Cloud Alibaba Sentinel Dashboard
扩展 改造,支持微服务流量监控数据持久化存储到 Influxdb
时序数据库,支持通过 Sentinel Dashboard
界面存储流量控制配置至至 Nacos
中。
时序数据存储基于 Influxdb v1.X 版本实现,Nacos 支持 v1.X 和 v2.X 版本。默认使用 Sentinel Dashboard
原有内存方式存储,可通过配置参数动态开启或关闭 Influxdb
和 Nacos
存储机制。
[1]获取方法
- Docker Hub
docker pull herodotus/sentinel-dashboard:latest
docker pull quay.io/herodotus-cloud/sentinel-dashboard:latest
[2]启动方法
docker run --name sentinel -d -p 8858:8858 -d quay.io/herodotus-cloud/sentinel-dashboard:latest
- Docker-compose 示例
services:
sentinel:
image: quay.io/herodotus-cloud/sentinel-dashboard:latest
container_name: sentinel-dashboard
environment:
SENTINEL_ADMIN_USERNAME: herodotus
SENTINEL_ADMIN_PASSWORD: herodotus
INFLUXDB_URL: http://127.0.0.1:8086
INFLUXDB_USERNAME: herodotus
INFLUXDB_PASSWORD: herodotus
INFLUXDB_DATABASE: sentinel
NACOS_SERVER_ADDRESS: http://127.0.0.1:8848
NACOS_CONFIG_DATA_ID_SUFFIX: -flow-rules
ports:
- "8858:8858"
[3]环境变量参数
Sentinel 相关参数
变量 | 默认值 | 是否必需 | 说明 |
---|---|---|---|
JAVA_OPTS | false | JVM相关运行参数 | |
SENTINEL_ADMIN_USERNAME | sentinel | false | Sentinel Dashboard 管理员用户名 |
SENTINEL_ADMIN_PASSWORD | sentinel | false | Sentinel Dashboard 管理员密码 |
InfluxDB 相关参数
变量 | 默认值 | 是否必需 | 说明 |
---|---|---|---|
INFLUXDB_URL | false | InfluxDB 连接地址,格式:http(s)😕/ip:port | |
INFLUXDB_USERNAME | false | InfluxDB 用户名 | |
INFLUXDB_PASSWORD | false | InfluxDB 密码 | |
INFLUXDB_DATABASE | false | IInfluxDB 数据库 |
注意: 需要同时设置 INFLUXDB_URL
、INFLUXDB_USERNAME
、INFLUXDB_PASSWORD
、INFLUXDB_DATABASE
这四个参数,才会开启 InfluxDB 存储方式,否则还是使用默认的内存存储方式。
Nacos 相关参数
变量 | 默认值 | 是否必需 | 说明 |
---|---|---|---|
NACOS_SERVER_ADDRESS | false | Nacos Server 地址,格式:http://ip:port | |
NACOS_CONFIG_DATA_ID_SUFFIX | -flow-rules | false | Nacos 存储配置Data ID后缀名,用于区分配置的用途。例如:xxx-service-flow-rules |
NACOS_CONFIG_NAMESPACE | false | Nacos 命名空间设置,对应 Nacos 的命名空间的ID,而不是命名空间的名称 | |
NACOS_CONFIG_GROUP | sentinel | false | Nacos 配置 Group |
NACOS_CONFIG_TYPE | json | false | Nacos 配置类型,具体参见:com.alibaba.nacos.api.config.ConfigType |
NACOS_ADMIN_USERNAME | nacos | false | Nacos 用户名(开启认证后才需要配置) |
NACOS_ADMIN_PASSWORD | nacos | false | Nacos 密码(开启认证后才需要配置) |
NACOS_AUTH_ENABLED | false | false | Nacos 是否开启认证 |
NACOS_TOKEN_TTL | 18000 | false | Nacos Token 有效时间(开启认证后才需要配置) |
注意: 设置 NACOS_SERVER_ADDRESS
参数,才会开启 Nacos 存储方式,否则还是使用默认的内存存储方式。