
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
https://hub.docker.com/r/fnalabs/hive-stream-processor-js/ https://github.com/fnalabs/hive-io/blob/master/containers/hive-stream-processor-js/LICENSE https://codecov.io/gh/fnalabs/hive-io
This is the Hiveio framework Stream Processor microservice leveraging Node.js with Fastify in Docker. This is the https://hub.docker.com/r/fnalabs/hive-stream-processor-js/ to support most use cases.
Dockerfile linksStream Processors are multi-faceted in their responsibilities. By default, they handle the Command responsibilities in the CQRS pattern. Therefore, they are integrated with the domain layer to take commands and get existing aggregate data to pass to the domain layer for domain logic and validation. Once validated, it passes the returned event to the log and stores the updated snapshot of the aggregate to the caching layer. Depending on the needs of the domain model, the Stream Processor allows for transactional consistency if required. Essentially this makes it a Stream Producer as it is performing more than the https://hub.docker.com/r/fnalabs/hive-producer-js/, but for similar tasks.
The second role of the Stream Processor is to rebuild the caching layer from the transactional log. This is valuable when standing up new environments for various reasons like A/B testing, debugging, and deploying geolocated instances of the application stack. Essentially this makes it a Stream Consumer as it is performing the specific task of rebuilding the cache as opposed to the translations and queries of the https://hub.docker.com/r/fnalabs/hive-consumer-js/. Typically these would be a short-lived implementation and not used nearly as often as the default Stream Processor definition above.
The third role of the Stream Processor is the most complex. For more complex domain models, sometimes the need for a saga (or process manager) is required. A saga's job is to manage the complexities of inter-aggregate communication should the need arise. Since a Stream Processor is able to read events from the logs and also write to the logs (defined separately above), it is able to issue commands to the domain layer based on the events from one aggregate to another.
The Hiveio framework leverages Redis for a caching layer due to its high availability, distribution, and performance capabilities. Also, it employs the Redlock algorithm to provide transactional consistency and manage concurrency.
To use, you'll need:
To start using in your own infrastructure, pull the base image:
shdocker pull fnalabs/hive-stream-processor-js:<[release]|latest>
To use, write your own Dockerfile and add any additional dependencies, including the package with your domain Actors.
dockerfileFROM fnalabs/hive-stream-processor-js:latest RUN npm install hive-io-domain-example
Below is a table descri***g the possible environment variables to run the Hiveio framework Stream Processor microservice. You can override these settings if/when required. This option works great if using the standard setup within a Docker container.
| Name | Type | Default | Description |
|---|---|---|---|
| NODE_ENV | String | 'production' | microservice runtime environment |
| DEPLOY_ENV | String | NODE_ENV | microservice deployment environment (QA, Stage, etc) |
| HOSTNAME | String | microservice hostname | |
| PORT | Number | 3000 | microservice port to listen on |
| CLUSTER_SIZE | Number | [total CPUs available] | defaults to the total available CPUs allocated to the container or to the size you specify here |
| HTTP_VERSION | Number | 2 | HTTP version for backward compatibility |
| SECURE | String | 'false' | whether to run microservice secure or not. defaults to 'false' since we cannot provide certificates |
| SSL_CERT | String | '/opt/app/cert/ssl-cert.pem' | default path for SSL certificate file or the full certificate |
| SSL_KEY | String | '/opt/app/cert/ssl-key.pem' | default path for SSL key file or the full key |
| PING_URL | String | '/ping' | URL to use for shallow health checks for the microservice |
| PROCESSOR_TYPE | String | 'producer' | type of Stream Processor microservice you wish to run (can also be 'consumer' or 'stream_processor') |
| ACTOR | String | Actor (Model) the microservice is responsible for | |
| ACTOR_LIB | String | module where the ACTOR resides | |
| ACTOR_URLS | String | comma-separated URLs associated with the Actor | |
| TELEMETRY | String | 'false' | whether to run OpenTelemetry integration |
| TELEMETRY_PLUGINS | String | JSON string of OpenTelemetry plugins to enable | |
| TELEMETRY_SERVICE_NAME | String | hive-stream-processor-js | service name for OpenTelemetry |
| TELEMETRY_URL_METRICS | String | OpenTelemetry Collector URL for metrics | |
| TELEMETRY_URL_TRACES | String | OpenTelemetry Collector URL for traces | |
| EVENT_STORE_PRODUCER_TOPIC | String | Kafka topic the events will be stored under | |
| EVENT_STORE_CONSUMER_TOPIC | String | Kafka topic the events will be consumed from | |
| EVENT_STORE_ID | String | unique identifier for Kafka client connection | |
| EVENT_STORE_GROUP_ID | String | defines Kafka Stream Processor group id | |
| EVENT_STORE_BROKERS | String | comma separated URLs where Kafka is hosted | |
| EVENT_STORE_FROM_START | String | 'false' | tells Stream Processor whether or not to start at the beginning of the topic |
| EVENT_STORE_PARTITIONS | Number | 1 | tells Stream Processor how many partitions to consume |
| EVENT_STORE_BUFFER | Number | 100 | maximum number of incoming messages to batch |
| EVENT_STORE_TIMEOUT | Number | 2000 | time (in ms) to poll Kafka for delivery reports |
| CACHE_URL | String | URL where Redis is hosted | |
| LOCK_TTL | Number | 2000 | Redlock time to live before lock is released |
| LOCK_DRIFT_FACTOR | Number | 0.01 | Redlock drift factor setting |
| LOCK_RETRY_COUNT | Number | 0 | Redlock retry count setting, should be set to zero for concurrency |
| LOCK_RETRY_DELAY | Number | 400 | Redlock retry delay in milliseconds |
| LOCK_RETRY_JITTER | Number | 400 | Redlock random retry jitter in milliseconds to randomize retries |
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务