SOFARegistry + SOFABoot + SOFARPC Demo

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

相关文档

SOFA Stack
sofa-registry
sofa-rpc

环境

  • JDK 1.8
  • Maven 3
  • sofa-boot 3.6.0
  • sofa-registry 5.4.2
  • sofa-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

  1. 使用ifconfig查看网卡列表,找到自己需要绑定的网卡名称,比如eth0.
  2. 修改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"
    
  3. 重新启动:
    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>
    <
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值