写点什么

操作系统迁移实战之 Dubbo 2.7.5 移植

作者:openEuler
  • 2022 年 8 月 23 日
    广东
  • 本文字数:3813 字

    阅读完需:约 13 分钟

介绍

Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC(远程过程调用)实现服务的输出和输入功能,可以和 Spring 框架无缝集成。简单地说,Dubbo 是一个基于 Spring 的 RPC 框架,能够实现服务的远程调用、服务的治理。我以 openEuler 20.03 LTS SP1 为例,聊一下移植方法。也希望大家提供一些建议。

建议版本

建议使用 Dubbo 2.7.5 版本。

环境要求

硬件要求如表 1 所示。



操作系统要求

操作系统要求如表 2 所示。


配置编译环境

配置 DNS 服务器

# cat /etc/resolv.conf nameserver 114.114.114.114nameserver 8.8.8.8
复制代码

安装依赖包

  1. 查看 Java 版本


yum install java-1.8.0* tcl git gcc gcc-c++ make cmake libtool autoconf automake -y
复制代码


  1. 查看 Java 版本


[root@localhost ~]# java -versionopenjdk version "1.8.0_272"OpenJDK Runtime Environment Bisheng (build 1.8.0_272-b10)OpenJDK 64-Bit Server VM Bisheng (build 25.272-b10, mixed mode)
复制代码


  1. 配置 Maven 环境变量。


a. 在“/etc/profile” 文件末尾增加 Maven 路径


echo "MAVEN_HOME=/opt/apache-maven-3.6.3/" >> /etc/profileecho 'export PATH=$MAVEN_HOME/bin:$PATH'  >> /etc/profile
复制代码


b. 使修改的环境变量生效


source /etc/profile
复制代码


  1. 检查配置是否生效。


[root@localhost ~]# mvn -vApache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)Maven home: /opt/apache-maven-3.6.3Java version: 1.8.0_272, vendor: Bisheng, runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.272.b10-7.oe1.aarch64/jreDefault locale: en_US, platform encoding: UTF-8OS name: "linux", version: "4.19.90-2012.4.0.0053.oe1.aarch64", arch: "aarch64", family: "unix"
复制代码


  1. 修改 Maven 配置文件中的本地仓、远程仓、代理等。配置文件路径:“/opt/apache-maven-3.6.3/conf/settings.xml”


配置网络代理,其中 host,port,username,password 需要根据当前环境修改:


<proxies>   <proxy>     <id>my-proxy</id>     <active>true</active>     <protocol>https</protocol>     <host>代理服务器网址</host>     <port>代理服务器端口</port>     <username>用户名</username>     <password>密码</password>     <nonProxyHosts>local.net|some.host.com</nonProxyHosts>   </proxy>   <proxy>     <id>my-proxy1</id>     <active>true</active>     <protocol>http</protocol>     <host>代理服务器网址</host>     <port>代理服务器端口</port>     <username>用户名</username>     <password>密码</password>     <nonProxyHosts>local.net|some.host.com</nonProxyHosts>   </proxy></proxies>
复制代码


配置远程仓库:


<mirrors>         <mirror>                <id>huaweicloud</id>                <mirrorOf>*</mirrorOf>                <url>https://mirrors.huaweicloud.com/repository/maven/</url>         </mirror></mirrors>
复制代码

编译

获取源码

mkdir /home/Dubbo && cd /home/Dubbo && wget https://github.com/apache/dubbo/archive/dubbo-2.7.5.tar.gz&& tar -xvf dubbo-2.7.5.tar.gz
复制代码

编译 dubbo-common 模块

编译 dubbo-remoting-netty 模块

  1. 修改 NettyClientTest.java 文件。


a. 打开文件,将第 76 行中的“6000”改为“9000”。


vim /home/Dubbo/dubbo-dubbo-2.7.5/dubbo-remoting/dubbo-remoting-netty/src/test/java/org/apache/dubbo/remoting/transport/netty/NettyClientTest.java
复制代码



b. 编译 dubbo-remoting-netty 模块


cd /home/Dubbo/dubbo-dubbo-2.7.5/dubbo-remoting/dubbo-remoting-netty && mvn install
复制代码



若显示 BUILD SUCCESS,则 dubbo-remoting-netty 模块编译成功。

编译 dubbo-rpc-redis 模块

  1. 获取支持 aarch64 的 embedded-redis-0.6.jar 包


 mkdir -p /root/.m2/repository/com/github/kstyrc/embedded-redis/0.6/ && wget https://mirrors.huaweicloud.com/kunpeng/maven/com/github/kstyrc/embedded-redis/0.6/embedded-redis-0.6.jar -O /root/.m2/repository/com/github/kstyrc/embedded-redis/0.6/embedded-redis-0.6.jar
复制代码


  1. 编译 dubbo-rpc-redis 模块


cd /home/Dubbo/dubbo-dubbo-2.7.5/dubbo-rpc/dubbo-rpc-redis/ && mvn install
复制代码



若显示 BUILD SUCCESS,则 dubbo-rpc-redis 模块编译成功。

编译 dubbo-remoting-etcd3 模块

  1. 安装 docker


yum -y install docker
复制代码


  1. 配置环境变量


echo "export TESTCONTAINERS_RYUK_DISABLED=true" >> /etc/profile && source /etc/profile
复制代码


  1. 修改“/root/.testcontainers.properties”文件


echo "checks.disable=true" >>  /root/.testcontainers.properties
复制代码


  1. 替换支持 ARM 64 镜像的 jetcd-launcher-0.3.0.jar 包


wget https://mirrors.huaweicloud.com/kunpeng/maven/io/etcd/jetcd-launcher/0.3.0/jetcd-launcher-0.3.0.jar -O /root/.m2/repository/io/etcd/jetcd-launcher/0.3.0/jetcd-launcher-0.3.0.jar
复制代码


  1. 编译 dubbo-remoting-etcd3 模块


cd /home/Dubbo/dubbo-dubbo-2.7.5/dubbo-remoting/dubbo-remoting-etcd3/ && mvn install
复制代码



若显示 BUILD SUCCESS,则 dubbo-remoting-etcd3 模块编译成功。

编译 dubbo- registry-consul 模块

cd /home/Dubbo/dubbo-dubbo-2.7.5/dubbo-registry/dubbo-registry-consul/ && mvn install
复制代码


==若编译过程中出现“EmbeddedConsul Could not start Consul process in...”的报错,则需要将 ARM 64 版本的 consul_1.1.0_linux_arm64.zip 包放在本地“/tmp/embedded-consul-1.1.0”目录下。==


wget https://releases.hashicorp.com/consul/1.1.0/consul_1.1.0_linux_arm64.zip && unzip consul_1.1.0_linux_arm64.zip && mv consul /tmp/embedded-consul-1.1.0/consul
复制代码


然后再重新编译



若显示 BUILD SUCCESS,则 dubbo- registry-consul 模块编译成功。

修改其余配置文件

  1. 替换本地仓库的 netty-all-4.1.25.Final.jar 包。


   mkdir -p /root/.m2/repository/io/netty/netty-all/4.1.25.Final/ && wget https://mirrors.huaweicloud.com/kunpeng/maven/io/netty/netty-all/4.1.25.Final/netty-all-4.1.25.Final.jar -O  /root/.m2/repository/io/netty/netty-all/4.1.25.Final/netty-all-4.1.25.Final.jar
复制代码


  1. 修改“/home/Dubbo/dubbo-dubbo-2.7.5/dubbo-config/dubbo-config-api/pom.xml”文件。

  2. 打开 pom.xml 文件。

  3. vim /home/Dubbo/dubbo-dubbo-2.7.5/dubbo-config/dubbo-config-api/pom.xml

  4. 添加以下代码后,保存并退出文件。

  5. 在第 31 行添加代码。


                <skipIntegrationTests>true</skipIntegrationTests>
复制代码


   ![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/bd52c693e0a34a609feb898b3fcb1abf~tplv-k3u1fbpfcp-zoom-1.image)
- 在第206行添加代码。
复制代码


            <build>                <plugins>                    <plugin>                        <groupId>org.apache.maven.plugins</groupId>                        <artifactId>maven-surefire-plugin</artifactId>                        <configuration>                            <skipTests>${skipIntegrationTests}</skipTests>                        </configuration>                    </plugin>                </plugins>            </build>
复制代码


    ![<img src="./image/Dubbo-9.png">](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/d249ffed64814680836c7995f1699084~tplv-k3u1fbpfcp-zoom-1.image)
复制代码


  1. 修改“/home/Dubbo/dubbo-dubbo-2.7.5/dubbo-compatible/pom.xml”文件。

  2. 打开 pom.xml 文件。

  3. vim /home/Dubbo/dubbo-dubbo-2.7.5/dubbo-compatible/pom.xml

  4. 添加以下代码后,保存并退出。

  5. 在第 30 行添加代码。


            <properties>                <skipIntegrationTests>true</skipIntegrationTests>            </properties>
复制代码


   ![<img src="./image/Dubbo-10.png">](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/010399a9dbdc4a2f9d4d38fc63f585a2~tplv-k3u1fbpfcp-zoom-1.image)  - 在第110行添加代码。
复制代码


            <build>                <plugins>                    <plugin>                        <groupId>org.apache.maven.plugins</groupId>                        <artifactId>maven-surefire-plugin</artifactId>                        <configuration>                            <skipTests>${skipIntegrationTests}</skipTests>                        </configuration>                    </plugin>                </plugins>            </build>
复制代码


编译 Dubbo 2.7.5

/home/Dubbo/dubbo-dubbo-2.7.5/pom.xml 文件 592 行后增加如下内容:


<configuration>  <testFailureIgnore>true</testFailureIgnore></configuration>
复制代码




若显示 BUILD SUCCESS,则 Dubbo 2.7.5 编译成功。


编译完成后的 dubbo-2.7.5.jar 包保存在“dubbo-all/target”目录




根据指导进行操作,整体还是比较流畅,遇到一些疑惑,也能在社区内寻求解决方式。感兴趣的伙伴可以尝试尝试,一起交流交流


参考资料:


openEuler 官网https://www.openeuler.org/zh/other/migration/


openEuler 兼容性列表https://www.openeuler.org/zh/compatibility/


x2openEuler 用户指南https://docs.openeuler.org/zh/docs/20.03_LTS_SP1/docs/thirdparty_migration/x2openEuleruseguide.html

用户头像

openEuler

关注

还未添加个人签名 2020.09.30 加入

开源操作系统 openEuler 是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目

评论

发布
暂无评论
操作系统迁移实战之Dubbo 2.7.5 移植_操作系统_openEuler_InfoQ写作社区