简单了解Docker、Dubbo

2023-11-02

简单了解Docker、Dubbo

以Docker为例的容器

Docker是什么


  1. 主要体现在1.隔离2.开销小。
  2. Docker的组件有哪些。Docker Client用来管理本地或远程的服务器,Docker Daemon是安装完Docker之后就有的一个本地守护线程,接收Docker Client发来的指令,并对服务器做具体的操作。Docker Image就是Docker的镜像,Docker Container就是装在images的容器。Docker Registry是Docker的仓库,类似于github的仓库,可以上传分享自己的image。

Docker的原理

  1. 传统虚拟机的解决方案。Hypervisor(虚拟机监视器),VM在物理机器的操作系统上建立一个中间软件层Hypervisor,Hypervisor利用物理机器的资源,虚拟出多个新虚拟的硬件环境,这些硬件环境可以共享宿主机的资源。
  2. Docker怎么做。Docker利用linux的技术,不去虚拟化任何硬件,而是让硬件资源在不同的docker container之间做隔离。隔离使得每个docker container之间拥有了不同的环境(磁盘空间、网络、系统的工具包),并且共享需要的硬件资源(CPU、内存、系统内核)。
  3. Docker的Linux核心如下
    • AUFS 用来建立不同的操作系统和隔离运行的硬盘空间
    • Namespace 用来隔离container的执行空间
    • Cgroup 分配不同的硬件资源
    • SELinux 用来保护linux的网络安全
    • Netlink 让不同的container之间的进程保持通信
    • Netfilter 建立contianer为基础的网络防火墙分包过滤
    • AppArmor 保护container的网络及执行安全
    • Linux Bridge 让不同的container或不同主机上的container能够连通
  4. AUFS:Another Union File System,联合文件系统。AUFS可以让多个文件union成一个新的目录,并且对这个新的目录进行读写操作。uniton a b,那么a具有可读写权限,b具有只读权限,所有对b中文件的写操作,都会在a中新建一个文件夹然后做对应的改变。

    在Docker中,image是分层的,而且要实现一个image能在不同container中运行的要求,因此用AUFS技术让image和不同的container目录进行union,此时只有最上层的container是rw的,image是只读的,因此无论在container1中如何修改,都不会改变container2中的数据,因为底层的image都是只读的。
  5. Namespace. 对资源进行隔离,包括进程ID、主机名、用户ID、网络访问、进程间通讯和文件系统。
  6. Cgroup. 对资源进行限制。必入限制某个资源组只能用CPU的20%之类的。

以Dubbo为例的RPC调用框架

如何理解REST、RPC

  1. REST叫表现层状态转移,这个词我原来没办法理解,现在理解了,顿觉茅塞顿开啊。表现层表述资源,状态转移表示从一个节点到另一个节点,所以REST就是以HTTP的API和某些约定,使得资源从A服务到B服务,而RPC是远程进程调用,是在本机上调用远程机器上的进程。这两者本质上都是A远程调用B。
  2. REST是来自HTTP的,因此是无状态的,请求之间没有持久的会话信息,一致性要通过HTTP的特性保证。RPC一般传递的是JSON数据,可以理解成跨语言跨平台的服务调用。相对于REST,RPC通常使用url作为方法名,用HTTP的query string或body表示方法想调用的参数,比如下面这个:

Dubbo是什么

  1. Dubbo的官方说要解决什么?
  2. 简单的电商架构如下图:

    当服务越来越多之后,服务之间的依赖关系更加复杂,管理URL配置等变得非常困难(服务发现),还要统计服务的调用量用于后续分析(服务治理)。此时就要用到dubbo,dubbo的RPC是手段,目的就是服务发现和服务治理。
  3. dubbo的架构包括provider服务提供方,consumer服务消费者,registry注册中心,monitor监控中心。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

简单了解Docker、Dubbo 的相关文章

  • Java中的的类和对象

    类的概念 类是对生活中具有相同属性和行为的事物的抽象 它是一个大概的范围 类包含属性和行为 属性和行为在程序中也叫做成员变量和成员方法 对象的概念 是能够看得到的具备行为和属性的真实存在的实体 类和对象的关系 类是对象的抽象的范围表达 对象
  • 重写equals方法

    重写equals方法 相信在每个人都有过重写过java的equals的方法的经历 这篇博文就从以下几个方面说明重写equals方法的原由 与君共进步 一 为什么要重写equals方法 首先我们了解equals方法的作用是什么 java的官方
  • Java学习笔记(十八)

    Spring Boot 什么是 Spring Boot Spring Boot 已经建立在现有 spring 框架之上 使用 spring 启动 避免了之前我们必须做的所有样板代码和配置 因此 SpringBoot 可以帮助我们以最少的工作
  • SpringBoot集成redis

    一 下载安装redis 1 官网地址 https redis io 2 GitHub地址 https github com MicrosoftArchive redis tags 3 安装 自行安装 二 SpringBoot集成redis
  • 关于String的hashcode,以及判断字符串是否相等的解析

    跟着老师的方法验证equals方法的重写 由于误写发现运行结果和预想的不一样 先上代码 package com wuyw oo import java util Objects author wuyw2020 date 2019 10 28
  • Java中的栈区和堆区问题(关于数组)

    Java中创建的局部变量等是存放在栈区的 而数组是存放在堆区的 那些new出来的对象也大多存放于堆区 栈区的空间往往不大 而堆区空间就会大很多 这里我们创建一个数组 如果在idea中打印a 会得到一串符号 这个是数组在堆区首元素的地址 代表
  • JVM各垃圾回收器优缺点及应用场景

    目录 为什么需要使用垃圾收集器 JVM各垃圾收集器特点 1 Serial收集器 2 ParNew收集器 3 Parallel Scavenge收集器 4 Serial Old收集器 5 Parallel Old收集器 6 Serial Se
  • HashMap的使用

    put方法 Hashmap的put方法放值 可以单次向HashMap中添加一个键值对 没有顺序 HashMap
  • java中的基本数据类型和引用数据类型以及它们的存储方式堆内存和栈内存

    一直对java中的基本数据类型和引用数据类型之间的关系搞不太清楚 今天做leetcode的一道题目 总算弄清楚了关系 写下来和大家一起分享一下 一 基本数据类型 数据类型在计算机语言里面 是对内存位置的一个抽象表达方式 可以理解为针对内存的
  • JAVASE总复习

    一 填空题 共 20 个题目 总计 20 分 1 Java application 中的主类需要包含 main 方法 main 方法的返回类型是void 2 移位运算符可以起到对操作数乘以 2 或者除以 2 的作用 那么操作数除以 2 的移
  • Java基本类型所占存储空间大小

    基本类型 大小 最小值 最大值 包装器类型 boolean Boolean char 两个字节 Unicode 0 Unicode 2 16 1 Character byte 一个字节 128 127 Byte short 两个字节 2 1
  • Java练习代码(五)- 线程

    package Java2021 4 8 import sun util resources ms CalendarData ms MY Create with IntelliJ IDEA Description Auther HMW Da
  • 倒序打印一个单链表

    public class SingleLinkList private static LinkListNode root public static LinkListNode initSingleLinkList LinkListNode
  • Java JDBC连接数据库 查询SELECT

    package com edu import java sql public class jdbctest public static void main String args throws SQLException ClassNotFo
  • JAVA中的权限限定修饰符

    今日份鼓励 改变世界的根本是在改变自己 目录 一 访问权限修饰符 二 public修饰符 三 protected修饰符 四 不使用修饰符 默认修饰符 五 private修饰符 六 类的访问修饰符不使用private与protected的原因
  • 作为 Java初学者,刚学完JavaSE,有什么可以做的项目吗

    文章目录 一 基于面向对象开发的黑框程序 1 1 开发工具 1 2 至少掌握这些 1 3 推荐做的项目 二 Java SE 桌面窗体小程序 基本可以忽略 三 Java SE 高级应用 四 下节预告 Author Gorit Date 202
  • IDEA2021中VUE代码爆红解决方案

    1 在IDEA中安装vue js插件 找到vue js安装即可 之后点击apply gt OK 2 安装完成后打开cmd 输入npm v npm命令集成在node js里面 如果这条命令失败则前往node js进行相关的安装 3 爆红的主要
  • mysql(8.0.27)本地启动没有问题,远程无法连接解决方案+开启远程连接+问题排查路径

    目录标题 mysql安装 现象 错误排查 mysql安装 mysql8 0 27 免安装教程连接 安装教程连接 现象 1 mysql本地启动正常 C Users youc gt mysql u root p Enter password W
  • 如何遍历一个栈而且保持原栈不动

    用Iterator public static void printStack Stack
  • 1005. K 次取反后最大化的数组和 && 增强for循环(foreach循环)遍历数组

    1005 K 次取反后最大化的数组和 原题链接 完成情况 解题思路 参考代码 1005K次取反后最大化的数组和 1005K次取反后最大化的数组和 简洁写法 错误经验吸取 增强for循环 foreach循环 遍历数

随机推荐

  • VMware虚拟机实用经验总结大全

    1 VMware虚拟机实用经验之支持的Guest OS VMWare支持如下Guest OS MS DOS Win3 1 Win9x Me WinNT Win2000 WinXP Win Net Linux FreeBSD NetWare6
  • Vue学习之起步——浅谈文件系统

    学习前谈 大家都知道 Vue是一个比较火的前端框架 作为一个开发者 我们虽然没必要深究其底层原理 但是 它的 文件系统 执行脉络我们还是得梳理清楚的 首先 Vue启动时会进入 main js 即 main js 是入口文件 import V
  • c语言if语句习题,C语言练习

    C语言练习 D 算法只能被有限的用户使用 18 有如下嵌套的if语句 以下选项中与上述if语句等价的语句是 A k aB B b gt C b C B k aD k a 19 有以下程序 程序运行后的输出结果是 A 0 B 1 C 2 D
  • (一)K8S集群部署——master节点部署

    1 集群配置 本次部署使用三台服务器 master 192 168 0 2 node1 192 168 0 4 node2 192 168 0 14 服务器配置均为 CentOS 7 6 64位 8核 16G 100G 2 master部署
  • Unity 3D 读入本地 xml 文件

    Load and Display XML Data in Unity 3D 如果你能翻墙从 youtube 上就可以看到怎么用 using UnityEngine using System Collections
  • IDM怎么设置下载会更快

    虽然IDM的下载速度已经足够彪悍 其优秀的智能动态文件分段功能和安全的分段下载技术 让大多数下载器都望尘莫及 但贪心的我们总是希望下载速度能更快 实际上 IDM也隐藏了部分功力 并可通过配置设置将隐藏的 功力 发挥出来 一般来说 Inter
  • 基于MFC对话框的Windows服务程序

    最近需求要写个服务程序 部分功能用MFC类库实现将非常方便 因此就没打算使用win32的服务程序 虽然那样对于服务很简单 首先写好mfc的对话框程序 调试什么的 功能也都完成好 这一部分和平常的mfc对话框程序没有差别 之后的服务启动后打开
  • Elasticsearch--索引备份与迁移

    Elasticsearch集群备份 以及在不同集群之间迁移数据 类似mongodb的mongodump功能 Elasticsearch也提供了备份集群中索引数据的策略 snapshot API 它会备份整个集群的当前状态和数据 并保存到集群
  • java操作rabbitmq

    JMS JMS是JavaEE规范中的一种 类比JDBC JMS即Java消息服务 JavaMessage Service 应用程序接口 是一个Java平台中关于面向消息中间件的API很多MQ产 品都实现了JMS规范 但RabbitMQ官方并
  • Rsync的配置与使用

    一 介绍 不想看直接可以跳过 Rsync 是一个远程数据同步工具 可通过 LAN WAN 快速同步多台主机间的文件 Rsync 本来是用以取代rcp 的一个工具 它当前由 rsync samba org 维护 Rsync 使用所谓的 Rsy
  • [Transformer]CSWin Transformer: A General Vision Transformer Backbone with Cross-Shaped Windows

    CSWin Transformer 基于交叉十字形窗口的视觉Transformer框架 Abstract Section I Introduction Section II Related Work Section III Method P
  • 使用数字滤波器处理音频噪声(附Matlab程序)

    本篇文章主要介绍使用窗函数法构造FIR数字滤波器 并且滤除音频文件的噪声 以下为完整的程序 修改一下文件的位置 直接复制应该就可以 1 音频文件的采集与分析 Matlab输入的音频文件需要 wav 文件 可以使用一些软件转换格式 例如酷狗音
  • C#音频采集 (笔记)

    using System using System Collections Generic using System Text using System IO using System Threading using Microsoft D
  • Effective C++第七章-模板和泛型编程之模板特化和代码膨胀

    模板特化 class A public void func1 void func2 class B public void func1 void func2 template
  • 用JS的canvas实现数字签名

    用JS的canvas实现数字签名 思路 先创建画布 鼠标按下 同时随着鼠标的移动来绘制签名 最后鼠标松开绘制结束 直接上代码啦
  • electron 1. hello world

    cnpm init y cnpm i electron D 安装electron package json name news windows version 1 0 0 description main main js scripts t
  • 爬取电影天堂

    电影天堂爬虫之网页分析 from lxml import etree import requests BASE DOMAIN http www ygdy8 net url http www ygdy8 net html gndy dyzz
  • java中的sleep()和wait()的区别

    对于sleep 方法 我们首先要知道该方法是属于Thread类中的 而wait 方法 则是属于Object类中的 sleep 方法导致了程序暂停执行指定的时间 让出cpu该其他线程 但是他的监控状态依然保持者 当指定的时间到了又会自动恢复运
  • Java中的桥接模式(Bridge Pattern)

    Java中的桥接模式 Bridge Pattern Java中的桥接模式 Bridge Pattern 是一种结构性设计模式 它将抽象部分和实现部分分离 使它们可以独立变化 同时通过桥接对象将它们连接起来 桥接模式通过将继承关系转变为对象组
  • 简单了解Docker、Dubbo

    简单了解Docker Dubbo 以Docker为例的容器 Docker是什么 Docker的原理 以Dubbo为例的RPC调用框架 如何理解REST RPC Dubbo是什么 简单了解Docker Dubbo 以Docker为例的容器 D