contracts | ||
dynamicLibrary | ||
keys | ||
lib | ||
script | ||
src | ||
ssl | ||
WebContent | ||
.gitignore | ||
build.gradle | ||
cmconfig.readme.md | ||
CommitAlgorithm.README.md | ||
Dockerfile | ||
LICENSE | ||
README.md |
#项目说明 在每个bundle git clone后 都执行 创建
git submodule update --init
建立追踪
git submodule foreach -q --recursive 'git checkout $(git config -f $toplevel/.gitmodules submodule.$name.branch || echo master)'
WebContent
初始化,建立软连接. 第一个参数必须要绝对地址 第二个可以是相对地址
ln -s ..../bdcontract-web-ide/ ./WebContent/ide
设置
CMHttpServer的run configuration里配置好路径为"xxx/bdcontract-bundle/agent-backend"
在启动完成后,需要在 节点管理 配置./yjs.jar
的路径。建议为绝对路径"xxx/cp-bundle/cp/build/output/yjs.jar"
Docker镜像制作
把Dockerfile
放到一个目录,同时把编译好的bdagent-lite.zip
放到同一目录,并解压、制作镜像:
c07e0791-4e37-422b-86e4-31307cd803f1
cd ./build/output/
cp ../../Dockerfile ./
docker build -t bdwaas/bdcontract:tag
docker push bdwaas/bdcontract:tag
docker push
笔记待梳理(监听端口与EventGroup)
服务端
-
port: http & websocket server port
-
port+1: tcp server port httpServer与tcpServer 共用同一组EventLoopGroup, boss group CMHttpServer.workergroup workerGroup对应的异步线程池:ContractManagerFrameHandler.executorService
-
port+2: doip server port ContractRepositoryMain是自己有一组workergroup
-
port+3: prometheus server port prometheus自己管理newFixedThreadPool(5)
-
ContractManager本地监听端口:1615+X ServiceServer里面,独立的workerGroup/bossGroup ServiceServer.executor
客户端
-
TCP连接NodeCenter Bootstrap都在CMActions里面实例化,独立声明的EventLoopGroup group = new NioEventLoopGroup()。 ContractManagerFrameHandler.executorService
-
TCP连接其他Master 每个连接一个Bootstrap b.group(CMHttpServer.workerGroup)直接是与http/tcp/Server的worker Group。 MasterClientFrameHandler.executorService
是网络忙还是计算忙? 是只在发端控制?还是收发一起控制? 对于单个节点的视角 TCPClient发前流量控制检查,->TCPServer收到后强保障
- 当前版本:仅在Http端控制队列长度
- 0331周计划版本:在CMHttpServer.workerGroup控制?
- 需要理清异步线程池。
线程池
ContractManager.executor是一个可扩容线程池,front-agent中所有线程执行需求都可以合并进去。 合并时,建议按照自己的线程执行需求对核心线程数(ContractManager.executor构造函数的第一个参数)进行增加,并适量提高最大线程数(第二个参数)。