diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 36a6ab7c..253f1466 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -48,6 +48,11 @@ jobs: - 3306:3306 # Set health checks to wait until MySQL has started options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 + redis: + image: redis + ports: + - 6379:6379 + options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3 steps: - name: Checkout repository @@ -85,6 +90,9 @@ jobs: working-directory: eventmesh run: ./gradlew clean dist -x spotlessJava -x generateGrammarSource --parallel --daemon && ./gradlew installPlugin + - name: Copy configuration files + run: cp config/eventmesh.properties eventmesh/dist/conf/eventmesh.properties + - name: Set up Meta working-directory: nacos run: nohup bash bin/startup.sh -m standalone & diff --git a/.github/workflows/config/eventmesh.properties b/.github/workflows/config/eventmesh.properties new file mode 100644 index 00000000..7f26487c --- /dev/null +++ b/.github/workflows/config/eventmesh.properties @@ -0,0 +1,140 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +########################## EventMesh Runtime Environment ########################## +eventMesh.server.idc=DEFAULT +eventMesh.server.env=PRD +eventMesh.server.provide.protocols=HTTP,TCP,GRPC +eventMesh.server.cluster=COMMON +eventMesh.server.name=EVENTMESH-runtime +eventMesh.sysid=0000 +eventMesh.server.tcp.port=10000 +eventMesh.server.http.port=10105 +eventMesh.server.grpc.port=10205 +# HTTP Admin Server +eventMesh.server.admin.http.port=10106 + +########################## EventMesh TCP Configuration ########################## +eventMesh.server.tcp.enabled=true +eventMesh.server.tcp.readerIdleSeconds=120 +eventMesh.server.tcp.writerIdleSeconds=120 +eventMesh.server.tcp.allIdleSeconds=120 +eventMesh.server.tcp.clientMaxNum=10000 +# client isolation time if the message send failure +eventMesh.server.tcp.pushFailIsolateTimeInMills=30000 +# rebalance internal +eventMesh.server.tcp.RebalanceIntervalInMills=30000 +# session expire time about client +eventMesh.server.session.expiredInMills=60000 +# flow control, include the global level and session level +eventMesh.server.tcp.msgReqnumPerSecond=15000 +eventMesh.server.http.msgReqnumPerSecond=15000 +eventMesh.server.session.upstreamBufferSize=20 + +# for single event publish, maximum size allowed per event +eventMesh.server.maxEventSize=1000 +# for batch event publish, maximum number of events allowed in one batch +eventMesh.server.maxEventBatchSize=10 + +# thread number about global scheduler +eventMesh.server.global.scheduler=5 +eventMesh.server.tcp.taskHandleExecutorPoolSize=8 +# retry +eventMesh.server.retry.async.pushRetryTimes=3 +eventMesh.server.retry.sync.pushRetryTimes=3 +eventMesh.server.retry.async.pushRetryDelayInMills=500 +eventMesh.server.retry.sync.pushRetryDelayInMills=500 +eventMesh.server.retry.pushRetryQueueSize=10000 +eventMesh.server.retry.plugin.type=default + +# sleep interval between closing client of different group in server graceful shutdown +eventMesh.server.gracefulShutdown.sleepIntervalInMills=1000 +eventMesh.server.rebalanceRedirect.sleepIntervalInMills=200 + +# ip address blacklist +eventMesh.server.blacklist.ipv4=0.0.0.0/8,127.0.0.0/8,169.254.0.0/16,255.255.255.255/32 +eventMesh.server.blacklist.ipv6=::/128,::1/128,ff00::/8 + +########################## EventMesh Plugin Configuration ########################## +# storage plugin +eventMesh.storage.plugin.type=rocketmq + +# security plugin +eventMesh.server.security.enabled=false +eventMesh.security.plugin.type=security +eventMesh.security.validation.type.token=false +eventMesh.security.publickey= + +# metaStorage plugin +eventMesh.metaStorage.plugin.enabled=true +eventMesh.metaStorage.plugin.type=nacos +eventMesh.metaStorage.plugin.server-addr=127.0.0.1:8848 +eventMesh.metaStorage.plugin.username=nacos +eventMesh.metaStorage.plugin.password=nacos + +# metaStorage plugin: nacos +#eventMesh.metaStorage.nacos.endpoint= +#eventMesh.metaStorage.nacos.accessKey= +#eventMesh.metaStorage.nacos.secretKey= +#eventMesh.metaStorage.nacos.clusterName= +#eventMesh.metaStorage.nacos.namespace= +# The default value is half of CPU's num +#eventMesh.metaStorage.nacos.namingPollingThreadCount=5 + +# metaStorage plugin: zookeeper +#eventMesh.metaStorage.zookeeper.scheme= +#eventMesh.metaStorage.zookeeper.auth= +#eventMesh.metaStorage.zookeeper.connectionTimeoutMs= +#eventMesh.metaStorage.zookeeper.sessionTimeoutMs= + +# Fully qualified name of org.apache.curator.RetryPolicy implementation +#eventMesh.metaStorage.zookeeper.retryPolicy.class= + +# Constructor arguments for different org.apache.curator.RetryPolicy implementations +#eventMesh.metaStorage.zookeeper.retryPolicy.baseSleepTimeMs= +#eventMesh.metaStorage.zookeeper.retryPolicy.maxRetries= +#eventMesh.metaStorage.zookeeper.retryPolicy.maxSleepTimeMs= +#eventMesh.metaStorage.zookeeper.retryPolicy.retryIntervalMs= +#eventMesh.metaStorage.zookeeper.retryPolicy.nTimes= +#eventMesh.metaStorage.zookeeper.retryPolicy.sleepMsBetweenRetries= + +# The TLS configuration of metaStorage plugin: consul +# keyStoreInstanceType's value can refer to com.ecwid.consul.transport.TLSConfig.KeyStoreInstanceType +#eventMesh.metaStorage.consul.tls.keyStoreInstanceType= +#eventMesh.metaStorage.consul.tls.certificatePath= +#eventMesh.metaStorage.consul.tls.certificatePassword= +#eventMesh.metaStorage.consul.tls.keyStorePath= +#eventMesh.metaStorage.consul.tls.keyStorePassword= + +# metrics plugin, if you have multiple plugin, you can use ',' to split +eventMesh.metrics.plugin=prometheus + +# trace plugin +eventMesh.server.trace.enabled=false +eventMesh.trace.plugin=zipkin + +# webhook +# Start webhook admin service +eventMesh.webHook.admin.start=true +# Webhook event configuration storage mode. Currently, only file and nacos are supported +eventMesh.webHook.operationMode=file +# The file storage path of the file storage mode. If #{eventMeshHome} is written, it is in the EventMesh root directory +eventMesh.webHook.fileMode.filePath= #{eventMeshHome}/webhook +# Nacos storage mode, and the configuration naming rule is EventMesh webHook. nacosMode. {nacos native configuration key} please see the specific configuration [nacos github api](https://github.com/alibaba/nacos/blob/develop/api/src/main/java/com/alibaba/nacos/api/SystemPropertyKeyConst.java) +## Address of Nacos +eventMesh.webHook.nacosMode.serverAddr=127.0.0.1:8848 +# Webhook CloudEvent sending mode. This property is the same as the eventMesh.storage.plugin.type configuration. +eventMesh.webHook.producer.storage=standalone