• 第1次实践作业


    课程调查

    本来以为是系统结构综合实践,结果是系统综合实践,不是很清楚要上什么。希望这门课可以学到职业技能,对未来的职业发展有帮助。

    了解微服务

    • 微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间相互协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务和服务之间采用轻量级的通信机制相互沟通(通常是基于HTTP的Restful API).每个服务都围绕着具体的业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行建。

    • 相对于传统软件的优点:

      • 提升开发交流,每个服务足够内聚,足够小,代码容易理解;

      • 服务独立测试、部署、升级、发布;

      • 按需定制的DFX,资源利用率,每个服务可以各自进行x扩展和z扩展,而且,每个服务可以根据自己的需要部署到合适的硬件服务器上;每个服务按

      • 需要选择HA的模式,选择接受服务的实例个数;

      • 容易扩大开发团队,可以针对每个服务(service)组件开发团队;

      • 提高容错性(fault isolation),一个服务的内存泄露并不会让整个系统瘫痪;

      • 新技术的应用,系统不会被长期限制在某个技术栈上;

    • 相对于传统软件的缺点

      • 没有银弹(可以有效提高开发效率同时避免软件重大缺陷的方法),微服务提高了系统的复杂度;
      • 开发人员要处理分布式系统的复杂性;
      • 服务之间的分布式通信问题;
      • 服务的注册与发现问题;
      • 服务之间的分布式事务问题;
      • 数据隔离再来的报表处理问题;
      • 服务之间的分布式一致性问题;
      • 服务管理的复杂性,服务的编排;
      • 不同服务实例的管理。
    • 微服务的部署

      • 微服务架构的应用系统包含若干个微服务
      • 每个微服务部署多个实例
      • 通过自动部署与运维工具实现部署自动化

    学习docker技术

    docker是什么?

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源.
    Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
    

    docker的相关概念?

    镜像:Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系
    容器:镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
    仓库:仓库可看着一个代码控制中心,用来保存镜像。
    
    dockerfile:dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
    docker compose:compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。
    docker machine:Docker Machine 是一种可以让您在虚拟主机上安装 Docker 的工具,并可以使用 docker-machine 命令来管理主机。
    docker swarm:Docker Swarm 是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机。 Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。
    

    搭建自己的docker环境
    (安装的部分按照教程走基本上没有问题,而且我忘了截图...所以就只写一下步骤)

    sudo apt-get remove docker docker-engine docker.io containerd runc//删除旧版本
    sudo apt-get update//更新索引
    /************************/
    sudo apt-get install 
    apt-transport-https 
    ca-certificates 
    curl 
    gnupg-agent 
    software-properties-common//安装apt迎来包
    /**********************/
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -//添加官方密钥
    /***********************/
    sudo add-apt-repository 
    "deb [arch=amd64] https://download.docker.com/linux/ubuntu 
    $(lsb_release -cs) 
    stable"//设置稳定版
    /**************************/
    sudo apt-get install docker-ce docker-ce-cli containerd.io//安装最新版本的容器
    

    docker的入门操作

    • 拉取镜像
      sudo docker pull ubuntu:19.04//从dockerhub拉取镜像

      sudo docker run ubuntu:19.04 /bin/echo hello world//在镜像Ubuntu:19.04上运行输出helloworld,测试镜像拉取是否成功

    • 容器的创建和删除

      sudo docker run -it ubuntu:19.04 /bin/bash //启动一个容器并进入容器的交互命令界面
      

      sudo dokcer rm -f **container id**     //删除容器
      


    • 容器的启动和停止

      sudo docker ps -a    //查看所有容器
      sudo docker start **cintainer id**   //启动容器 
      


      可以发现容器的状态发生改变

      sudo docker stoop **container id**    //停止容器
      


      容器停止

    • 容器的导出和导入

      sudo docker export **container id** > **filepath/filename.tar**    //  将容器导出到压缩文件
      


      sudo cat filepath/filename.tar  | sudo docker import - test/ubuntu    //将快照文件导入为镜像
      


    • 镜像的更新

      sudo docker commie -m=''描述'' -a='用户'   **container id** **repository:tag** //镜像更新
      


    • 镜像仓库的创建

      sudo docker pull registry    // 拉取取镜像仓库到本地
      curl http://server-ip:port/v2/_catalog    //访问查看仓库中存储的镜像
      


    • 镜像仓库的上传和下载

      sudo docker tag **repository:tag** server-ip:port/repository:tag    //为镜像打上标签,需要附带镜像仓库的ip地址,如果仓库在本地则使用127.0.0.1。
      sudo docker push server-ip:port/repository:tag    //上传镜像到镜像仓库
      


      sudo docker rmi **repository**    // 删除本地镜像
      sudo docker pull server-ip:port/repository:tag    //从镜像仓库下载镜像
      


    • 远程镜像仓库的管理

      • 注册一个dockerhub账户/登录账户

      • 镜像上传到账户仓库

        sudo docker tag **repository:tag** username/repository:tag    //与自己创建管理的不同,在dockerhub上使用的不是ip,是username。原理可能类似于域名解析什么的吧。
        sudo docker push coderlzh/ubuntu:19.04    //上传仓库
        


      • 从账户仓库下载镜像

  • 相关阅读:
    [Swift]LeetCode823. 带因子的二叉树 | Binary Trees With Factors
    [Swift]LeetCode822. 翻转卡片游戏 | Card Flipping Game
    [Swift]LeetCode821. 字符的最短距离 | Shortest Distance to a Character
    [Swift]LeetCode818. 赛车 | Race Car
    [Swift]LeetCode817. 链表组件 | Linked List Components
    [Swift]LeetCode816. 模糊坐标 | Ambiguous Coordinates
    [Swift]LeetCode815. 公交路线 | Bus Routes
    [Swift]LeetCode814. 二叉树剪枝 | Binary Tree Pruning
    [Objective-C语言教程]指针(15)
    转 : net use的使用
  • 原文地址:https://www.cnblogs.com/fzu-lzh/p/12704625.html
Copyright © 2020-2023  润新知