dubbo服务提供者连接Apollo实战

首先我们在Git新建一个Apollo分支,以下是操作方法

Git创建分支并上传代码(或者直接fork我),注意,下图配的是GitLab里面Web的,现在你要操作的是自己Git的service,因为service没截图,所以我用Web的替代
  1. 切换身份
    # 上传项目的文件夹打开,然后cd到附近的新建的apollo文件夹,克隆项目并切换身份:
    $ git http://gitlab.od.com:10000/909336740/dubbo-demo-web.git
    $ cd dubbo-demo-web/
    $ git branch apollo
    $ git checkout apollo
    
    将Apollo分支的文件全部拉来这个文件夹,选择替换重名文件
  2. 把apollo的代码全部拉过去覆盖,并上传代码
    $ git add .
    $ git commit -m "apollo commit#1"
    $ git push -u origin apollo
    
    完成,当然你可以直接fork我的

继续主线

在Apollo portal里创建相应两个配置项

新增配置项,并提交

发布

我们已经配置好了,然后需要用Jenkins制作镜像

# 填入对应参数
app_name: dubbo-demo-service
image_name: app/dubbo-demo-service
git_repo: https://gitee.com/benjas/dubbo-demo-service.git
git_ver: apollo
add_tag: 200303_1615
target_dir: ./dubbo-server/target
base_image: base/jre8:8u112

注意,我这里用的是GitLab,因为网络问题,你用自己的公网Git即可

去#38的console里查看情况

报错问题:

该报错的原因是mirrors没有改对

# 200机器:
cd /data/nfs-volume/jenkins_home/maven-3.6.1-8u232/conf
conf]# vi settings.xml

修改完上面的内容后保存再去重新构建

继续主线

镜像制作完成

# 200机器,修改指定的镜像,并添加部分内容:
cd /data/k8s-yaml/dubbo-demo-service/
dubbo-demo-service]# vi dp.yaml
        image: harbor.od.com/app/dubbo-demo-service:apollo_200303_1615
        ports:
        - containerPort: 20880
          protocol: TCP
        env:
        - name: JAR_BALL
          value: dubbo-server.jar
        - name: C_OPTS
          value: -Denv=dev -Dapollo.meta=http://config.od.com
        imagePullPolicy: IfNotPresent

# 22机器,应用:
~]# kubectl apply -f http://k8s-yaml.od.com/dubbo-demo-service/dp.yaml
# out: deployment.extensions/dubbo-demo-service configured

去LOGS查看,可以看到连接了Apollo

PS:这里的pod名字你可能觉得不一样,因为我镜像弄错了,重新改了一遍

当你把service扩容成两个后

可以看到变成两个实例

在monitor里可以看到端口是20880(注意必须连接的是zk1,怎么修改上面有,先改cm,然后删掉pod让它自动重启)

我们去Apollo改一下端口,改成20881,并发布

重启两个service的pods(就是删掉让它们自动重启)

刷新dubbo-monitor,可以看到端口已经变成20881

还可以改成zk2

作业:改成zk2后,需要删掉对应的pod,然后让其也在zk2,然后还需要把monitor也改成zk2,方法在上面有。这个作业一定要做,不然下面会报错,具体是哪里报错我会提示

最后我改回来了20880端口,但是依然用的zk2