dubbo学习实践(1)之管理控制台Dubbo-admin部署
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部署的更多相关文章
- Dubbo学习总结(2)——Dubbo架构详解
一.前言 部门去年年中开始各种改造,第一步是模块服务化,这边初选dubbo试用在一些非重要模块上,慢慢引入到一些稍微重要的功能上,半年时间,学习过程及线上使用遇到的些问题在此总结下. 整理这篇文章差不 ...
- Dubbo学习总结(4)——Dubbo基于Zookeeper实现分布式实例
入门实例解析 第一:provider-提供服务和相应的接口 创建DemoService接口 [java] view plaincopyprint? <span style="font- ...
- Dubbo学习笔记11:使用Dubbo中需要注意的一些事情
指定方法异步调用 前面我们讲解了通过设置ReferenceConfig的setAsync()方法来让整个接口里的所有方法变为异步调用,那么如何指定某些方法为异步调用呢?下面讲解下如何正确地设置默写方法 ...
- Dubbo学习总结(1)——Dubbo入门基础与实例讲解
Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点.Dubbo是一个分布式服务框架,致力于 ...
- dubbo学习(三)配置dubbo API方式配置
provider(生产者) import com.alibaba.dubbo.config.ApplicationConfig; import com.alibaba.dubbo.config.Pro ...
- dubbo学习实践(5)之Dubbo-Admin元数据中心配置(zookeeper&Redis&Consul)
1.Dubbo2.7.8元数据中心配置zookeeper版 前面文章已经写到了dubbo-admin管理平台的docker版配置及dubbo服务注册与调用,这篇文章记录dubbo元数据中心配置 翻开d ...
- dubbo学习实践(4)之Springboot整合Dubbo及Hystrix服务熔断降级
1. springboot整合dubbo 在provider端,添加maven引入,修改pom.xml文件 引入springboot,版本:2.3.2.RELEASE,dubbo(org.apache ...
- dubbo学习实践(3)之Dubbo整合Consul及Dubbo配置方式
前言:上一篇中,已经写到了使用zookeeper为注册中心的配置,下面写下配置Consul为注册中心 1. Consul注册中心验证 修改provider和consumer的服务配置文件 Provid ...
- dubbo学习实践(2)之Dubbo入门Demo
开篇之前,先来了解下dubbo服务治理与技术架构,直接看图 dubbo技术架构图: 1. 新建dubbo项目,目录结构如下 代码说明: 1.代码分为Provider(服务提供方)与consumer(服 ...
随机推荐
- idea debug无法启动 Error running 'Tomcat8': Unable to open debugger port (127.0.0.1:50168): java.net.SocketException "socket closed
在日志里显示在 event log 里的 Error running 'server_web': Address localhost:1099 is already in use 显示1099单口已被 ...
- Redis 底层数据结构之压缩列表
文章参考:<Redis 设计与实现>黄建宏 压缩列表 压缩列表 ziplist 是列表键和哈希键的底层实现之一.当一个列表键只包含少量列表项,并且每个列表项要么就是小整数值,要么就是长度比 ...
- SpringBoot统一处理返回结果和异常情况
如果文章有帮助到你,还请点个赞或留下评论 原因 在springboot项目里我们希望接口返回的数据包含至少三个属性: code:请求接口的返回码,成功或者异常等返回编码,例如定义请求成功. messa ...
- Linux安装telnet(转)
一.安装telnet 1.检测telnet-server的rpm包是否安装 [root@localhost ~]# rpm -qa telnet-server 若无输入内容,则表示没有安装.出于安 ...
- Vue | 路由守卫面试常考
前言 最近在整理基础,欢迎掘友们一起交流学习 结尾有彩蛋哦! Vue Router 路由守卫 导图目录 路由守卫分类 全局路由守卫 单个路由守卫 组件路由守卫 路由守卫执行的完整过程 路由守卫分类 全 ...
- Filter+Listener核心技术
一.filter过滤器 javaweb三大组件:filter.listener.servlet. 过滤器是向web应用程序的请求和响应处理添加功能的web服务组件,可以在访问资源之前对请求和响应进行修 ...
- homestead
前言 之前写过一篇文章(https://www.jianshu.com/p/5f30280a3c18),说不需要这玩意儿一样可以开发.是的,但是对于团队来说,使用统一的环境.开发工具.编码规范等,对于 ...
- Python报错“UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)”的解决办法
最近在用Python处理中文字符串时,报出了如下错误: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 0: ...
- C语言:extern应用
前面我们都是将所有的代码写到一个源文件里面,对于小程序,代码不过几百行,这或许无可厚非,但当程序膨胀代码到几千行甚至上万行后,就应该考虑将代码分散到多个文件中,否则代码的阅读和维护将成为一件痛苦的事情 ...
- easyui-textbox使用value设置默认值失效
1,使用easyu-textbox的value参数设置默认值失效,easyui-textbox放到dialog弹框中,当dialog的closed为false时,也就是打开dialog时,设置的val ...