chao 10a577c310
feat: Supports launching multiple monolithic instances, load-balanced by nginx, requiring only MongoDB and Redis at a minimum (#3759)
* fix: performance issues with Kafka caused by encapsulating the MQ interface

* fix: admin token in standalone mode

* fix: full id version

* fix: resolve deadlock in cache eviction and improve GetBatch implementation

* refactor: replace LongConn with ClientConn interface and simplify message handling

* refactor: replace LongConn with ClientConn interface and simplify message handling

* fix: seq use $setOnInsert for min_seq in conversation update

* feat: add error code for handled friend requests and improve error handling in friend operations

* refactor(msg): update regex pattern for conversationID to include a trailing colon

* refactor: streamline cache initialization and enhance queue engine configuration

* refactor: streamline cache initialization and enhance queue engine configuration

* feat: add RegisterIP to API config and implement Redis server registration

* feat(redis): implement standalone gateway registration with Redis

* chore: update openimsdk/tools dependency to v0.0.50-alpha.121

* fix: change timer to ticker for improved periodic execution

* refactor: replace Kafka topic configuration with mqbuild constants for improved readability

* feat(redis): implement Redis-based locking mechanism for cron tasks
2026-07-03 10:28:06 +00:00
..
2024-09-12 02:38:17 +00:00
2024-08-21 07:10:43 +00:00

OpenIM Configuration File Descriptions and Common Configuration Modifications

External Component Configurations

Configuration File Description
kafka.yml Configuration for Kafka username, password, address, etc.
redis.yml Configuration for Redis password, address, etc.
minio.yml Configuration for MinIO username, password, address, etc.
mongodb.yml Configuration for MongoDB username, password, address, etc.
discovery.yml Service discovery and etcd credentials and address.
Configuration File Description
log.yml Configuration for logging levels and storage directory
notification.yml Event notification settings (e.g., add friend, create group)
share.yml Common settings for all services (e.g., secrets)
webhooks.yml Webhook URLs and related settings
local-cache.yml Local cache settings (generally do not modify)
openim-rpc-third.yml openim-rpc-third listen IP, port, and object storage settings
openim-rpc-user.yml openim-rpc-user listen IP and port settings
openim-api.yml openim-api listen IP, port, and other settings
openim-crontask.yml openim-crontask scheduled task settings
openim-msggateway.yml openim-msggateway listen IP, port, and other settings
openim-msgtransfer.yml Settings for openim-msgtransfer service
openim-push.yml openim-push listen IP, port, and offline push settings
openim-rpc-auth.yml openim-rpc-auth listen IP, port, token validity settings
openim-rpc-conversation.yml openim-rpc-conversation listen IP and port settings
openim-rpc-friend.yml openim-rpc-friend listen IP and port settings
openim-rpc-group.yml openim-rpc-group listen IP and port settings
openim-rpc-msg.yml openim-rpc-msg listen IP and port settings
Configuration File Description
prometheus.yml Prometheus configuration
instance-down-rules.yml Alert rules
alertmanager.yml Alertmanager configuration
email.tmpl Email alert template
grefana-template/Demo.json Default Grafana dashboard

Common Configuration Modifications

Configuration Item Configuration File
Configure MinIO as object storage (focus on the externalAddress field) minio.yml
Adjust log level and number of log files log.yml
Enable or disable friend verification when sending messages openim-rpc-msg.yml
OpenIMServer secret share.yml
Configure OSS, COS, AWS, or Kodo as object storage openim-rpc-third.yml
Multi-end mutual kick strategy and max concurrent connections per gateway openim-msggateway.yml
Offline message push configuration openim-push.yml
Configure webhooks for callback notifications (e.g., before/after message send) webhooks.yml
Whether new group members can view historical messages openim-rpc-group.yml
Token expiration time settings openim-rpc-auth.yml
Scheduled task settings (e.g., how long to retain messages) openim-crontask.yml

Starting Multiple Instances of a Service and Maximum File Descriptors

To start multiple instances of an OpenIM service, simply add the corresponding port numbers and modify the start-config.yml file in the projects root directory, then restart the service. For example, to start 2 instances of openim-rpc-user:

rpc:
  registerIP: ''
  listenIP: 0.0.0.0
  ports: [ 10110, 10111 ]

prometheus:
  enable: true
  ports: [ 20100, 20101 ]

Modifystart-config.yml:

serviceBinaries:
  openim-rpc-user: 2

To set the maximum number of open file descriptors (typically one per online user):

maxFileDescriptors: 10000