zoukankan      html  css  js  c++  java
  • 2017级系统综合实践 第1次实践作业

    作业链接

    (1)课程调查

    ​ 看见博客园,就有种软工二号的感觉,刺激。希望这门课能比较好的给出学习路线,不像软工,就给个作业。嗯~ o( ̄▽ ̄)o

    (2)了解微服务

    • 微服务是什么?

      微服务架构的系统是一个分布式的系统,按业务进行划分为独立的服务单元,解决单体系统的不足,同时也满足越来越复杂的业务需求。

      知乎-什么是微服务架构?

    • 微服务有什么特点?

      • 单一职责 指的是每一个微服务模块,只关心自己的业务规则。例如订单模块只关心订单的相关业务,不牵扯其他业务的逻辑。
      • 服务自治 每一个微服务模块的开发,需要有自己的开发、测试、运维、部署这一条独立的栈,并且有自己的数据库等一切,完全把其当成一个单独的项目来做,不牵扯到其它无关业务。
      • 轻量级通信 微服务的通信协议需要跨平台、跨语言的通信协议,因为微服务是不绑定技术栈的,不论使用Java、PHP还是.net去开发Web系统,它们之间的通信一定是去语言特色的。
      • 接口明确 前面提到了微服务的“接口调整成本高”,那么怎么去避免它呢?我们一开始就应该规划好微服务的模块是一种什么样的模型,尽量去避免A接口的改动会导致B接口的改动这种情况。
    • 微服务有什么优缺点?

      优点:

      • 每个服务独立百存在,所以可以单独部署,不用每次发布某个功能都经历一次全服务发布。
      • 遵循单一功能原则,服务之间可以通过RESTFUL或者RPC调用,功能解藕
      • “细粒度” 的高可扩展性,每个服务都可以单独扩展,单独负知载均衡
      • 去中心化,尽可能道地实现 “自服务”
      • 有利于简化单独的开发测试以及部署,对开发团队友好

      缺点:

      • 服务的可用性和维护性高度依赖于服版务治理,如果治理得不好将会是灾难
      • 某些服务可能造成权性能瓶颈,某些服务的宕机可能导致很多服务受影响
      • 服务配置繁琐
    • 微服务是如何部署的?

      “基于主机的多服务实例”模式是最为传统的应用程序部署方法。在该模式下,软件开发人员可以提供单个或多个物理机或虚机,同时在每个主机上运行多个服务实例。此模式有几种不同的实现形式,其中包括:将每一个服务实例都作为一个单独的进程,或是在同一进程中运行多个服务实例。

    (3)学习 docker 技术

    docker 相关概念

    • docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。个人感觉最简单的理解就是类似于虚拟机,但是又比虚拟机更轻量,消耗的资源更少
    • docker compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
    • Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
    • docker machine 是一种可以让您在虚拟主机上安装 Docker 的工具,并可以使用 docker-machine 命令来管理主机。Docker Machine 也可以集中管理所有的 docker 主机,比如快速的给 100 台服务器安装上 docker。
    • Swarm Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机。 Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。
    • k8s 是基于容器的集群管理平台,全称是kubernetes,由Google创造 知乎-10分钟看懂Docker和K8S

    搭建 docker 环境

    • 更新 apt 包索引

    • 安装 apt 依赖包,用于通过HTTPS来获取仓库:

    • 添加 Docker 的官方 GPG 密钥:

    • 验证您现在是否拥有带有指纹的密钥

    • 设置稳定版仓库

    • 更新 apt 包索引

    • 安装最新版本的 Docker Engine-Community

    • 测试 Docker 是否安装成功

    • pull ubuntu 镜像

    • 查看当前的容器

    • 使用 ubuntu 镜像创建一个名为 huaranmeng 的容器,查看镜像和容器

    • 重启容器

      输入 docker restart <容器ID>即可重启容器

    • 删除容器

      输入 docker rm -f <容器ID>即可删除容器

    • 用容器输出hello world

    • 登录账号

    • push 镜像

      docker tag <镜像id> <要推入仓库的用户名>/<要推入的仓库名>:<新定义的tag> 
      docker push <要推入仓库的用户名>/<要推入的仓库名>:<镜像标签>
      


    在docker hub 上查看结果

  • 相关阅读:
    Promise对象
    前端跨域处理
    ajax
    增删改查
    2018牛客暑假多校三 E(KMP运用)
    2018牛客暑假多校三 C (平衡树)
    2018牛客暑假多校三 A(01背包)
    HDU 6315 (2018多校第二场)(线段树)
    2018暑假牛客多校二 C(凸包)
    HDU 6299(多校第一场B)(贪心)
  • 原文地址:https://www.cnblogs.com/huaranmeng/p/12718970.html
Copyright © 2011-2022 走看看