zoukankan      html  css  js  c++  java
  • 品优购_day01

    品优购_day01

    1. SOA架构

    ​ SOA是Service-Oriented Architecture的首字母简称,它是一种支持面向服务的架构样式。从服务、基于服务开发和服务的结果来看,面向服务是一种思考方式。其实SOA架构更多应用于互联网项目开发。

    ​ 为什么互联网项目会采用SOA架构呢?随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,迫切需一个治理系统确保架构有条不紊的演进。

    2. 框架组合

    ​ 品优购采用当前流行的前后端编程架构。后端框架采用Spring +SpringMVC+mybatis +Dubbox 。前端采用angularJS + Bootstrap。

    3. Dubbox框架

    3.1 Dubbox简介

    ​ Dubbox 是一个分布式服务框架,其前身是阿里巴巴开源项目Dubbo ,被国内电商及互联网项目中使用,后期阿里巴巴停止了该项目的维护,当当网便在Dubbo基础上进行优化,并继续维护,为了与原有的Dubbo区分,故将其命名为Dubbox。

    ​ Dubbox 致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbox就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbox这样的分布式服务框架的需求,本质上是个远程服务调用的分布式框架。

    节点角色说明:

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

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

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

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

    Container: 服务运行容器。

    调用关系说明:

    1. 服务容器负责启动,加载,运行服务提供者。

    2. 服务提供者在启动时,向注册中心注册自己提供的服务。

    3. 服务消费者在启动时,向注册中心订阅自己所需的服务。

    4. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推

    送变更数据给消费者。

    1. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,

    如果调用失败,再选另一台调用。

    1. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计

    数据到监控中心。

    3.2 注册中心zookeeper

    3.2.1 zookeeper介绍

    ​ 官方推荐使用 zookeeper 注册中心。注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小。Zookeeper 是 Apacahe Hadoop 的子项目,是一个树型的目录服务,支持变更推送,适合作为Dubbox 服务的注册中心,工业强度较高,可用于生产环境。

    3.2.2 zookeeper在Linux系统的安装

    安装步骤:

    1. 双击.vmx挂载虚拟机,右键更改网络适配器为仅主机模式,更改子网ip为25网段

      (E:6.1java就业班全套视频31.品优购电商系统开发资源Linux镜像品优购服务器pinyougou-server)

      Linux账户为root,密码为itcast

      右键-->open in terminal查看ip地址为25网段

    2. 安装 jdk(此步省略,提供的镜像已经安装好JDK)

    3. 可利用secureCRT连接到Linux,把 zookeeper 的压缩包(D:JavaEE18.pinyougouzookeeper-3.4.6.tar.gz)上传到 linux 系统,Alt+P 进入SFTP ,输入put d:zookeeper-3.4.6.tar.gz 上传

    4. 解压缩压缩包: tar -zxvf zookeeper-3.4.6.tar.gz

    5. cd zookeeper-3.4.6进入 zookeeper-3.4.6 目录,创建 data 文件夹: mkdir data

    6. 进入conf目录 ,把 zoo_sample.cfg 改名为 zoo.cfg: cd conf mv zoo_sample.cfg zoo.cfg

    7. 打开zoo.cfg , 修改 data 属性:dataDir=/root/zookeeper-3.4.6/data,vim zoo.cfg,点击i进入插入模式进行修改,按esc退出,:wq保存

    3.2.3 zookeeper服务启动

    cd ..返回上一层目录,cd bin进入bin目录,启动服务输入命令: ./zkServer.sh start, ./代表当前目录

    关闭服务输入命令: ./zkServer.sh stop

    查看运行状态: ./zkServer.sh status

    3.3 Dubbox本地 JAR包部署与安装(了解)

    ​ Dubbox的jar包并没有部署到Maven的中央仓库中,大家在Maven的中央仓库中可以查找到Dubbo的最终版本是2.5.3 , 阿里巴巴解散了Dubbo团队后由当当网继续维护此项目,并改名为 Dubbox ,坐标不变,版本变更了,但是并没有提交到中央仓库。我们现在需要手动将Dubbox的jar包安装到我的本地仓库中。

    先将dubbo-2.8.4.jar包放到d:setup(不带中文和空格的目录), 然后输入命令(本地仓库已有,可不做)

    mvn install:install-file  -Dfile=d:setupdubbo-2.8.4.jar -DgroupId=com.alibaba -DartifactId=dubbo  -Dversion=2.8.4 -Dpackaging=jar  
    

    3.4 配置离线约束

    在eclipse中配置xml catalog: dubbo.xsd约束

    3.5 管理中心的部署

    ​ 我们在开发时,需要知道注册中心都注册了哪些服务,以便我们开发和测试。我们可以通过部署一个管理中心来实现。其实管理中心就是一个web应用,部署到tomcat即可。

    3.5.1 管理端的安装

    1. 编译源码,得到war包

      给大家下发的资源中有个dubbox-master.zip ,这个是dubbox的源码,我们可以使用maven命令编译源码得到“管理端”的war包,将此压缩包解压,在命令符下进入dubbo-admin目录 ,输入maven命令:mvn package -Dmaven.skip.test=true //true代表跳过测试

      看到如下信息说明成功:

    1. 进入target文件夹,你会看到一个dubbo-admin-2.8.4.war , 在linux服务器上安装tomcat, 将此war包上传到linux服务器的tomcat的webapps下。为了访问方便,你可以把版本号去掉。 启动tomcat后自动解压。

      alt+p切换到sftp,上传dubbo-admin-2.8.4.war和tomcat
      
      put D:JavaEE18.pinyougoudubbox-masterdubbo-admin	argetdubbo-admin-2.8.4.war
      
      put D:JavaEE18.pinyougou apache-tomcat-7.0.52.tar.gz
      
      切换到根目录cd ~,ll查看是否tomcat上传成功
      
      解压tomcat:tar -zxvf apache-tomcat-7.0.52.tar.gz
      
      将dubbo-admin-2.8.4.war移动到webapps
      
      mv dubbo-admin-2.8.4.war apache-tomcat-7.0.52.tar.gz /webapps
      
      ll apache-tomcat-7.0.52/webapps查看是否部署成功
      
      启动tomcat: cd apache-tomcat-7.0.52/bin
      
      ./startup.sh 启动
      
    2. 如果你部署在zookeeper同一台主机并且端口是默认的2181,则无需修改任何配置。如果不是在一台主机上或端口被修改,需要修改apache-tomcat-7.0.52/webapps/dubbo-admin-2.8.4/…/WEB-INF下的dubbo.properties ,修改如下配置:

      dubbo.registry.address=zookeeper://127.0.0.1:2181
      //修改后重新启动
      

    3.5.2管理端的使用

    1. 打开浏览器,输入http://192.168.25.132:8080/dubbo-admin/ ,登录用户名和密码均为root 进入首页。 (192.168.25.132:)是我部署的linux主机地址。

      我没有去掉版本号,所以访问的是http://192.168.25.130:8080/dubbo-admin-2.8.4/,搞得我又忙活了一会。

    2. 启动服务提供者工程(service),即可在服务治理-提供者查看到该服务。

      点击其中一条数据后可以查看详情:

    3. 启动服务消费者工程(web),运行页面,观察“消费者”列表

    4. 品优购框架搭建

    4.1 完整工程结构

    工程说明:

    pinyougou-parent 聚合工程

    pinyougou-pojo 通用实体类层

    pinyougou-dao 通用数据访问层

    pinyougou-xxxxx-interface 某服务层接口

    pinyougou-xxxxx-service 某服务层实现(service层要打包为war,因为服务最后要布到tomcat里,而不是被web工程直接引用的)

    pinyougou-xxxxx-web 某web工程

    4.2 实体类与数据访问层模块

    利用逆向工程generatorSqlmapCustom实现实体类与数据访问层代码的自动生成。

    4.2 细节问题

    1. service和web由于都要部署到tomcat,所以端口号要不同。

    2. 修改每个实体类,让其实现Serializable接口,实体类需要实现序列化接口,因为在网络中传输,本地传输不需要。

  • 相关阅读:
    Alpha 冲刺 (7/10)
    Alpha 冲刺 (6/10)
    同学录
    Alpha 冲刺 (5/10)
    Letcode刷题总结知识点
    python 基础语法
    Python 文件读写与编码解读
    py2exe界面和程序开发打包
    求职者五险一金解读
    互联网企业程序题总结
  • 原文地址:https://www.cnblogs.com/ALiWang/p/12845207.html
Copyright © 2011-2022 走看看