1.Docker拉取现有镜像,构建Dubbo-admin

  • 拉取镜像,这里使用chenchuxin/dubbo-admin

      docker pull chenchuxin/dubbo-admin
  • 注册中心使用Consul:

      docker run -d -p 8380:8080 --name dubboAdmin -e dubbo.registry.address=consul://192.168.231.132:8500 -e dubbo.admin.root.password=root chenchuxin/dubbo-admin

    发现此镜像比较老,不支持Consul

  • 注册中心使用Zookeeper:

      docker run -d -p 8280:8080 --name dubboAdmin01 -e dubbo.registry.address=zookeeper://192.168.231.132:2181 -v /home/xujk/Work/Docker/Dubbo:/dubbo-admin -e dubbo.admin.root.password=root chenchuxin/dubbo-admin



    使用用户名和密码root登录

2. 拉取最新Dubbo-admin代码,构建最新控制台

  • 访问github:https://github.com/apache/dubbo-admin, 下载一份源码

  • 用idea打开项目

  • 查看dubbo-admin-ui文档

    说明:项目基于vuetify,标准的前后端分离项目

  • Dubbo-admin-ui前期准备工作

    A.安装nodejs,去nodejs官网下载安装



    安装完之后,输入命令查看是否安装成功

      Node -v
    Npm -v

    B.安装nrm包管理工具
      Npm install -g nrm

    显示所有源:

      Nrm ls

    新增源,添加淘宝镜像地址

      Nrm add Taobao https://registry.npm.taobao.org

    切换npm包源

      Nrm use Taobao

    C.安装vue和vue-cli
      npm install -g @vue
    npm install --global @vue-cli
    D.输入命令,运行admin-ui
      Npm install
    Npm run dev 开发模式运行

    输入地址,访问

3. Dubbo-admin-server编译运行

  • 参考,修改配置文件,修改zookeeper注册中心的地址,此版本也可以修改为consul,nanos,redis等注册中心

  • 修改完之后,构建,运行

    使用maven命令,运行server端
      Mvn clean package
    Mvn --projects dubbo-admin-server spring-boot:run

    通过访问8080端口,访问dubbo-admin

4. Dubbo-admin打包成docker镜像,便于部署

  • 参考dubbo-admin 0.2.0的dockerfile文件

    说明:把这些圈着的地方,改为develop版本的(dubbo-admin-develop)

  • 创建dockerfile文件,如下图:

    Dockerfile内容:
      FROM maven:3-openjdk-8
    RUN mkdir /source && wget https://github.com/apache/dubbo-admin/archive/develop.zip && unzip -q develop.zip -d /source
    WORKDIR /source/dubbo-admin-develop
    RUN mvn --batch-mode clean package -Dmaven.test.skip=true FROM openjdk:8-jre
    LABEL maintainer="dev@dubbo.apache.org"
    COPY --from=0 /source/dubbo-admin-develop/dubbo-admin-distribution/target/dubbo-admin-0.2.0-SNAPSHOT.jar /app.jar
    ENTRYPOINT ["java","-XX:+UnlockExperimentalVMOptions","-XX:+UseCGroupMemoryLimitForHeap","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] EXPOSE 8080
    对应的修改部分,参考一下dubbo-admin的项目目录

    创建镜像文件
      docker build -t dubbo-admin:0.3.0 .
    创建容器:
      docker run -d --network=mynetwork --ip 172.18.0.21 -p 8380:8080 --name dubboAdmin02 -e admin.registry.address=zookeeper://192.168.231.132:2181 -e admin.config-center=zookeeper://192.168.231.132:2181 -e admin.metadata-report.address=zookeeper://192.168.231.132:2181 -v /home/xujk/Work/Docker/Dubbo:/dubbo-admin -e admin.root.user.password=root dubbo-admin:0.3.0

    注意:通过-e把环境变量填进去,填全3个,否则容器会报错,有的会连不上zookeeper,所有的环境变量都可对应配置文件的属性就行配置

    通过端口8380访问dubbo-admin

5. 第二种构建docker-admin镜像的方法

  • 把咱们本地构建好的jar包直接拷贝到dockerfile相同的目录下

  • 修改dockerfile文件内容

    内容如下:
      FROM openjdk:8-jre
    LABEL maintainer="dev@dubbo.apache.org"
    COPY dubbo-admin-0.2.0-SNAPSHOT.jar /app.jar
    ENTRYPOINT ["java","-XX:+UnlockExperimentalVMOptions","-XX:+UseCGroupMemoryLimitForHeap","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
    EXPOSE 8080
  • 直接执行命令构建image

      docker build -t dubbo-admin:0.3.1 .



    说明:构建image就省去了下载代码,构建代码的过程

  • 输入命令,创建dubbo-admin容器

    由于我构建的jar包,注册地址(zookeeper:zookeeper://192.168.231.132:2181)已经修改了,所以我们这里可以不用加环境变量构建
      docker run -d --network=mynetwork --ip 172.18.0.22 -p 8480:8080 --name dubboAdmin03 -v /home/xujk/Work/Docker/Dubbo:/dubbo-admin -e admin.root.user.password=root dubbo-admin:0.3.1
    通过访问地址,发现dubbo-admin也正常运行了

    我们修改下注册地址,改为consul(consul://192.168.231.132:8500),创建dubbo-admin容器:
      docker run -d --network=mynetwork --ip 172.18.0.22 -p 8480:8080 --name dubboAdmin03 -e admin.registry.address=consul://192.168.231.132:8500 -e admin.config-center=consul://192.168.231.132:8500 -e admin.metadata-report.address=consul://192.168.231.132:8500 -v /home/xujk/Work/Docker/Dubbo:/dubbo-admin -e admin.root.user.password=root dubbo-admin:0.3.1

    同样用consul作为服务注册中心,也是成功的

dubbo学习实践(1)之管理控制台Dubbo-admin部署的更多相关文章

  1. Dubbo学习总结(2)——Dubbo架构详解

    一.前言 部门去年年中开始各种改造,第一步是模块服务化,这边初选dubbo试用在一些非重要模块上,慢慢引入到一些稍微重要的功能上,半年时间,学习过程及线上使用遇到的些问题在此总结下. 整理这篇文章差不 ...

  2. Dubbo学习总结(4)——Dubbo基于Zookeeper实现分布式实例

    入门实例解析 第一:provider-提供服务和相应的接口 创建DemoService接口 [java] view plaincopyprint? <span style="font- ...

  3. Dubbo学习笔记11:使用Dubbo中需要注意的一些事情

    指定方法异步调用 前面我们讲解了通过设置ReferenceConfig的setAsync()方法来让整个接口里的所有方法变为异步调用,那么如何指定某些方法为异步调用呢?下面讲解下如何正确地设置默写方法 ...

  4. Dubbo学习总结(1)——Dubbo入门基础与实例讲解

    Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点.Dubbo是一个分布式服务框架,致力于 ...

  5. dubbo学习(三)配置dubbo API方式配置

    provider(生产者) import com.alibaba.dubbo.config.ApplicationConfig; import com.alibaba.dubbo.config.Pro ...

  6. dubbo学习实践(5)之Dubbo-Admin元数据中心配置(zookeeper&Redis&Consul)

    1.Dubbo2.7.8元数据中心配置zookeeper版 前面文章已经写到了dubbo-admin管理平台的docker版配置及dubbo服务注册与调用,这篇文章记录dubbo元数据中心配置 翻开d ...

  7. dubbo学习实践(4)之Springboot整合Dubbo及Hystrix服务熔断降级

    1. springboot整合dubbo 在provider端,添加maven引入,修改pom.xml文件 引入springboot,版本:2.3.2.RELEASE,dubbo(org.apache ...

  8. dubbo学习实践(3)之Dubbo整合Consul及Dubbo配置方式

    前言:上一篇中,已经写到了使用zookeeper为注册中心的配置,下面写下配置Consul为注册中心 1. Consul注册中心验证 修改provider和consumer的服务配置文件 Provid ...

  9. dubbo学习实践(2)之Dubbo入门Demo

    开篇之前,先来了解下dubbo服务治理与技术架构,直接看图 dubbo技术架构图: 1. 新建dubbo项目,目录结构如下 代码说明: 1.代码分为Provider(服务提供方)与consumer(服 ...

随机推荐

  1. DRF之过滤排序分页异常处理

    一.过滤 对于列表数据要通过字段来进行过滤,就需要添加 django-filter 模块 使用方法: # 1.注册,在app中注册 settings.py INSTALLED_APPS = [ 'dj ...

  2. java:UDP广播发送与接收数据报实现

    编写广播数据类 package com.zy.java.service; import java.io.*; import java.net.DatagramPacket; import java.n ...

  3. 资源:jenkins下载路径

    Jenkins版本下载路径 所有版本:http://mirrors.jenkins.io/war/

  4. shell 中()、[]、{}、(())、[[]]等各种括号的使用

    11 shell中内置关键字[[]]:检查条件是否成立 1.小括号.圆括号() 1.1 单小括号() 用途     命令组 括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余 ...

  5. 5shell中的数组

    0.理解数组 (1)shell不限制数组的大小,数组元素的下标从0开始计数 (2)获取数组中的元素要使用下标[ ],下标可以是一个整数,也可以是一个结果为整数的表达式,但是下标必须大于等于0 (3)b ...

  6. Jquery Validate动态添加和删除校验规则

    以下面文本框为例, <input type="text"name="username" id="username"/> 我们要让 ...

  7. Java程序设计(2021春)——第二章课后题(选择题+编程题)答案与详解

    Java程序设计(2021春)--第二章课后题(选择题+编程题)答案与详解 目录 Java程序设计(2021春)--第二章课后题(选择题+编程题)答案与详解 第二章选择题 2.1 面向对象方法的特性 ...

  8. etcd中watch源码解读

    etcd中watch的源码解析 前言 client端的代码 Watch newWatcherGrpcStream run newWatchClient serveSubstream server端的代 ...

  9. java 实现中英文拼写检查和错误纠正?可我只会写 CRUD 啊!

    简单的需求 临近下班,小明忙完了今天的任务,正准备下班回家. 一条消息闪烁了起来. "最近发现公众号的拼写检查功能不错,帮助用户发现错别字,体验不错.给我们系统也做一个." 看着这 ...

  10. Spring RestTemplate 之post请求

    ●post请求:在RestTemplate中,POST请求可以通过如下三个方法来发起,但post提交方式又有两种 formData 和 payLoad,而且接口设计与传统的浏览器使用的提交方式又有差异 ...