zoukankan      html  css  js  c++  java
  • 第1次实践作业

    1.课程调查

           进入大三下学期的后半段,大学阶段的理论课程应该已经修得八九不离十了,在这个时间点迎来系统综合实践这门课,作为培养计划的一门新课程,我们非常希望了解你们对于课程的希望,请写下你对这门课的认识和你理想中的这门课程是怎么样的。

    答:本门课程名字叫做系统综合实践,顾名思义本门课程应该是结合过去所学的知识综合的学习实践构建一个较为稳定、架构优美系统,不是操作系统,而是软件构成的系统,可以是购物系统,可以是视频学习系统等等。

    2.了解微服务

           第一次作业我们将接触一种新型的软件架构——微服务(也许部分同学已经有所了解)。大家要做的是学习并了解该技术,微服务是什么,有什么特点,相较于传统的软件架构,它有什么优缺点,它是怎样部署的。

      2.1微服务的概念

           答:微服务的概念最早是在 2014 年由 Martin Fowler 和 James Lewis 共同提出,他们定义了微服务是由单一应用程序构成的小服务,拥有自己的进程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTTP API 通讯。同时,服务会使用最小规模的集中管理 (例如 Docker)技术,服务可以用不同的编程语言与数据库等。

      2.2微服务的特点

    • 针对特定服务发布,影响小,风险小,成本低
    • 频繁发布版本,快速交付需求
    • 低成本扩容,弹性伸缩,适应云环境

      2.3微服务的优点

    • 将复杂的业务拆分成多个小的业务,每个业务拆分成一个服务,将复杂的问题简单化。利于分工,降低新人的学习成本。
    • 微服务系统是分布式系统,业务与业务之间完全解耦,随着业务的增加可以根据业务再拆分,具有极强的横向扩展能力。面对搞并发的场景可以将服务集群化部署,加强系统负载能力。
    • 服务间采用HTTP协议通信,服务与服务之间完全独立。每个服务可以根据业务场景选取合适的编程语言和数据库。
    • 微服务每个服务都是独立部署的,每个服务的修改和部署对其他服务没有影响

      原文链接:https://blog.csdn.net/sunming709424/article/details/80578559

      2.4微服务的缺点

    • 微服务架构整个应用分散成多个服务,定位故障点非常困难。
    • 稳定性下降。服务数量变多导致其中一个服务出现故障的概率增大,并且一个服务故障可能导致整个系统挂掉。事实上,在大访问量的生产场景下,故障总是会出现的。
    • 服务数量非常多,部署、管理的工作量很大。
    • 开发方面:如何保证各个服务在持续开发的情况下仍然保持协同合作。
    • 测试方面:服务拆分后,几乎所有功能都会涉及多个服务。原本单个程序的测试变为服务间调用的测试。测试变得更加复杂。
      作者:老刘
      链接:https://www.zhihu.com/question/65502802/answer/802678798
      来源:知乎

    3.学习docker技术

      docker作为微服务的一种十分典型的代表技术,我们要做的是:

    • 学习了解docker的相关概念(容器、镜像等),了解docker、docker compose、Dockerfile、docker machine、Swarm、k8s是什么,是做什么用的,心中有概念即可;
    • 搭建你自己的docker环境,系统环境不限(主流的有Ubuntu/CentOS/Debian/Windows/MacOS等),完成docker的基本入门,包括但不限于:容器的创建、删除、更新和查询,创建并维护自己的镜像仓库,实现拉取和上传镜像等。

       3.1docker相关概念

    • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
    • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
    • 仓库(Repository):仓库可看着一个代码控制中心,用来保存镜像。
    • docker:Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源
    • docker compose:Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
    • Dockerfile:Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

    • docker machine:Docker Machine 是一种可以让您在虚拟主机上安装 Docker 的工具,并可以使用 docker-machine 命令来管理主机。Docker Machine 也可以集中管理所有的 docker 主机,比如快速的给 100 台服务器安装上 docker。

    • Swarm:Docker Swarm 是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机。 Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。
    • K8S:k8s是一个编排容器的工具,其实也是管理应用的全生命周期的一个工具,从创建应用,应用的部署,应用提供服务,扩容缩容应用,应用更新,都非常的方便,而且可以做到故障自愈,例如一个服务器挂了,可以自动将这个服务器上的服务调度到另外一个主机上进行运行,无需进行人工干涉。

       3.2搭建docker环境

    • 更新 apt 包索引
    $ sudo apt-get update
    • 安装 apt 依赖包,用于通过HTTPS来获取仓库:
    $ sudo apt-get install 
        apt-transport-https 
        ca-certificates 
        curl 
        gnupg-agent 
        software-properties-common
    • 使用阿里云镜像资源更新下载地址
    $ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add -
    • 再次更新apt包索引
    $ sudo apt-get update
    • 安装docker
    $ sudo apt-get install docker-ce
    • 安装完成后验证安装版本,显示以下内容说明安装成功
    $ docker version

    • 因为国内不能访问国外的docker官方镜像源参库,所以通过下面的方法修改镜像源地址
    • 通过终端进入进入/etc/docker/文件夹,输入下列命令创建文件daemon.json,并且会自动打开改文件
    $ sudo gedit deamon.json
    • 在该文件中输入下列代码,更改docker镜像源,该镜像源为阿里云镜像源 
    {
      "registry-mirrors": ["https://y0qd3iq.mirror.aliyuncs.com"]
    }
    • 保存并关闭文件,在重启docker服务
    $ sudo service docker restart
    • 接下来测试是否能从镜像仓库下载image,与下图一致说明修改成功
    $ sudo docker run hello-world

       3.3docker的基本操作

    •  查询容器
    $ sudo docker ps
    • 创建打开容器
    $ sudo docker run -it ubuntu /bin/bash
    • 关闭容器
    root@ed09e4490c57:/# exit
    • 查看所有的容器
    $ sudo docker ps -a
    • 删除容器(最后的字符为要删除的容器的ID)
    $ docker rm -f 1e560fca3906
    $ sudo docker login

    •  拉取镜像
    $ sudo docker pull ubuntu

    •  上传镜像到dockerhub(以上传hello-world为例)
    $ sudo docker tag hello-world username/hello:1.0 //username用在docker注册的账号ID/仓库名:版本号
    $ sudo docker push username/hello:1.0

     

  • 相关阅读:
    密码框组件
    文本框组件
    列表框组件
    复选框组件
    单选按钮组件
    nginx for windows
    Mesa 3D
    下载服务器文件到本地
    消息服务
    Redis查看已注册的提供者消费者信息
  • 原文地址:https://www.cnblogs.com/xhongj/p/12697057.html
Copyright © 2011-2022 走看看