相关文档
SOFA Stack
sofa-registry
sofa-rpc
环境
JDK 1.8Maven 3sofa-boot 3.6.0sofa-registry 5.4.2sofa-rpc 5.7.7
部署注册中心
选择在Linux上单机快速部署,其他部署方式参考文档:SOFA Registry服务端部署。
mkdir -p /opt/sofa-registry
cd /opt/sofa-registry
wget https://github.com/sofastack/sofa-registry/releases/download/v5.4.2/registry-integration-fix.tgz
tar -zvxf registry-integration-fix.tgz
cd bin
./startup.sh
可访问三个角色提供的健康监测 API,或查看日志 logs/registry-startup.log,以检查是否启动成功:
# 查看meta角色的健康检测接口:
$ curl http://localhost:9615/health/check
{
"success":true,"message":"... raftStatus:Leader"}
# 查看data角色的健康检测接口:
$ curl http://localhost:9622/health/check
{
"success":true,"message":"... status:WORKING"}
# 查看session角色的健康检测接口:
$ curl http://localhost:9603/health/check
{
"success":true,"message":"..."}
这里特别注意查看一下logs/registry-integration-std.out日志中末尾的这几行:
...
[2021-02-25 17:52:40,981][INFO][main][SessionServerBootstrap] - Session server Environment: DataCenter DefaultDataCenter,Region DEFAULT_ZONE,ProcessId 0aca3f241614246760981100119050
[2021-02-25 17:52:40,983][INFO][main][SessionServerBootstrap] - Raft Client started! Leader:192.168.11.11:9614
[2021-02-25 17:52:41,071][INFO][main][SessionServerBootstrap] - Register MetaServer Session Node success!get data node list {DefaultDataCenter={192.168.11.11=DataNode{ip=192.168.11.11}}}
[2021-02-25 17:52:41,078][INFO][main][SessionServerBootstrap] - Get all dataCenter from meta Server success!
[2021-02-25 17:52:41,091][INFO][main][SessionServerBootstrap] - MetaServer connected meta server! Port:9610
[2021-02-25 17:52:41,095][INFO][main][SessionServerBootstrap] - Session Scheduler started!
[2021-02-25 17:52:41,286][INFO][main][SessionServerBootstrap] - Open http server port 9603 success!
[2021-02-25 17:52:41,303][INFO][main][SessionServerBootstrap] - Session server started! port:9600
[2021-02-25 17:52:41,447][INFO][main][SessionServerBootstrap] - Initialized Session Server...
[2021-02-25 17:52:41,458][INFO][main][SessionServerInitializer] - Started SessionServer
[2021-02-25 17:52:41,508][INFO][main][RegistryApplication] - localhost:9603 health check success.
其中有几个IP:
[2021-02-25 17:52:40,983][INFO][main][SessionServerBootstrap] - Raft Client started! Leader:192.168.11.11:9614
[2021-02-25 17:52:41,071][INFO][main][SessionServerBootstrap] - Register MetaServer Session Node success!get data node list {DefaultDataCenter={192.168.11.11=DataNode{ip=192.168.11.11}}}
一定要注意这几个IP是否是自己想要绑定的IP,如果不是,或者几个IP不一致,可能是有多个网卡导致的。如果不做任何处理,可能会导致sofa-rpc服务注册失败、调用失败等等,解决方法可参考:sofastack/sofa-registry/issues/35
- 使用
ifconfig查看网卡列表,找到自己需要绑定的网卡名称,比如eth0. - 修改
bin/startup.sh,在JVM参数中添加-Dnetwork_interface_binding=eth0:# set user.home JAVA_OPTS="$JAVA_OPTS -Duser.home=${BASE_DIR}" # 添加下面的参数可绑定网卡 # set network JAVA_OPTS="$JAVA_OPTS -Dnetwork_interface_binding=eth0" # springboot conf SPRINGBOOT_OPTS="${SPRINGBOOT_OPTS} --logging.config=${BASE_DIR}/conf/logback-spring.xml" - 重新启动:
sh shutdown.sh sh startup.sh
创建SOFABoot项目
新建父项目sofa-registry-demo,创建三个子项目:
sofa-api:API定义,用于生产者发布服务和消费者订阅服务。sofa-provider:提供服务。sofa-consumer:消费服务并提供对外访问入口。
设置sofa-registry-demo的父项目为sofaboot-dependencies,这样所有子项目可非常方便饮用sofa依赖:
<parent>
<groupId>com.alipay.sofa</groupId>
<

本文介绍了SOFABoot项目的部署与服务创建。先说明了在Linux上单机快速部署注册中心的方法及启动检查要点,解决多网卡导致的IP绑定问题。接着阐述创建SOFABoot项目,包括新建父项目和三个子项目,分别进行接口定义、provider服务和consumer服务的开发与配置。
最低0.47元/天 解锁文章
851





