适用于具有Couchbase和WildFly的多容器和多主机应用程序的Docker Machine,Swarm和Compose...

该博客将说明如何使用Docker创建部署在多个主机上的多容器应用程序。 这将使用Docker Machine,Swarm和Compose实现。

是的,所有这三个工具一起使此博客更加有趣!

docker-swarm-machine-compose-1024x763

该图说明了关键组件:

  • Docker Machine用于配置多个Docker主机
  • Docker Swarm将用于创建多主机集群
  • 使用Consul注册/发现Docker Swarm集群中的每个节点
  • 多容器应用程序将使用Docker Compose进行部署
  • WildFly和Couchbase在不同的主机上配置
  • Docker多主机网络用于WildFly和Couchbase进行通信

此外,Maven用于配置Couchbase并将应用程序部署到WildFly。

  • Docker上针对Java开发人员的最新说明。

没有故事,只有纯代码,就去做吧!

使用Docker Machine创建发现服务

  1. 创建将托管发现服务的计算机:
    docker-machine create -d=virtualbox consul-machine
    Running pre-create checks...
    Creating machine...
    Waiting for machine to be running, this may take a few minutes...
    Machine is running, waiting for SSH to be available...
    Detecting operating system of created instance...
    Provisioning created instance...
    Copying certs to the local machine directory...
    Copying certs to the remote machine...
    Setting Docker configuration on the remote daemon...
    To see how to connect Docker to this machine, run: docker-machine env consul-machine
  2. 连接到此机器:
    eval $(docker-machine env consul-machine)
  3. 使用以下Compose文件运行Consul服务:
    myconsul:image: progrium/consulrestart: alwayshostname: consulports:- 8500:8500command: "-server -bootstrap"

    可在https://github.com/arun-gupta/docker-images/blob/master/consul/docker-compose.yml上找到此Compose文件。

    docker-compose up -d
    Pulling myconsul (progrium/consul:latest)...
    latest: Pulling from progrium/consul
    3b4d28ce80e4: Pull complete
    e5ab901dcf2d: Pull complete
    30ad296c0ea0: Pull complete
    3dba40dec256: Pull complete
    f2ef4387b95e: Pull complete
    53bc8dcc4791: Pull complete
    75ed0b50ba1d: Pull complete
    17c3a7ed5521: Pull complete
    8aca9e0ecf68: Pull complete
    4d1828359d36: Pull complete
    46ed7df7f742: Pull complete
    b5e8ce623ef8: Pull complete
    049dca6ef253: Pull complete
    bdb608bc4555: Pull complete
    8b3d489cfb73: Pull complete
    c74500bbce24: Pull complete
    9f3e605442f6: Pull complete
    d9125e9e799b: Pull complete
    Digest: sha256:8cc8023462905929df9a79ff67ee435a36848ce7a10f18d6d0faba9306b97274
    Status: Downloaded newer image for progrium/consul:latest
    Creating consul_myconsul_1

    启动的容器可以验证为:

    docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                            NAMES
    f05d8dd11e7f        progrium/consul     "/bin/start -server -"   30 seconds ago      Up 29 seconds       53/tcp, 53/udp, 8300-8302/tcp, 8400/tcp, 0.0.0.0:8500->8500/tcp, 8301-8302/udp   consul_myconsul_1

使用Docker Machine创建Docker Swarm集群

Swarm与Machine完全集成在一起,因此是最简单的入门方法。

  1. 创建一个Swarm Master并指向Consul发现服务:
    docker-machine create -d virtualbox --virtualbox-disk-size "5000" --swarm --swarm-master --swarm-discovery="consul://$(docker-machine ip consul-machine):8500" --engine-opt="cluster-store=consul://$(docker-machine ip consul-machine):8500" --engine-opt="cluster-advertise=eth1:2376" swarm-master
    Running pre-create checks...
    Creating machine...
    Waiting for machine to be running, this may take a few minutes...
    Machine is running, waiting for SSH to be available...
    Detecting operating system of created instance...
    Provisioning created instance...
    Copying certs to the local machine directory...
    Copying certs to the remote machine...
    Setting Docker configuration on the remote daemon...
    Configuring swarm...
    To see how to connect Docker to this machine, run: docker-machine env swarm-master

    很少有选择看这里:

    1. --swarm使用Swarm配置机器
    2. --swarm-master将创建的Machine配置为Swarm master
    3. --swarm-discovery定义发现服务的地址
    4. --cluster-advertise在网络上播发计算机
    5. --cluster-store指定集群的分布式k / v存储后端
    6. --virtualbox-disk-size将创建的计算机的磁盘--virtualbox-disk-size设置为5GB。 这是必需的,以便可以在任何节点上下载WildFly和Couchbase映像。
  2. 查找有关此机器的一些信息:
    docker-machine inspect --format='{{json .Driver}}'  swarm-master
    {"Boot2DockerImportVM":"","Boot2DockerURL":"","CPU":1,"DiskSize":5000,"HostOnlyCIDR":"192.168.99.1/24","HostOnlyNicType":"82540EM","HostOnlyPromiscMode":"deny","IPAddress":"192.168.99.102","MachineName":"swarm-master","Memory":1024,"NoShare":false,"SSHPort":51972,"SSHUser":"docker","StorePath":"/Users/arungupta/.docker/machine","SwarmDiscovery":"consul://192.168.99.100:8500","SwarmHost":"tcp://0.0.0.0:3376","SwarmMaster":true,"VBoxManager":{}}

    请注意,磁盘大小为5GB。

  3. 使用以下命令连接到主服务器:
    eval "$(docker-machine env --swarm swarm-master)"
  4. 查找有关集群的一些信息:
    docker info
    Containers: 2
    Images: 1
    Role: primary
    Strategy: spread
    Filters: health, port, dependency, affinity, constraint
    Nodes: 1swarm-master: 192.168.99.102:2376└ Containers: 2└ Reserved CPUs: 0 / 1└ Reserved Memory: 0 B / 1.021 GiB└ Labels: executiondriver=native-0.2, kernelversion=4.1.13-boot2docker, operatingsystem=Boot2Docker 1.9.1 (TCL 6.4.1); master : cef800b - Fri Nov 20 19:33:59 UTC 2015, provider=virtualbox, storagedriver=aufs
    CPUs: 1
    Total Memory: 1.021 GiB
    Name: d074fd97682e
  5. 创建一个新计算机以加入该集群:
    docker-machine create -d virtualbox --virtualbox-disk-size "5000" --swarm --swarm-discovery="consul://$(docker-machine ip consul-machine):8500" --engine-opt="cluster-store=consul://$(docker-machine ip consul-machine):8500" --engine-opt="cluster-advertise=eth1:2376" swarm-node-01
    Running pre-create checks...
    Creating machine...
    Waiting for machine to be running, this may take a few minutes...
    Machine is running, waiting for SSH to be available...
    Detecting operating system of created instance...
    Provisioning created instance...
    Copying certs to the local machine directory...
    Copying certs to the remote machine...
    Setting Docker configuration on the remote daemon...
    Configuring swarm...
    To see how to connect Docker to this machine, run: docker-machine env swarm-node-01

    请注意,此命令中未指定--swarm-master 。 这样可以确保创建的计算机是工作程序节点。

  6. 创建第二个Swarm节点以加入该集群:
    docker-machine create -d virtualbox --virtualbox-disk-size "5000" --swarm --swarm-discovery="consul://$(docker-machine ip consul-machine):8500" --engine-opt="cluster-store=consul://$(docker-machine ip consul-machine):8500" --engine-opt="cluster-advertise=eth1:2376" swarm-node-02
    Running pre-create checks...
    Creating machine...
    Waiting for machine to be running, this may take a few minutes...
    Machine is running, waiting for SSH to be available...
    Detecting operating system of created instance...
    Provisioning created instance...
    Copying certs to the local machine directory...
    Copying certs to the remote machine...
    Setting Docker configuration on the remote daemon...
    Configuring swarm...
    To see how to connect Docker to this machine, run: docker-machine env swarm-node-02
  7. 列出所有创建的计算机:
    docker-machine ls
    NAME             ACTIVE   DRIVER       STATE     URL                         SWARM
    consul-machine   -        virtualbox   Running   tcp://192.168.99.100:2376
    swarm-master     *        virtualbox   Running   tcp://192.168.99.101:2376   swarm-master (master)
    swarm-node-01    -        virtualbox   Running   tcp://192.168.99.102:2376   swarm-master
    swarm-node-02    -        virtualbox   Running   tcp://192.168.99.103:2376   swarm-master

    属于群集的计算机在“群集”列中具有群集的名称,否则为空白。 例如, consul-machine是一台独立的机器,其他所有机器都是swarm-master集群的一部分。 Swarm主机也由SWARM列中的(主机)标识。

  8. 连接到Swarm集群并找到有关它的一些信息:
    eval "$(docker-machine env --swarm swarm-master)"
    docker info

    注意,指定--swarm连接到Swarm集群。 否则,该命令将仅连接到swarm-master计算机。

    输出显示为:

    docker info
    Containers: 4
    Images: 3
    Role: primary
    Strategy: spread
    Filters: health, port, dependency, affinity, constraint
    Nodes: 3swarm-master: 192.168.99.102:2376└ Containers: 2└ Reserved CPUs: 0 / 1└ Reserved Memory: 0 B / 1.021 GiB└ Labels: executiondriver=native-0.2, kernelversion=4.1.13-boot2docker, operatingsystem=Boot2Docker 1.9.1 (TCL 6.4.1); master : cef800b - Fri Nov 20 19:33:59 UTC 2015, provider=virtualbox, storagedriver=aufsswarm-node-01: 192.168.99.103:2376└ Containers: 1└ Reserved CPUs: 0 / 1└ Reserved Memory: 0 B / 1.021 GiB└ Labels: executiondriver=native-0.2, kernelversion=4.1.13-boot2docker, operatingsystem=Boot2Docker 1.9.1 (TCL 6.4.1); master : cef800b - Fri Nov 20 19:33:59 UTC 2015, provider=virtualbox, storagedriver=aufsswarm-node-02: 192.168.99.104:2376└ Containers: 1└ Reserved CPUs: 0 / 1└ Reserved Memory: 0 B / 1.021 GiB└ Labels: executiondriver=native-0.2, kernelversion=4.1.13-boot2docker, operatingsystem=Boot2Docker 1.9.1 (TCL 6.4.1); master : cef800b - Fri Nov 20 19:33:59 UTC 2015, provider=virtualbox, storagedriver=aufs
    CPUs: 3
    Total Memory: 3.064 GiB
    Name: d074fd97682e

    有3个节点-一个Swarm主节点和2个Swarm 工作节点。 此群集中总共有4个容器在运行–主节点和每个节点上有一个Swarm代理,主节点上还有一个额外的swarm-agent-master。 可以通过连接到主数据库并列出所有容器来验证这一点。

  9. 使用以下命令列出集群中的节点:
    docker run swarm list consul://$(docker-machine ip consul-machine):8500
    192.168.99.102:2376
    192.168.99.103:2376
    192.168.99.104:2376

使用Docker Compose启动应用程序环境

通过提供命令eval "$(docker-machine env --swarm swarm-master)"确保连接到集群。

  1. 列出到目前为止Docker创建的所有网络:
    docker network ls
    NETWORK ID          NAME                   DRIVER
    33a619ddc5d2        swarm-node-02/bridge   bridge
    e0b73c96ffec        swarm-node-02/none     null
    b315e67f0363        swarm-node-02/host     host
    879d6167be47        swarm-master/bridge    bridge
    f771ddc7d957        swarm-node-01/none     null
    e042754df336        swarm-node-01/host     host
    d2f3b512f9dc        swarm-node-01/bridge   bridge
    5b5bcf135d7b        swarm-master/none      null
    fffc34eae907        swarm-master/host      host

    Docker为每个主机自动创建三个网络:

    网络名字 目的
    bridge 容器连接的默认网络。 在所有Docker安装中,这是docker0网络。
    none 特定于容器的网络堆栈
    host 在主机网络堆栈上添加一个容器。 网络配置与主机相同。


    这说明了九个网络,每个节点三个,如该Swarm集群所示。

  2. 使用Compose文件启动WildFly和Couchbase:
    mycouchbase:container_name: "db"image: couchbase/serverports:- 8091:8091- 8092:8092- 8093:8093- 11210:11210
    mywildfly:image: arungupta/wildfly-adminenvironment:- COUCHBASE_URI=dbports:- 8080:8080- 9990:9990

    在此撰写文件中:

    1. Couchbase服务具有由container_name定义的自定义容器名称。 在WildFly启动期间创建新的环境变量COUCHBASE_URI时使用此名称。
    2. arungupta/wildfly-admin映像是因为它将WildFly的管理绑定到所有网络接口,此外还公开了端口9990。这使WildFly Maven插件可用于部署应用程序。此文件的源位于https://github.com/github .com / arun-gupta / docker-images / blob / master / wildfly-couchbase-javaee7 / docker-compose.yml 。

    此应用程序环境可以通过以下方式启动:

    docker-compose --x-networking up -d
    Creating network "wildflycouchbasejavaee7" with driver "None"
    Pulling mywildfly (arungupta/wildfly-admin:latest)...
    swarm-node-02: Pulling arungupta/wildfly-admin:latest... : downloaded
    swarm-master: Pulling arungupta/wildfly-admin:latest... : downloaded
    swarm-node-01: Pulling arungupta/wildfly-admin:latest... : downloaded
    Creating wildflycouchbasejavaee7_mywildfly_1
    Pulling mycouchbase (couchbase/server:latest)...
    swarm-node-02: Pulling couchbase/server:latest... : downloaded
    swarm-master: Pulling couchbase/server:latest... : downloaded
    swarm-node-01: Pulling couchbase/server:latest... : downloaded
    Creating db

    --x-networking为Swarm集群创建一个覆盖网络。 可以通过再次列出网络来验证:

    docker network ls
    NETWORK ID          NAME                            DRIVER
    5e93fc34b4d9        swarm-node-01/docker_gwbridge   bridge
    1c041242f51d        wildflycouchbasejavaee7         overlay
    cc8697c6ce13        swarm-master/docker_gwbridge    bridge
    f771ddc7d957        swarm-node-01/none              null
    879d6167be47        swarm-master/bridge             bridge
    5b5bcf135d7b        swarm-master/none               null
    fffc34eae907        swarm-master/host               host
    e042754df336        swarm-node-01/host              host
    d2f3b512f9dc        swarm-node-01/bridge            bridge
    33a619ddc5d2        swarm-node-02/bridge            bridge
    e0b73c96ffec        swarm-node-02/none              null
    b315e67f0363        swarm-node-02/host              host

    创建了三个新的网络:

    1. 连接到多主机网络的容器会自动连接到docker_gwbridge网络。 该网络允许容器在其群集之外具有外部连接,并在每个工作节点上创建。
    2. 创建了一个新的覆盖网络wildflycouchbasejavaee7 。 连接到不同的Swarm节点并检查其上是否存在覆盖网络。让我们以master开头:
      eval "$(docker-machine env swarm-master)"
      docker network ls
      NETWORK ID          NAME                      DRIVER
      1c041242f51d        wildflycouchbasejavaee7   overlay
      879d6167be47        bridge                    bridge
      5b5bcf135d7b        none                      null
      fffc34eae907        host                      host
      cc8697c6ce13        docker_gwbridge           bridge

      接下来,使用swarm-node-01

      eval "$(docker-machine env swarm-node-01)"
      docker network ls
      NETWORK ID          NAME                      DRIVER
      1c041242f51d        wildflycouchbasejavaee7   overlay
      d2f3b512f9dc        bridge                    bridge
      f771ddc7d957        none                      null
      e042754df336        host                      host
      5e93fc34b4d9        docker_gwbridge           bridge

      最后,使用swarm-node-02

      eval "$(docker-machine env swarm-node-02)"
      docker network ls
      NETWORK ID          NAME                      DRIVER
      1c041242f51d        wildflycouchbasejavaee7   overlay
      e0b73c96ffec        none                      null
      b315e67f0363        host                      host
      33a619ddc5d2        bridge                    bridge

      如图所示, wildflycouchbasejavaee7覆盖网络存在于所有计算机上。 这确认为Swarm群集创建的覆盖网络已添加到群集中的每个主机。 docker_gwbridge仅在运行应用程序容器的机器上存在。

      阅读有关Docker Networks的更多信息。

  3. 验证WildFly和Couchbase是否正在运行:
    docker ps
    CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS              PORTS                                                                                                             NAMES
    23a581295a2b        couchbase/server          "/entrypoint.sh couch"   9 seconds ago       Up 8 seconds        192.168.99.102:8091-8093->8091-8093/tcp, 11207/tcp, 11211/tcp, 192.168.99.102:11210->11210/tcp, 18091-18092/tcp   swarm-master/db
    7a8a885b23f3        arungupta/wildfly-admin   "/opt/jboss/wildfly/b"   9 seconds ago       Up 8 seconds        192.168.99.103:8080->8080/tcp, 192.168.99.103:9990->9990/tcp                                                      swarm-node-01/wildflycouchbasejavaee7_mywildfly_1

配置应用程序和数据库

  1. 克隆https://github.com/arun-gupta/couchbase-javaee.git 该工作空间包含一个简单的Java EE应用程序,该应用程序部署在WildFly上,并通过Couchbase中的travel-sample存储桶提供REST API。
  2. 可以使用REST API配置Couchbase服务器。 该应用程序包含一个Maven配置文件,该配置文件允许使用travel-sample存储桶配置Couchbase服务器。 可以通过以下方式调用:
    mvn install -Pcouchbase -Ddocker.host=$(docker-machine ip swarm-master). . .* Server auth using Basic with user 'Administrator'
    > POST /sampleBuckets/install HTTP/1.1
    > Authorization: Basic QWRtaW5pc3RyYXRvcjpwYXNzd29yZA==. . .} [data not shown]
    * upload completely sent off: 17 out of 17 bytes
    < HTTP/1.1 202 Accepted
    * Server Couchbase Server is not blacklisted
    < Server: Couchbase Server. . .
  3. 通过指定三个参数将应用程序部署到WildFly:
    1. 运行WildFly的主机IP地址
    2. WildFly管理领域中用户的用户名
    3. WildFly管理领域中指定的用户密码
    mvn install -Pwildfly -Dwildfly.hostname=$(docker-machine ip swarm-node-01) -Dwildfly.username=admin -Dwildfly.password=Admin#007. . .Nov 29, 2015 12:11:14 AM org.xnio.Xnio <clinit>
    INFO: XNIO version 3.3.1.Final
    Nov 29, 2015 12:11:14 AM org.xnio.nio.NioXnio <clinit>
    INFO: XNIO NIO Implementation Version 3.3.1.Final
    Nov 29, 2015 12:11:15 AM org.jboss.remoting3.EndpointImpl <clinit>
    INFO: JBoss Remoting version 4.0.9.Final
    [INFO] Authenticating against security realm: ManagementRealm
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------. . .

访问应用

既然WildFly和Couchbase服务器已经启动,就可以访问该应用程序。 您需要指定运行WildFly的计算机的IP地址:

curl http://$(docker-machine ip swarm-node-01):8080/couchbase-javaee/resources/airline
[{"travel-sample":{"id":10123,"iata":"TQ","icao":"TXW","name":"Texas Wings","callsign":"TXW","type":"airline","country":"United States"}}, {"travel-sample":{"id":10642,"iata":null,"icao":"JRB","name":"Jc royal.britannica","callsign":null,"type":"airline","country":"United Kingdom"}}, {"travel-sample":{"id":112,"iata":"5W","icao":"AEU","name":"Astraeus","callsign":"FLYSTAR","type":"airline","country":"United Kingdom"}}, {"travel-sample":{"id":1355,"iata":"BA","icao":"BAW","name":"British Airways","callsign":"SPEEDBIRD","type":"airline","country":"United Kingdom"}}, {"travel-sample":{"id":10765,"iata":"K5","icao":"SQH","name":"SeaPort Airlines","callsign":"SASQUATCH","type":"airline","country":"United States"}}, {"travel-sample":{"id":13633,"iata":"WQ","icao":"PQW","name":"PanAm World Airways","callsign":null,"type":"airline","country":"United States"}}, {"travel-sample":{"id":139,"iata":"SB","icao":"ACI","name":"Air Caledonie International","callsign":"AIRCALIN","type":"airline","country":"France"}}, {"travel-sample":{"id":13391,"iata":"-+","icao":"--+","name":"U.S. Air","callsign":null,"type":"airline","country":"United States"}}, {"travel-sample":{"id":1191,"iata":"UU","icao":"REU","name":"Air Austral","callsign":"REUNION","type":"airline","country":"France"}}, {"travel-sample":{"id":1316,"iata":"FL","icao":"TRS","name":"AirTran Airways","callsign":"CITRUS","type":"airline","country":"United States"}}]
  • github.com/arun-gupta/couchbase-javaee中记录了此应用程序的完整REST API 集合 。
    • Docker上针对Java开发人员的最新说明。

      请享用!

翻译自: https://www.javacodegeeks.com/2015/12/docker-machine-swarm-compose-multi-container-multi-host-applications-couchbase-wildfly.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/355911.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一键复制android代码,兼容安卓和ios实现一键复制内容到剪切板

js兼容安卓和ios实现粘贴板一键复制color: #000;background: #fff;overflow-y: scroll;-webkit-text-size-adjust: 100%;-ms-text-size-adjust: 100%;}html*{outline:0;-webkit-text-size-adjust: none;-webkit-tap-highlight-color: transparent}*{margin:0;padding:0}.conten…

adf时间作用域_ADF:在任务流终结器中支持bean作用域

adf时间作用域介绍 当我们需要在任务流消失之前做一些最终工作&#xff08;干净的资源&#xff0c;紧密的连接等&#xff09;时&#xff0c;这是使用任务流终结器的非常普遍的建议做法。 和往常一样&#xff0c;我们使用在任务流中声明的托管bean。 托管Bean可以具有不同的范围…

Drools:fireAllRules,fireUntilHalt和Timers内部代码清理的详细说明

在六月&#xff0c;我们在博客上发布了一个新的内部状态机&#xff0c;用于管理用户&#xff0c;计时器和引擎线程之间的交互。 现在&#xff0c;我们对该代码进行了另一次大的内部清理&#xff0c;以使其更易于阅读和理解。 如前所述&#xff0c;所有操作&#xff08;插入&am…

nodejs+vue+ElementUi房屋房产销售预约看房系统bqv00

完成房产销售系统&#xff0c;对房源的信息、用户信息及各种资料进行收集和科学的管理&#xff0c;该系统的功能基本可以满足当前市面上的小型房产企业对于房产销售的基本要求&#xff0c;收集各个地区的房源信息并进行分类管理&#xff0c;用户通过注册账号登录网站查询房源信…

ios framework 找不到.h_找不到好看的壁纸?上万张「高清壁纸」,都在iOS捷径里...

所需工具&#xff1a;iOS捷径获取方法&#xff1a;后台私信回复「363」不和大家废话&#xff0c;今天给大家分享一个超好用的ios壁纸捷径&#xff0c;用了它之后再也不怕找不到喜欢的壁纸了~将克拉壁纸的捷径链接在Safari浏览器打开&#xff0c;就会自动跳转到一个获取捷径的窗…

div内容用html语言写,html – 使用DIV作为另一个元素的背景

这里我用2个div做了一个例子&#xff1a;> .content,包含前端所需的一切> .background – 包含文本,图像和背景中的所有其他内容要将一个div包装在另一个div上(制作叠加层),你必须将它们放入相同的元素中,在本例中它是#wrapper div.放置位置&#xff1a;包装的相对宽度/高…

jetty 配置jndi_使用Jetty设置JNDI(嵌入式)

jetty 配置jndi我在开发工作区上运行嵌入式Jetty&#xff0c;从而节省了一些恶性的编译和部署周期。 我与Jetty的合作不多&#xff0c;易用性使我着迷于它。 我需要设置JNDI才能检索与数据库相关的活动的连接池。 尽管某些地方有完整的文档&#xff0c;但大多数都是分散的。 因…

auot lisp 选择集处理_离散量的计算机处理63_1Cv6

计算机语言运用--数值计算6-离散量的计算机处理63_1Cv6计算机&#xff1a;电子线路组成的计算机器。人与计算机则是通过计算机语言-符号系统说给计算机听而交流。计算机语言有低级语言-机器语言、汇编、高级语言-C/C/C#/VB/PASCAL/LISP/JAVA/PYTHON/……成百上千种之多。作为一…

linkedblockingqueue 后 take 不消化_消化不良的成因及护理

疾病名称&#xff1a;消化不良就诊科室&#xff1a;消化内科疾病成因心理和精神的不良应激&#xff1a;患者的精神不愉快、长期闷闷不乐或突然受到猛烈的刺激等均可引起。不良饮食习惯&#xff1a;包括刺激性食物&#xff08;咖啡、浓茶、甜食、油腻、生冷等&#xff09;和不良…

Yandex.Algorithm 2011 Round 2 D. Powerful array 莫队

题目链接&#xff1a;点击传送D. Powerful arraytime limit per test5 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputAn array of positive integers a1, a2, ..., an is given. Let us consider its arbitrary subarray al, al  …

html 形状div,div+css实现各种形状(精心整理)

1.正方形.div {width: 100px;height: 100px;background: red;}2.矩形.div {width: 200px;height: 100px;background: red;}3.圆形.div {width: 100px;height: 100px;background: red;-moz-border-radius: 50px;-webkit-border-radius: 50px;border-radius: 50px;}4.椭圆.div {w…

4.1.5事件

用事件有一种监听的思想 一个事件对应一个委托 事件是委托类型 一个事件对应一个委托&#xff0c;委托可以对应多个方法 如气球爆炸了 气球的反应 小孩的反应 事件源有代码自动激发事件 扔出事件 —————————————— 3.只能在类的内部触发事件 4.可以在内部…

485不用双绞线可以吗_现在在上海,挡风玻璃可以一个标志都不用贴吗?

问近日&#xff0c;有市民咨询&#xff1a;现在在上海&#xff0c;车上挡风玻璃可以一个标志都不用贴吗&#xff1f;答可以一个标志都不贴。自2020年3月1日起&#xff0c;本市机动车在本市办理注册、变更、转移登记和核发检验标志、补换检验标志业务时&#xff0c;将自动生成检…

2021上饶市高考中考成绩查询,2021年上饶中考成绩公布查询时间 上饶中考成绩查询方式入口...

2018年上饶中考成绩公布查询时间 上饶中考成绩查询方式入口2018年上饶高考结束了&#xff0c;可是上饶中考又来了!6月注定是一个不平淡的月份。又一大批孩子朝着青春出发踏着坚定的脚步&#xff0c;行走在如火的六月。宁静的清晨&#xff0c;静谧的夜&#xff0c;那条反反复复走…

git中文件的三种状态

用xcode的时候&#xff0c;左侧栏文件的邮右边时不时会看到M&#xff0c;A这一类的字母。当然&#xff0c;这些以后再写上。先说一下git里文件的三种状态 已提交&#xff08;committed&#xff09; 已经提交的本地仓库&#xff08;repository&#xff09;&#xff0c;需要手动…

桌面怎么设置 计算机 网络,Win10 10130桌面电脑网络图标怎么设置?

越来越多朋友的计算机安装Windows10系统&#xff0c;现在Windows10系统已经升级到10130版&#xff0c;我的计算机升级到了10130版。安装Windows10的10130版系统后&#xff0c;桌面只有回收站和软媒的图标&#xff0c;如何把电脑、网络、用户的文件、控制面板等图标设置到桌面上…

swift 打开第三方应用_iOS卡通人物帧动画入门9(大结局):番外篇-扩展第三方类

扩展第三方类细心的朋友可能会发现&#xff0c;我们前面计算主角的大小用的总是同一方向第一帧纹理的大小&#xff0c;如果纹理大小有出入的话&#xff0c;会产生较大的偏差&#xff0c;最好的方法是取当前动画帧纹理的大小。不过这有些难度&#xff0c;所以我们退之求其次&…

vue如何过滤html标签,去除富文本中的html标签及vue、react、微信小顺序中的过滤器...

在猎取富文本后&#xff0c;又只需显现部分内容&#xff0c;须要去除富文本标签&#xff0c;然后再截取个中一部分内容&#xff1b;然后就是过滤器&#xff0c;在微信小顺序中运用照样挺屡次的&#xff0c;在vue及react中也遇到过1.富文本去除html标签去除html标签及 空格let r…

声速的测量的实验原理和应用_CEMS烟气在线分析仪测量原理计经典应用

烟气连续在线监测系统运用抽取冷凝采样、后散射烟尘浓度测量、皮托管烟气流速测量及计算机网络通讯技术&#xff0c;实现了固定污染源污染物排放浓度和排放总量的在线连续监测。同时又针对国内煤种较杂、煤质变化大、污染物排放浓度高、烟气湿度大的状况从技术上进行了改进。并…

怎么用计算机算弧度制,怎么设置计算器 把度数转化为弧度

计算器默认角度制(D)。此时&#xff0c;按下mode&#xff0c;mode&#xff0c;2(Rad)&#xff0c;可将计算器调整为弧度制。输入要转化的角度(如30)&#xff0c;按下shift&#xff0c;ans(DRG三角)&#xff0c;1(D)&#xff0c;画面将显示30度&#xff0c;按下等号&#xff0c;…