SOA架构

SOA架构

Dubbo 就是资源调度和治理中心(SOA)的管理工具

Dubbo 的架构

节点角色说明:

 Provider: 暴露服务的服务提供方。

 Consumer: 调用远程服务的服务消费方。

 Registry: 服务注册与发现的注册中心。

 Monitor: 统计服务的调用次调和调用时间的监控中心。

 Container: 服务运行容器。

1、         配置虚拟机

打开虚拟机克隆虚拟机如图:

设置克隆虚拟机网卡

启动克隆虚拟机

修改网卡地址及虚拟机IP地址:

vi/etc/sysconfig/network-scripts/ifcfg-eth0

清除原先网卡

vi /etc/udev/rules.d/70-persistent-net.rules

 

编辑完成,保存退出

然后重启虚拟机 /etc/init.d/networkrestart

注意:连接工具连接不上,请查看虚拟机是否被禁用了,是的请开启!

2、         注册中心

2、官方推荐使用 zookeeper 注册中心

上传

解压 tar -zxvf zookeeper-3.4.6.tar

 /usr/local/zookeeper-3.4.6/data

启动zookeeper

启动成功图:

 关闭防火墙

service iptables stop

如果想长时间关闭防火墙包括下次开机

chkconfig iptables off

./zkServer.sh status

3、         工程拆分

将聚合工程中的web工程设为与聚合工程同级

在eclipse删除web工程

导入web工程

配置修改

Web工程与聚合工程同级需要将之前聚合工程中web设置删除如图:

Web工程中pom.xml配置tomcat服务器

<!-- 配置tomcat插件 -->

  <build>

     <plugins>

       <plugin>

         <groupId>org.apache.tomcat.maven</groupId>

         <artifactId>tomcat7-maven-plugin</artifactId>

         <configuration>

            <port>9091</port>

           <path>/</path>

         </configuration>

       </plugin>

     </plugins>

  </build>

将service工程修改成war包工程

增加war后报错,是应为war工程缺少web.xml解决如图:

然后修改service工程粘贴的web.xml

将mybaits、spring的配置文件xml放到service工程中去如图:

4、         Dubbo发布和调用服务

Manager工程、Web工程的pom调用Dubbo相关的jar如图

<!-- dubbo相关 -->

     <dependency>

       <groupId>com.alibaba</groupId>

       <artifactId>dubbo</artifactId>

       <!-- 排除springjar -->

       <exclusions>

         <exclusion>

           <groupId>org.springframework</groupId>

 

 

            <artifactId>spring</artifactId>

         </exclusion>

          <exclusion>

            <groupId>org.jboss.netty</groupId>

            <artifactId>netty</artifactId>

         </exclusion>

       </exclusions>

 

     </dependency>

     <dependency>

       <groupId>org.apache.zookeeper</groupId>

       <artifactId>zookeeper</artifactId>

     </dependency>

     <dependency>

       <groupId>com.github.sgroschupf</groupId>

       <artifactId>zkclient</artifactId>

     </dependency>

Dao工程的pom配置如下:

<!-- 如果不添加此节点mybatismapper.xml文件都会被漏掉。 -->

  <build>

     <resources>

       <resource>

         <directory>src/main/java</directory>

         <includes>

            <include>**/*.properties</include>

            <include>**/*.xml</include>

         </includes>

         <filtering>false</filtering>

       </resource>

     </resources>

  </build>

发布服务Service工程的xml如图:

<!-- 发布dubbo服务 -->

 <!-- 配置application名称 -->

 <dubbo:application name="buy-manager"/>

 <!-- 配置注册中心的信息 -->

 <dubbo:registry protocol="zookeeper" address="192.168.11.190:2181"/>

 <!-- 配置dubbo服务以及端口号 -->

 <dubbo:protocol name="dubbo" port="20880"/>

 <!-- 申明需要暴露的服务的接口 -->

 <dubbo:service interface="com.igeek.service.ItemService" ref="itemServiceImpl"/>

调用服务web工程的xml如图:

<!-- 引用dubbo服务 -->

  <!-- 在注册中心的应用的名称 -->

  <dubbo:application name="buy-manager-web" />

  <!-- 配置注册中心的相关信息 -->

  <dubbo:registry protocol="zookeeper" address="192.168.243.135:2181" />

  <!-- 引用指定的服务 -->

  <dubbo:reference interface="com.igeek.service.ItemService"

     id="itemService" />

Pojo实体类都序列化


猜你喜欢

转载自blog.csdn.net/lu92649264/article/details/80190905