2017-03-25 00:23:18 plg17 阅读数 11144
  • 漫谈dubbo分布式服务架构

    本课程主要是围绕一个小电商系统为案例,帮小伙伴讲解如何基于dubbo搭建分布式服务集群框架。掌握dubbo底层核心原理。 技术交流QQ群:257206349 (加群后可获取课程资料)

    70829 人正在学习 去看看 阿甘

dubbo-admin安装

  • 环境

VMware® Workstation 12 Pro
CentOS7

  • 下载dubbo,并打包
我这里采用git下载,git clone https://github.com/alibaba/dubbo.git。截至到今天,dubbo的最新版本为 2.5.4-SNAPSHOT。dubbo代码下载完了之后,要编译dubbo的代码,并吧dubbo所需要的包下载到本地maven仓(maven的安装和配置另外百度了)。
1.打开cmd
2.cd到dubbo的根目录下,我的dubbo根目录在D:\JAVA\workspace\dubbo。mvn install -Dmaven.test.skip=true
3.执行maven编译命令,mvn install -Dmaven.test.skip=true。-Dmaven.test.skip=true是为了跳过测试,速度快一点,pom.xml配置依赖后,bulid的时候会自动加载jar到本地仓库的。
看到build success,说明编译成功。

4.编译成功之后,在dubbo-admin工程里,target目录下就会出现dubbo-admin-2.5.4-SNAPSHOT.war文件,这就是dubbo的控制台war包。

  • 系统安装
在VM下安装CentOS7系统,过程省略……


  • JDK安装和配置
   我这里安装的是jdk1.8,过程省略……

  • zookeeper下载/安装/配置
1.zookeeper下载页面:http://apache.fayea.com/zookeeper/,我下载的是zookeeper-3.5.2-alpha.tar.gz。上传到CentOS后,
执行:tar -xvf zookeeper-3.5.2-alpha.tar.gz,进行解压,然后进入到zookeeper-3.5.2-alpha/conf,拷贝一份zoo_sample.cfg,命名为zoo.cfg。
2.vi zoo.cfg,如果想修改数据保存地址和端口号就自行修改

3.启动zookeeper。cd到zookeeper根目录下,执行:./bin/zkServer.sh start。可以用ps查看是否启动成功。

  • tomcat下载/安装/配置
1.tomcat下载页面:http://tomcat.apache.org/download-90.cgi,我这里下载的是tomcat9。
2.解压tomcat之后,到webapps目录下,清空里面的文件。
3.修改server.xml里面的8080端口,一定要修改,因为zookeeper会暂用这个端口,这个版本的zookeeper集成了jetty,jetty跟随zookeeper启动之后就会占用8080端口。我这里改成8081。
4.配置catalina.sh文件。我安装的tomcat9,不知道为什么启动报错,说找不到jvm之类的,网上查了说需要配置catalina.sh。
  打开 vi catalina.sh 文件:
在 # OS specific support. 前面加入如下代码:
  JAVA_HOME=/usr/local/jdk/jdk1.8.0_111
  JRE_HOME=$JAVA_HOME/jre
  键入 Esc 并输入“:wq!”保持并退出;

  • 部署dubbo-admin

1.上传dubbo-admin-2.5.4-SNAPSHOT.war到tomcat的webapps目录下,解压dubbo-admin-2.5.4-SNAPSHOT.war(unzip dubbo-admin-2.4.1.war dubbo-admin-2.5.4-SNAPSHOT)。
2.修改dubbo-admin-2.5.4-SNAPSHOT的dubbo.properties配置。进入到dubbo-admin-2.5.4-SNAPSHOT/WEB-INF,vi dubbo.properties,然后修改zookeeper配置。
3.启动tomcat。到tomcat的bin目录下,执行:./startup.sh。查看进程和日志,确保启动成功。
4.访问dubbo控制台。http://192.168.1.103:8081/dubbo-admin-2.5.4-SNAPSHOT/。这里要注意防火墙限制端口访问,粗暴一点的可以把防火墙关闭了。
访问用户名和密码都是root.

成功!!!





2019-10-15 15:20:24 BobZhangfighting 阅读数 12
  • 漫谈dubbo分布式服务架构

    本课程主要是围绕一个小电商系统为案例,帮小伙伴讲解如何基于dubbo搭建分布式服务集群框架。掌握dubbo底层核心原理。 技术交流QQ群:257206349 (加群后可获取课程资料)

    70829 人正在学习 去看看 阿甘

SpringBoot+Dubbo搭建一个简单的分布式服务

概念

Dubbo官网
Dubbo中文文档

搭建开始

环境准备

  1. Zookeeper下载安装

    下载地址:zookeeper

  2. 下载之后可以采用xshell上传到Linux服务器,或者直接在linux上用命令操作

    wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.12/zookeeper-3.4.12.tar.gz
    

    如下图显示
    在这里插入图片描述

  3. 下载完毕,解压、重命名文件夹、删除安装包

    tar -zxvf zookeeper-3.4.12.tar.gz
    mv zookeeper-3.4.12 zookeeper
    rm -rf zookeeper-3.4.12.tar.gz
    
  4. 进入zookeeper目录创建 data文件夹 ,记得pwd命令拷贝当前路径

    [root@localhost zookeeper]# mkdir data
    
  5. 进入zookeeper/conf目录下,复制zoo_sample.cfg命名为zoo.cfg

    cp zoo_sample.cfg zoo.cfg
    
  6. 编辑zoo.cfg文件,修改***dataDir***位置

    [root@localhost conf]# vi zoo.cfg
    # The number of milliseconds of each tick
    tickTime=2000
    # The number of ticks that the initial
    # synchronization phase can take
    initLimit=10
    # The number of ticks that can pass between
    # sending a request and getting an acknowledgement
    syncLimit=5
    # the directory where the snapshot is stored.
    # do not use /tmp for storage, /tmp here is just
    # example sakes.
    dataDir=/usr/local/zookeeper/data
    # the port at which the clients will connect
    clientPort=2181
    # the maximum number of client connections.
    # increase this if you need to handle more clients
    #maxClientCnxns=60
    #
    # Be sure to read the maintenance section of the
    # administrator guide before turning on autopurge.
    #
    # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
    #
    # The number of snapshots to retain in dataDir
    #autopurge.snapRetainCount=3
    # Purge task interval in hours
    # Set to "0" to disable auto purge feature
    #autopurge.purgeInterval=1
    
  7. 启动测试zookeeper是否正常安装

    进入/zookeeper/bin目录然后执行下面的命令
    ./zkServer.sh start
    执行 ./zkServer.sh status 查看当前zookeeper状态。
    或者运行 netstat -lntup 命令查看网络状态.
    [root@localhost bin]# ./zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
    Mode: standalone
    
  8. zookeeper安装启动成功、下面开始搭建SpringBoot简单整合Dubbo服务

  9. 开发环境:IDEA+JDK1.8

  10. 在开始搭建之前建议新建一个文件夹,然后后面接口项目,服务提供者以及服务消费者都放在这个文件夹。
    在这里插入图片描述

  11. 实现服务接口 dubbo-interface

       主要分为下面几步:
       1)、创建maven项目
       2)、创建接口类
       3)、将项目打成jar包供其他项目使用,maven install
    

    项目结构如下:在这里插入图片描述
    其中HelloService.java

    package service;
    
    public interface HelloService {
        public String sayHello(String name);
    }
    

12.实现服务提供者 dubbo-provider

主要分为下面几步:
1)、创建springboot项目
2)、加入dubbo,zookeeper以及相关接口依赖jar包
3)、application.properties配置文件中配置dubbo相关信息
4)、实现接口类
5)、服务提供者启动类编写

项目结构如下:
在这里插入图片描述
pom.xml中配置

<dependencies>
   <dependency>
       <groupId>com.dubbo.interface</groupId>
       <artifactId>dubbo-interface</artifactId>
       <version>1.0-SNAPSHOT</version>
   </dependency>
   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-web</artifactId>
   </dependency>

   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-test</artifactId>
       <scope>test</scope>
   </dependency>
   <!--引入dubbo的依赖-->
   <dependency>
       <groupId>com.alibaba.spring.boot</groupId>
       <artifactId>dubbo-spring-boot-starter</artifactId>
       <version>2.0.0</version>
   </dependency>
   <!-- 引入zookeeper的依赖 -->
   <dependency>
       <groupId>com.101tec</groupId>
       <artifactId>zkclient</artifactId>
       <version>0.10</version>
   </dependency>
</dependencies>   

启动类加上 @EnableDubboConfiguration,开启dubbo自动注解功能

@EnableDubboConfiguration
@SpringBootApplication
public class DubboProviderApplication {
   public static void main(String[] args) {
       SpringApplication.run(DubboProviderApplication.class, args);
   }
}

application.properties配置

# 配置端口
server.port=8333
spring.dubbo.application.name=dubbo-provider
spring.dubbo.application.registry=zookeeper://x.x.x.x:2181

实现接口HelloServiceImpl.java

@Component
@Service
public class HelloServiceImpl implements HelloService {
   @Override
   public String sayHello(String name) {
       return "Hello,"+name;
   }
}
  1. 实现消费者:dubbo-consumer

    跟服务提供者一样,区别就在application.properties中的
    server.port=8222
    spring.dubbo.application.name=dubbo-consumer
    同时新建一个controller请求

```java
@RestController
public class HelloController {
    @Reference
    private HelloService helloService;
    @RequestMapping("/hello")
    public String hello(){
        String str = helloService.sayHello("TT");
        System.out.println("测试结果:"+helloService.sayHello("zhangtao"));
        return str;
    }
}
```

启动类同时加上 @EnableDubboConfiguration

  1. 开启工程,测试

       先开启服务者,再开启消费者
       访问:localhost:8222/hello
    

    在这里插入图片描述
    在这里插入图片描述

至此一个简单的dubbo服务搭建完成。

Github项目地址
[1]:参考文章来自于微信公众号

2019-10-19 16:15:51 weixin_42841433 阅读数 50
  • 漫谈dubbo分布式服务架构

    本课程主要是围绕一个小电商系统为案例,帮小伙伴讲解如何基于dubbo搭建分布式服务集群框架。掌握dubbo底层核心原理。 技术交流QQ群:257206349 (加群后可获取课程资料)

    70829 人正在学习 去看看 阿甘

引言

Linux 是每个JavaEE程序员必备的技能,Linux比Windows更具有稳定性和高效性
工具:VMware Xshell Xftp
系统:CentOS
需要搭建的环境:jdk1.8 tomcat dubbo-admin zookeeper

启动linux

  • 登录之后打开终端输入ifconfig查看ip地址
    在这里插入图片描述

使用Xshell连接linux

  • 因为在真实项目中linux是不会装在本机电脑的,所以我们采用远程连接工具Xshell去连接。

在这里插入图片描述
在这里插入图片描述

  • 会弹出以下界面点击一次性接受
    在这里插入图片描述
  • 然后输入用户名密码就可以连接成功了,以下是连接成功之后的画面。
    在这里插入图片描述

使用Xftp传输软件

  • 在已经安装Xftp的情况下可以直接点击Xshell的Xftp图标
    在这里插入图片描述

  • 我们把要安装的软件全部传输到opt目录下

在这里插入图片描述

  • 全选之后右键传输可以一次性传输过去
    在这里插入图片描述

安装JDK

  • 可以使用ls命令查看opt目录下的文件
    在这里插入图片描述
解压jdk文件
  • 使用tar zxvf jdk文件名

在这里插入图片描述

配置环境变量
  • 使用vim /etc/profile命令编辑profile文件
    在这里插入图片描述
  • 输入大写G到末尾 输入i进入编辑模式

配置以下:jdk1.8.0_152是你的jdk名字

JAVA_HOME=/opt/jdk1.8.0_152
PATH=/opt/jdk1.8.0_152/bin:$PATH
export JAVA_HOME PATH

在这里插入图片描述

按下esc键 输入:wq 退出并保存
输入source /etc/profile 时配置生效
输入java -version 有jdk的信息就说明配置成功了

在这里插入图片描述

安装Tomcat

  • 解压tomcat文件
    在这里插入图片描述
  • 启动Tomcat 进入bin目录 输入./startup.sh启动
    在这里插入图片描述
  • 我们到windows上输入linux ip地址访问Tomcat是访问不了的
    在这里插入图片描述
开放8080端口供windows访问

输入命令 vim /etc/sysconfig/iptables 编辑 iptables文件

在这里插入图片描述

我们发现只开放了22端口,我们可以复制放行22端口的那行配置
不用进入编辑模式光标移到22端口的那行输入命令yy p
输入i进入编辑模式将22改成8080
按下esc 输入:wq 退出并保存
在这里插入图片描述
重启防火墙即可生效

service iptables restart
  • 再次访问Tomcat
    在这里插入图片描述

安装dubbo

进入opt目录 输入unzip dubbo-admin-2.6.0.war -d dubbo
-d 后面的dubbo为重命名
在这里插入图片描述
我们这次不采用将dubbo丢到tomcat下的webapp下进行启动
采用配置tomcat的server.xml配置文件的方式
<Context path="/dubbo" docBase="/opt/dubbo" debug="0" privileged="true" />
在这里插入图片描述
在这里插入图片描述
重新启动tomcat
输入ip地址:8080/dubbo
在这里插入图片描述
看到这个界面就说明dubbo已经运行成功了,输入用户名:root 密码:root登录即可
在这里插入图片描述

安装zookeeper

进入opt目录解压zookeeper
命令: tar zxvf zookeeper-3.4.11.tar.gz
在这里插入图片描述

修改zookeeper配置文件

进入conf目录
在这里插入图片描述
可以看到zoo_sample.cfg 文件,这个就是zookeeper的示例配置文件,不生效的,我们复制一个自己的配置文件
命令:cp zoo_sample.cfg zoo.cfg
在这里插入图片描述
然后到/opt/zookeeper-3.4.11目录下创建一个data文件夹当做数据目录
在这里插入图片描述
修改刚刚复制的配置文件并把自己创建的data目录配上
命令:vi zoo.cfg
在这里插入图片描述
在这里插入图片描述

启动zookeeper

进入zookeeper bin目录
输入以下两个命令:
./zkServer.sh start
./zkServer.sh status

在这里插入图片描述

重点:设置监控中心(Tomcat)和zookeeper的开启自启动

  • 每次打开都要手动去开启tomcat,zookeeper,如果后期有加上了redis等等一些服务,一个个去开启太麻烦了,下面我就教大家配置一下开机自启。
配置tomcat自启

来到/etc/init.d目录(linux启动时就会加载init.d里面的文件)
创建启动脚本vi dubbo-admin(vi这个命令当文件存在时会直接编辑,当文件不存在时会打开一个新文件,保存时会自动创建)
输入以下脚本;

#!/bin/bash
#chkconfig:2345 20 90
#description:dubbo-admin
#processname:dubbo-admin
CATALANA_HOME=/opt/apache-tomcat-8.5.24
export JAVA_HOME=/opt/jdk1.8.0_152
case $1 in
start)  
    echo "Starting Tomcat..."  
    $CATALANA_HOME/bin/startup.sh  
    ;;   
stop)  
    echo "Stopping Tomcat..."  
    $CATALANA_HOME/bin/shutdown.sh  
    ;;    
restart)  
    echo "Stopping Tomcat..."  
    $CATALANA_HOME/bin/shutdown.sh  
    sleep 2  
    echo  
    echo "Starting Tomcat..."  
    $CATALANA_HOME/bin/startup.sh  
    ;;  
*)  
    echo "Usage: tomcat {start|stop|restart}"  
    ;; esac

在这里插入图片描述
然后注册进入到服务中
先授予权限 命令:chmod +x dubbo-admin
命令:chkconfig --add dubbo-admin
在这里插入图片描述
我们接下来采用linux的启动方式进行启动
命令:service dubbo-admin start
在这里插入图片描述

设置zookeeper自启

来到etc/init.d目录
新建 vi zookeeper
输入以下脚本:

#!/bin/bash
#chkconfig:2345 20 90
#description:zookeeper
#processname:zookeeper
ZK_PATH=/opt/zookeeper-3.4.11
export JAVA_HOME=/opt/jdk1.8.0_152
case $1 in
         start) sh  $ZK_PATH/bin/zkServer.sh start;;
         stop)  sh  $ZK_PATH/bin/zkServer.sh stop;;
         status) sh  $ZK_PATH/bin/zkServer.sh status;;
         restart) sh $ZK_PATH/bin/zkServer.sh restart;;
         *)  echo "require start|stop|status|restart"  ;;
esac

在这里插入图片描述
然后注册进入到服务中
先授予权限 命令:chmod +x zookeeper
命令:chkconfig --add zookeeper
我们接下来采用linux的启动方式进行启动
命令:service zookeeper start
在这里插入图片描述
输入命令:ps -ef|grep zookeeper 可以查看zookeeper进程
在这里插入图片描述

重启linux

输入命令 reboot重启一下linux 看开机后tomcat和zookeeper有没有自动启动。
输入jps命令
在这里插入图片描述
输入 ps -ef|grep zookeeper
在这里插入图片描述

windows浏览器访问Linux tomcat

在这里插入图片描述
在这里插入图片描述

这里我并没有手动去启动,是linux开机之后就自动启动了,是不是很方便呢

下期再见。。。

2017-11-07 16:32:31 u012274656 阅读数 1614
  • 漫谈dubbo分布式服务架构

    本课程主要是围绕一个小电商系统为案例,帮小伙伴讲解如何基于dubbo搭建分布式服务集群框架。掌握dubbo底层核心原理。 技术交流QQ群:257206349 (加群后可获取课程资料)

    70829 人正在学习 去看看 阿甘

1、安装tomcat
http://blog.csdn.net/u012274656/article/details/78446042
2、安装zookeeper
http://blog.csdn.net/u012274656/article/details/78460215
3、安装dubbo管理控制台
3.1安装:
进入tomcat安装目录

cd apache-tomcat-8.0.47
rm -rf webapps/ROOT
wget http://code.alibabatech.com/mvn/releases/com/alibaba/dubbo-admin/2.4.1/dubbo-admin-2.4.1.war
unzip dubbo-admin-2.4.1.war -d webapps/ROOT

注意上面的官网给的地址一直不能够访问,解决方法下载https://github.com/alibaba/dubbo/tarball/master dubbo源码自己编译一个

这里写图片描述
实在不想编译的可以下载我编译好的包
http://download.csdn.net/download/u012274656/10107852

3.2、配置

vi webapps/ROOT/WEB-INF/dubbo.properties
dubbo.properties
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest

3.3、启动

./bin/startup.sh

这里写图片描述

用户: root, 密码: root 或者 用户: guest, 密码: guest

2016-09-17 10:32:43 caishancai 阅读数 4273
  • 漫谈dubbo分布式服务架构

    本课程主要是围绕一个小电商系统为案例,帮小伙伴讲解如何基于dubbo搭建分布式服务集群框架。掌握dubbo底层核心原理。 技术交流QQ群:257206349 (加群后可获取课程资料)

    70829 人正在学习 去看看 阿甘

linux 下安装dubbo+zookeeper


一、linux下单机版zookeeper安装
(0)预备
安装java环境,并配置好java相关的环境变量$JAVA_HOME

(1)下载最新的稳定版并解压
从人人下载吧:
wget wget http://download.csdn.net/detail/wujiaohua888168/8686491

tar -zxvf zookeeper-3.4.6.tar.gz
可执行文件都在bin/目录下,配置都在conf/目录下

(2)生成配置
conf/目录下有个zoo_sample.cfg,是样板配置文件
复制一份成zoo.cfg
里面有两个比较重要的配置:
dataDir=/var/lib/zookeeper # 数据存放位置,可根据需要修改
clientPort=2181 # 服务监听端口,可根据需要修改

(3)启动服务
bin/zkServer.sh start
如果未启动成功,一个检查JAVA_HOME是否正确设置,二个看端口是否冲突

(4)启动客户端测试
启动命令:
bin/zkCli.sh -server 127.0.0.1:2181


重启zookeeper 命令
zk@PC0021:~/zookeeper-3.3.5/binzkServer.sh  restart


二安装dubbo

 (1)下载dubbo-admin-2.4.1.war包,在Linuxtomcat部署,先tomcat的ROOT下文件都删除,把dubbo-admin-2.4.1.war放在tomcatwebapps/ROOT下,然后进行解压:

        #tar zxvf  dubbo-admin-2.4.1.war

    (2)然后到webapps/ROOT/WEB-INF下,有一个dubbo.properties文件,里面指向Zookeeper ,使用的是Zookeeper 的注册中心,如图所示:



 (3)然后启动tomcat服务,用户名和密码:root,并访问服务,显示登陆页面,说明dubbo-admin部署成功,如图所示:

启动完成,http://localhost:8080 访问测试,默认的用户名和密码:root/root




下面是项目中application.properties文件的配置


jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://172.16.2.59:3306/OMS_GB?useUnicode=yes&characterEncoding=UTF8&allowMultiQueries=true 
jdbc.username=admin
jdbc.password=admin
jdbc.pool.minIdle=10
jdbc.pool.maxIdle=20
jdbc.pool.maxActive=150


#当前应用名称
dubbo.application.name=oms
#当前应用负责人
dubbo.application.owner=jiaohua.wu
#当前应用负责人组织
dubbo.application.organization=winit


#dubbo.registry.protocol=multicast
#dubbo.registry.address=224.5.6.7:1234
#注册中心地址协议
dubbo.registry.protocol=zookeeper
#注册中心地址
dubbo.registry.address=172.16.2.78:2181
#dubbo.registry.address=172.16.2.59:2181
#服务注册类型  false:静态类型(监控中心管理上下线) true:自动管理
dubbo.registry.dynamic=true


#服务协议 dubbo、rmi、hessian、http、webservice、thrift、memcached、redis
#缺省配置为dubbo协议,该采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。
dubbo.protocol.protocol=dubbo
#服务数据通信端口
dubbo.protocol.port=20810
#all 所有消息都派发到线程池,包括请求,响应,连接事件,断开事件,心跳等。
#direct 所有消息都不派发到线程池,全部在IO线程上直接执行。
#message 只有请求响应消息派发到线程池,其它连接断开事件,心跳等消息,直接在IO线程上执行。
#execution 只请求消息派发到线程池,不含响应,响应和其它连接断开事件,心跳等消息,直接在IO线程上执行。
#connection 在IO线程上,将连接断开事件放入队列,有序逐个执行,其它消息派发到线程池。
dubbo.protocol.dispatcher=all
#fixed 固定大小线程池,启动时建立线程,不关闭,一直持有。(缺省)
#cached 缓存线程池,空闲一分钟自动删除,需要时重建。
#limited 可伸缩线程池,但池中的线程数只会增长不会收缩。(为避免收缩时突然来了大流量引起的性能问题)。
dubbo.protocol.threadpool=limited
#初始化线程池数量
dubbo.protocol.threads=200


#provider服务超时(建立provider端设置,consumer端不建议设置)
dubbo.timeout=60000
#consumer启动试不检查provider
dubbo.check=false
#provider是否验证参数
dubbo.validation=true
#provider并发数
dubbo.executes=500
#集群模式 failover:失败自动切换(默认)、ailfast:一次调用失败、failsafe:失败安全、failback:失败恢复定时重发、broadcast:广播调用一台失败即失败
dubbo.cluster=failover
#失败重试次数
dubbo.retries=2
#负载平衡  random:随机、roundrobin:轮循、leastactive:最少活跃调用数、consistenthash:一致hash值
dubbo.loadbalance=random

没有更多推荐了,返回首页