1.环境准备

  使用CentOS7+Docker+Zookeeper3.4.10搭建dubbo微服务

1.1.安装docker容器

  (1).uname -r:docker要求CentOS的内核版本高于3.10,所以推荐使用CentOS7及以上版本。可以通过命令uname -r查看系统的内核版本

  

  

  (2).sudo yum update:确保yum包更新到最新

  

  (3).subo yum install docker-ce-17.12.0.ce:安装docker

  这种安装方式直接从centos中拉取,如果网络不好,很难拉取下来。那么可以通过设置安装源的方式从指定的位置下载

  例如:sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo。如果本地以及安装了docker,如果需要安装最新的docker,需要把原有的删掉,否则安装不上,删除旧版本命令:sudo yum remove docker  docker-common docker-selinux docker-engine。

  

  (4).sudo systemctl start docker:启动docker

  启动后,建议设置开机自启docker:sudo systemctl enable docker,并通过命令docker version验证docker是否安装成功,如果出现以下界面,就安装成功

  

 1.2.安装zookeeper

  zookeeper主要用作服务中心,而dubbo官网最新的demo对zk的版本有要求,我试过最新的zk,是不兼容dubbo官网的demo的,所以我下载了zk3.4.10

  

  (1).docker pull zookeeper:3.4.10:拉取zk

  这里也可能存在无法拉取下来的,有2种方式解决,

  a.自己下载一个zk,然后上传到centos上,再安装。

  b.设置zk的源

 

  (2).安装zk

  因为一个一个地启动 ZK 太麻烦了, 所以为了方便起见, 我直接使用 docker-compose 来启动 ZK 集群.在user/local下创建docker/zookeeper目录,然后创建一个名为 docker-compose.yml 的文件, 其内容如下:

  

  查看刚刚拉取的zk镜像,并启动

  

  

  这里docker-compose命令可能没有,那么需要安装:

  利用pip安装:

    1.安装pip:

      yum -y install epel-release
      yum -y install python-pip

    2.安装docker-compose

      pip install docker-compose

 

  (3).docker ps:查看docker容器中启动的zk

  

  zookeeper端口号说明:
  2181:客户端连接zookeeper集群使用的监听端口号
  3888:选择leader使用
  2888:集群内机器通讯使用(leader和follower之间数据同步使用的端口号,leader监听此端口)

  

  (4).查看docker的运行状态

  

  *主从节点是通过zk的选举机制选定的,这里2183的zNode设置的最大,所以被选为主节点是意料之中。

  状态和上述图片一致,就证明启动成功了。如果没有启动成功,需要手动设置配置文件,第一次安装zk,存在配置文件不会自动创建的情形,可以进入docker容器,查看zk的配置文件是否存在缺失

  

  docker中很多命令需要安装,否则没法使用。所以需要更新源apt-get update,但是docker的内核采用的是debian,服务器不在中国,基本上无法更新成功,那么这里就需要修改源,这里列举2个源,目前还能用:具体操作

  先要更新系统的软件源:
  sudo cp /etc/apt/sources.list /etc/apt/sources.list_bak #备份一下软件源
  sudo vi /etc/apt/sources.list(这列vi可能也没法用,可以使用cat > << EOF强制写入,记得备份)

  网易163更新服务器:
  deb http://mirrors.163.com/debian/ squeeze main non-free contrib
  deb http://mirrors.163.com/debian/ squeeze-proposed-updates main non-free contrib
  deb-src http://mirrors.163.com/debian/ squeeze main non-free contrib
  deb-src http://mirrors.163.com/debian/ squeeze-proposed-updates main non-free contrib

  sohu 更新服务器:
  deb http://mirrors.sohu.com/debian/ lenny main non-free contrib
  deb http://mirrors.sohu.com/debian/ lenny-proposed-updates main non-free contrib
  deb-src http://mirrors.sohu.com/debian/ lenny main non-free contrib
  deb-src http://mirrors.sohu.com/debian/ lenny-proposed-updates main non-free contrib

2.使用dubbo-admin控制台

  进入dubbo官网:http://dubbo.apache.org/zh-cn/docs/user/quick-start.html

  安装官网文档,下载并启动dubbo-admin:

  这个地方,dubbo-admin仓库很难下载,花了一周,把所有的jar包下下来了,我已经上传至百度云,欢迎下载

  链接:https://pan.baidu.com/s/1-JnuKgpMk3qRL-61oEF0xg
  提取码:o1bh

  在dos下启动,如下图,启动成功

访问控制台:

Java微服务(一):dubbo-admin控制台的使用的更多相关文章

  1. 微服务框架Dubbo与Springcloud的区别

    微服务框架Dubbo与Springcloud的区别 微服务主要的优势如下: 1.降低复杂度 将原来偶合在一起的复杂业务拆分为单个服务,规避了原本复杂度无止境的积累.每一个微服务专注于单一功能,并通过定 ...

  2. Java微服务(二):服务消费者与提供者搭建

    本文接着上一篇写的<Java微服务(一):dubbo-admin控制台的使用>,上篇文章介绍了docker,zookeeper环境的安装,并参考dubbo官网演示了dubbo-admin控 ...

  3. Java微服务(二):负载均衡、序列化、熔断

    本文接着上一篇写的<Java微服务(二):服务消费者与提供者搭建>,上一篇文章主要讲述了消费者与服务者的搭建与简单的实现.其中重点需要注意配置文件中的几个坑. 本章节介绍一些零散的内容:服 ...

  4. 多云架构下,JAVA微服务技术选型实例解析

    [摘要] 本文介绍了基于开源自建和适配云厂商开发框架两种构建多云架构的思路,以及这些思路的优缺点. 微服务生态 微服务生态本质上是一种微服务架构模式的实现,包括微服务开发SDK,以及微服务基础设施. ...

  5. 从成本角度看Java微服务

    近年来,微服务因其良好的灵活性和伸缩性等特点备受追捧,很多公司开始采用微服务架构或将已有的单体系统改造成微服务.IBM也于近日开源了轻量级Java微服务应用服务器 Open Liberty .但是采用 ...

  6. Java微服务对UTC时间格式的处理

    一.背景 先说一下为什么要使用UTC时间.开发一个全球化的系统,服务端(Java微服务)集中部署在同一个地方,用户在全球通过浏览器.手机客户端访问.不同地区的时区是不一样的,同一个时间戳,不同的用户看 ...

  7. Java微服务框架一览

    引言:本文首先简单介绍了微服务的概念以及使用微服务所能带来的优势,然后结合实例介绍了几个常见的Java微服务框架. 微服务在开发领域的应用越来越广泛,因为开发人员致力于创建更大.更复杂的应用程序,而这 ...

  8. 现如今,最热门的13个Java微服务框架

    曾经的 服务器领域 有许多不同的芯片架构???有哪些芯片架构???和操作系统???,经过长期发展,Java的“一次编译,到处运行”使得它在服务器领域找到一席之地,成为程序员们的最爱. 本文,我们将和大 ...

  9. Java微服务 vs Go微服务,究竟谁更强!?

    前言 Java微服务能像Go微服务一样快吗? 这是我最近一直在思索地一个问题. 去年8月份的the Oracle Groundbreakers Tour 2020 LATAM大会上,Mark Nels ...

随机推荐

  1. 注解与AOP切面编程实现redis缓存与数据库查询的解耦

    一般缓存与数据库的配合使用是这样的. 1.查询缓存中是否有数据. 2.缓存中无数据,查询数据库. 3.把数据库数据插入到缓存中. 其实我们发现 1,3 都是固定的套路,只有2 是真正的业务代码.我们可 ...

  2. 使用 OpenSSL为WindowsServer远程桌面(RDP)创建自签名证书 (Self-signed SSL certificate)

    前言 笔者查阅很多资料,才写成此文章,如有错误,请读者们及时提出. 一般大家使用远程桌面(Remote Desktop)连接Windows Server时,总会有一个警告提示,如图1 图1 出现此警告 ...

  3. [转载]使用Java操作Mongodb

    HelloWorld程序 学习任何程序的第一步,都是编写HelloWorld程序,我们也不例外,看下如何通过Java编写一个HelloWorld的程序. 首先,要通过Java操作Mongodb,必须先 ...

  4. Java——检测其他线程的状态以及启动已死亡的线程

    这次这个的思路是在主类中维护一个map,map的key是线程名,value是线程的状态,然后创建周期执行的线程通过检测这个map来判断进程的状态,如果有死亡的进程就把该进程启动. 首先是主类,这里的m ...

  5. SimpleDateFormat线程不安全问题解决及替换方法

    场景:在多线程情况下为避免多次创建SimpleDateForma实力占用资源,将SimpleDateForma对象设置为static. 出现错误:SimpleDateFormat定义为静态变量,那么多 ...

  6. 【java提高】(17)---Java 位运算符

    Java 位运算符 &.|.^.~.<<.>> 以前学过有关java的运算符,不过开发了这么久也很少用过这个.现在由于开发需要,所以现在再来回顾整理下有关java的运算 ...

  7. Spark 系列(十)—— Spark SQL 外部数据源

    一.简介 1.1 多数据源支持 Spark 支持以下六个核心数据源,同时 Spark 社区还提供了多达上百种数据源的读取方式,能够满足绝大部分使用场景. CSV JSON Parquet ORC JD ...

  8. 洛谷 P3628 特别行动队

    洛谷题目页面传送门 题意见洛谷. 这题一看就是DP... 设\(dp_i\)表示前\(i\)个士兵的最大战斗力.显然,最终答案为\(dp_n\),DP边界为\(dp_0=0\),状态转移方程为\(dp ...

  9. shell 提取文件名和目录名

    转自http://blog.csdn.net/universe_hao/article/details/52640321 shell 提取文件名和目录名 在写shell脚本中,经常会有需要对路径和文件 ...

  10. 高速开车换底盘记:Windows 与 Linux 部署都抗住了,但修车任务艰巨

    抱歉,又是一篇流水账,在排查问题的焦头烂额中写博客的确是一个挑战,望大家见谅. 今天园友溪源More发了一篇博文博客园翻车启示录,而翻车之后的最新进展是——昨天下午我们又把 .net core 引擎的 ...