• 2020系统综合实践 第1次实践作业


    (1)课程调查

    • 在没上这门课程之前,听课程名感觉像计算机系统方面的课程,上学期也有听同学说我们新开了一门类似软件工程的课。上课之后感觉都不太一样,作为微服务的小白谈认识的话很像并没有什么深刻的认识,对课程的期望的话,希望能从这门课多学会一些技能吧,希望能够掌握更多的知识

    (2)了解微服务

    • 微服务是什么
      • 微服务可以在"自己的程序"中运行,并通过"轻量级设备与HTTP型API进行沟通"。关键在于该服务可以在自己的程序中运行。通过这一点我们就可以将服务公开与微服务架构(在现有系统中分布一个API)区分开来。在服务公开中,许多服务都可以被内部独立进程所限制。如果其中任何一个服务需要增加某种功能,那么就必须缩小进程范围。在微服务架构中,只需要在特定的某种服务中增加所需功能,而不影响整体进程的架构。
    • 微服务的特点
      • 微服务的基本思想在于考虑围绕着业务领域组件来创建应用,这些应用可独立地进行开发、管理和加速。在分散的组件中使用微服务云架构和平台,使部署、管理和服务功能交付变得更加简单。
      • 微服务是利用组织的服务投资组合,然后基于业务领域功能分解它们,在看到服务投资组合之前,它还是一个业务领域。
      • 微服务这一概念出现于2012年,是因软件作者Martin Fowler而流行,他承认这并没有精确地定义出这一架构形式,虽然围绕业务能力、自动化部署、终端智能以及语言和数据的分散控制有一些常见的特性。
    • 微服务的优点
      • 1.大项目可以持续交付 2.易于维护 3.服务可以可以独立拓展 4.更强的兼容性 5.可以灵活的采用最新的技术
    • 微服务的缺点
      • 服务的拆分
      • 分布式系统带来的挑战,主键如何产生、如何熔断、分布式事务如何处理、数据如何同步等一系列问题
      • 多个研发团队的协调管理,不同的团队研发不同的微服务,那么就需要协调多个团队共同配合,才能做好微服务的开发工作,这堆项目管理提出了挑战。
    • 微服务的部署
      • 1.基于主机(物理机或虚机)的多服务实例;2.基于主机(物理机或虚机)的服务实例;3.基于容器的服务实例;4.无服务器部署。

    (3)学习docker技术

    docker的相关概念

    • dock:Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
    • docker compose:Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
    • Dockerfile:Dockerfile是一个Docker镜像的描述文件,其内部包含了一条条的指令,每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建
    • docker machine:docker machine是 Docker 官方提供的一个工具,它可以帮助我们在远程的机器上安装 Docker,或者在虚拟机 host 上直接安装虚拟机并在虚拟机中安装 Docker。我们还可以通过 docker-machine 命令来管理这些虚拟机和 Docker。
    • Swarm:Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源。Swarm和Kubernetes比较类似,但是更加轻,具有的功能也较kubernetes更少一些。
    • k8s:是一个编排容器的工具,其实也是管理应用的全生命周期的一个工具,从创建应用,应用的部署,应用提供服务,扩容缩容应用,应用更新,都非常的方便,而且可以做到故障自愈。

    docker环境的搭建

    • 更新 apt 包索引
    sudo apt-get update
    

    • 安装 apt 依赖包,用于通过HTTPS来获取仓库
    sudo apt-get install 
        apt-transport-https 
        ca-certificates 
        curl 
        gnupg-agent 
        software-properties-common
    

    • 添加 Docker 的官方 GPG 密钥
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    

    • 验证您现在是否拥有带有指纹的密钥
    sudo apt-key fingerprint 0EBFCD88
    

    • 设置稳定版仓库
    sudo add-apt-repository 
       "deb [arch=amd64] https://download.docker.com/linux/ubuntu 
      $(lsb_release -cs) 
      stable"
    

    • 更新 apt 包索引
    sudo apt-get update
    

    • 安装最新版本的 Docker Engine-Community 和 containerd ,或者转到下一步安装特定版本
    sudo apt-get install docker-ce docker-ce-cli containerd.io
    

    • 测试 Docker 是否安装成功
    sudo docker run hello-world
    

    容器的使用

    • 注册阿里云

    • 配置镜像加速器
    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["自己的加速器地址"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    

    • 获取镜像
    sudo docker pull ubuntu
    
    第一次获取镜像出错了,加上sudo就可以了
    

    • 启动容器与退出
    sudo docker run -it ubuntu /bin/bash
    exit
    

    • 查看所有的容器
    sudo docker ps -a
    

    • 启动停止重启容器
    sudo docker start b750bbbcfd88 
    sudo docker stop <容器 ID>
    sudo docker restart <容器 ID>
    

    • 查询容器
    sudo docker inspect <容器 ID>
    

    • 删除容器
    sudo docker rm -f 1e560fca3906
    

    镜像的使用

    • 列出镜像列表
    sudo  docker images 
    

    • 拖取镜像
    sudo docker pull httpd
    

    • 删除镜像
    sudo docker rmi hello-world
    

    仓库管理

    • 阿里云上建一个仓库

    • 拉取和上传镜像

  • 相关阅读:
    sql参数化查询语句
    委托窗体之间的传值
    js交换变量写法
    win8环境下安装sql2008r2
    无法绑定由多个部分组成的标识符“System.Data.DataRowView” 遇到问题转帖
    利用stringBuilder操作html文件
    阿里云 发送手机短信
    在定时器中service注入不进去的解决方案
    mysql 排序后在查询
    Hibernate使用Criteria实现分页
  • 原文地址:https://www.cnblogs.com/linmzAa/p/12705657.html
Copyright © 2020-2023  润新知