月度归档:2019年08月

SVN仓库迁移(将一个仓库从一台机器上上转移到另一台机器上)

No.1 将准备要迁移的仓库导出 命令: svnadmin dump 仓库名 > svn_dump

No.2 在新的服务器上创建心的仓库 命令: svnadmin create SVNROOT

No.3 导入刚导出的文件svn_dump 命令: svnadmin load SVNROOT < svn_dump

// 注意,以上操作会导致所有的配置丢失,比如密码、权限控制等,只要将原有的conf文件覆盖新的就可以了

在整个操作的过程中要注意仓储路径问题,为避免出错,可以使用绝对路径来表示以上内容,仅以No.3 做实例解析

svnadmin load D:\SVNROOT < D:\svn_dump   解析:新的仓储SVNROOT就创建在D盘根目录下,而导出的文件也已将放在了本地的D盘根目录下

网上有提供一种直接将原仓库目录copy到另一台机器上,然后修改apache 的svn路径指向新的地址的做法,我也尝试过一次,发现有丢失信息,具体不详,所以不推荐

还有一个问题,我查看我的原始准备导出的仓库文件大小只有2.2G左右,而使用svnadmin 命令导出后的文件却有5G之多,中间的差别我也不甚了解,所以推荐使用svn的命令导入仓库

docker在dubbo项目中的配置

某些部署方案需要动态指定服务注册的地址。例如,docker bridge网络模式需要指定用于外部网络通信的注册主机IP。Dubbo在启动阶段提供两对系统属性,用于设置外部通信的IP和端口地址。

  • DUBBO_IP_TO_REGISTRY — 注册到注册中心的IP地址
  • DUBBO_PORT_TO_REGISTRY — 注册到注册中心的端口
  • DUBBO_IP_TO_BIND — 监听IP地址
  • DUBBO_PORT_TO_BIND — 监听端口
  1. 以上四种配置是可选的。如果没有配置,Dubbo将自动获得IP和端口。请根据部署方案灵活选择。
  2. Dubbo支持多协议。如果应用程序同时公开多个不同的协议服务,并且需要为每个服务单独指定IP或端口。请分别在上述属性之前添加协议前缀。例如:
  • HESSIAN_DUBBO_PORT_TO_BIND hessian 协议绑定端口
  • DUBBO_DUBBO_PORT_TO_BIND dubbo dubbo协议绑定端口
  • HESSIAN_DUBBO_IP_TO_REGISTRY hessian协议注册IP
  • DUBBO_DUBBO_IP_TO_REGISTRY dubbo协议注册IP
  1. PORT_TO_REGISTRY 或者 IP_TO_REGISTRY不会被用作默认 PORT_TO_BIND or IP_TO_BIND,但反之亦然。
  • 如果设置PORT_TO_REGISTRY=20881 IP_TO_REGISTRY=30.5.97.6,则 PORT_TO_BIND IP_TO_BIND不会受到影响。
  • 如果设置PORT_TO_BIND=20881 IP_TO_BIND=30.5.97.6,则 PORT_TO_REGISTRY=20881 IP_TO_REGISTRY=30.5.97.6 默认为。

dubbo-docker-sample 本地操作过程:

  1. 将项目克隆到本地
git clone git@github.com:dubbo/dubbo-docker-sample.git
cd dubbo-docker-sample
  1. 打包当地的maven
mvn clean install  
  1. 通过docker build构建一个镜像
docker build --no-cache -t dubbo-docker-sample . 

Dockerfile

FROM openjdk:8-jdk-alpine
ADD target/dubbo-docker-sample-0.0.1-SNAPSHOT.jar app.jar
ENV JAVA_OPTS=""
ENTRYPOINT exec java $JAVA_OPTS -jar /app.jar
  1. 从镜像创建和运行容器
# 由于我们使用zk注册中心,首先我们启动zk容器
docker run --name zkserver --restart always -d zookeeper:3.4.9
docker run -e DUBBO_IP_TO_REGISTRY=30.5.97.6 -e DUBBO_PORT_TO_REGISTRY=20881 -p 30.5.97.6:20881:20880 --link zkserver:zkserver -it --rm dubbo-docker-sample

假设主机IP为30.5.97.6。
设置提供程序以通过环境变量注册注册中心的IP地址和端口 DUBBO_IP_TO_REGISTRY=30.5.97.6 DUBBO_PORT_TO_REGISTRY=20881
实现端口映射-p 30.5.97.6:20881:20880, 其中 20800 是dubbo自动选择的侦听端口。没有监控IP配置,因此它将监听0.0.0.0(所有IP)。
启动后,提供者的注册地址为 30.5.97.6:20881, 容器的监听地址为: 0.0.0.0:20880

  1. 测试
    另一个主机或容器执行
telnet 30.5.97.6 20881
ls
invoke com.alibaba.dubbo.test.docker.DemoService.hello("world")