小编sme*_*eeb的帖子

如何/何时生成Gradle包装器文件?

我试图了解Gradle Wrapper的工作原理.在许多源代码库中,我看到以下结构:

projectRoot/
    src/
    build.gradle
    gradle.properties
    settings.gradle
    gradlew
    gradlew.bat
    gradle/
        wrapper/
            gradle-wrapper.jar
            gradle-wrapper.properties
Run Code Online (Sandbox Code Playgroud)

我的问题:

  1. 如何/何时生成gradlew/ gradlew.bat?您是否应该在项目首次创建时仅生成一次,每次提交/推送更改时是否生成它们?它们是如何产生的?
  2. 同样的问题,但对于gradle/wrapper/*文件(gradle-wrapper.jargradle-wrapper.properties)?
  3. 有时我*.gradle在项目gradle目录中看到其他文件.这些额外的Gradle文件是什么?它们代表什么/做什么?自定义插件?
  4. 属性settings.gradle与内部应该定义的属性有什么不同gradle.properties

gradle gradlew build.gradle

206
推荐指数
6
解决办法
14万
查看次数

什么是Docker图像"图层"?

我是Docker的新手,我试图准确理解Docker 图像是什么.Docker镜像的每个定义都使用术语"图层",但似乎并未定义图层的含义.

从官方Docker文档:

我们已经看到Docker镜像是从中启动Docker容器的只读模板.每个图像由一系列图层组成.Docker利用联合文件系统将这些层组合成一个图像.联合文件系统允许透明地覆盖单独文件系统的文件和目录(称为分支),形成单个连贯的文件系统.

所以我问,什么是一层(确切地说); 有人能给出一些具体的例子吗?这些图层如何"拼合"形成图像?

docker

137
推荐指数
7
解决办法
5万
查看次数

Kubernetes实际上做了什么?

Kubernetes被称为容器集群"scheduler/orchestrator",但我不知道这意味着什么.在阅读了Kubernetes网站和(模糊的)GitHub wiki之后,我能说的最好的是它以某种方式确定哪些虚拟机可用/能够运行你的Docker容器,然后在那里部署它们.但这只是我的猜测,我没有在他们的文档中看到任何支持这一点的具体措辞.

那么,什么是Kubernetes,准确,并有一些什么具体的,它解决的问题?

docker kubernetes

123
推荐指数
3
解决办法
2万
查看次数

Ansible Playbooks vs Roles

根据Ansible文档,Playbook 是:

...真正简单的配置管理和多机器部署系统的基础,与已有的系统不同,非常适合部署复杂的应用程序.

而且,根据那些相同的文档,角色 是:

...基于已知文件结构自动加载某些vars_files,任务和处理程序的方法.按角色对内容进行分组还可以轻松与其他用户共享角色.

但是,这些与不同用例之间的区别对我来说并不是很明显.例如,如果我将我的/etc/ansible/hosts文件配置为:

[databases]
mydb01.example.org
mydb02.example.org

[mail_servers]
mymail01.example.org
mymail_dr.example.org
Run Code Online (Sandbox Code Playgroud)

......那么这个" [databases]"条目是什么......一个角色?或者某个剧本YAML文件的名称?或者是其他东西?!?

如果有人可以向我解释这些差异,我对Ansible的理解会大大提升!

  • Playbook vs Role vs [databases]和类似的条目/etc/ansible/hosts
  • 如果在YAML文件中定义了Playbooks,那么角色定义在哪里?
  • 除了ansible.cfgAnsible服务器上的生活,如何使用可用的Playbooks/Roles添加/配置Ansible?例如,当我跑步时ansible-playbook someplaybook.yaml,Ansible如何知道在哪里找到该剧本?

ansible ansible-playbook

87
推荐指数
4
解决办法
5万
查看次数

多个和/或嵌套的Bootstrap容器?

我的理解是所有Bootstrap样式元素必须存在于<div class="container">元素内.但有时我会看到Bootstrap示例中有多个"容器":

<div class="container">
    <!-- Blah, GUI stuff, blah -->
</div>

...

<div class="container">
    <!-- Blah, more GUI stuff, blah -->
</div>
Run Code Online (Sandbox Code Playgroud)

我的问题:

  1. 您何时需要一个包含多个"容器div"的HTML页面?这提供了什么好处,而不是仅仅将整个身体放在一个大的"容器div"中?
  2. 你想要在其他人中嵌入"容器div"吗?当/为什么?

css twitter-bootstrap

75
推荐指数
4
解决办法
8万
查看次数

数据非规范化如何与微服务模式一起工作?

我刚读了一篇关于微服务和PaaS架构的文章.在那篇文章中,大约三分之一的时间,作者说(在像Denzy的Denormalize下):

重构数据库模式,并对所有内容进行反规范化,以实现数据的完全分离和分区.也就是说,不要使用提供多个微服务的基础表.不应共享跨多个微服务的基础表,也不应共享数据.相反,如果多个服务需要访问相同的数据,则应通过服务API(例如已发布的REST或消息服务接口)共享它.

虽然这在理论上听起来很棒,但在实践中它还有一些需要克服的严重障碍.其中最大的一点是,数据库经常紧密耦合,每个表与至少一个其他表有一些外键关系.因此它可能是不可能的分区的数据库进Ñ通过控制子数据库Ñ微服务.

所以我要问:给定一个完全由相关表组成的数据库,如何将其归一化为较小的片段(表组),以便片段可以由单独的微服务控制?

例如,给定以下(相当小但是示例性)数据库:

[users] table
=============
user_id
user_first_name
user_last_name
user_email

[products] table
================
product_id
product_name
product_description
product_unit_price

[orders] table
==============
order_id
order_datetime
user_id

[products_x_orders] table (for line items in the order)
=======================================================
products_x_orders_id
product_id
order_id
quantity_ordered
Run Code Online (Sandbox Code Playgroud)

不要花太多时间批评我的设计,我在飞行中做了这个.关键是,对我来说,将这个数据库分成3个微服务是合乎逻辑的:

  1. UserService - 用于系统中的CRUDding用户; 应该最终管理[users]桌子; 和
  2. ProductService - 用于系统中的CRUDding产品; 应该最终管理[products]桌子; 和
  3. OrderService - 用于系统中的CRUDding订单; 应该最终管理[orders][products_x_orders]

但是,所有这些表都具有彼此的外键关系.如果我们将它们归一化并将它们视为整体,它们就会失去所有的语义:

[users] table
=============
user_id
user_first_name …
Run Code Online (Sandbox Code Playgroud)

database denormalization microservices

71
推荐指数
3
解决办法
7864
查看次数

DropWizard Metrics Meters与计时器

我学习的DropWizard指标库(原科达硬朗指标),我很困惑,当我应该使用到MetersVS Timers.根据文件:

仪表:仪表测量一组事件发生的速率

和:

计时器:计时器基本上是事件类型持续时间的直方图和其发生率的计量表

基于这些定义,我无法辨别它们之间的区别.令我感到困惑的是,Timer没有像我期望的那样使用它.对我而言,Timer就是这样:一个计时器; 它应该测量a start()和之间的时间差stop().但似乎Timers也可以捕捉事件发生的速度,感觉就像是踩到了Meters脚趾.

如果我能看到每个组件输出的示例,这可能有助于我理解何时/何处使用其中任何一个.

java metrics timer dropwizard codahale-metrics

65
推荐指数
1
解决办法
3万
查看次数

Groovy内置REST/HTTP客户端?

我听说Groovy有一个内置的REST/HTTP客户端.我能找到的唯一的库是HttpBuilder,是这样的吗?

基本上我正在寻找一种从Groovy代码中执行HTTP GET的方法,而无需导入任何库(如果可能的话).但由于这个模块似乎不是核心Groovy的一部分,我不确定我是否在这里有正确的库.

rest groovy httpbuilder

63
推荐指数
5
解决办法
10万
查看次数

Kafka的基于键/值对的消息传递的目的是什么?

所有的例子卡夫卡 | 生产者显示ProducerRecord的键/值对不仅是相同的类型(所有示例都显示<String,String>),而是相同的.例如:

producer.send(new ProducerRecord<String, String>("someTopic", Integer.toString(i), Integer.toString(i)));
Run Code Online (Sandbox Code Playgroud)

但是在Kafka文档中,我似乎无法找到解释键/值概念(及其基本目的/效用)的位置.在传统的消息传递(ActiveMQ,RabbitMQ等)中,我总是在特定的主题/队列/交换中发出消息.但Kafka是第一个似乎需要键/值对的代理,而不仅仅是一个正常的'字符串消息.

所以我问:要求生产者发送KV对的目的/用途是什么?

messaging message-queue key-value messagebroker apache-kafka

59
推荐指数
2
解决办法
2万
查看次数

Apache Mesos实际上做了什么?

我试图围绕Apache Mesos,并需要澄清一些项目.

Mesos的理解是它是一个可执行文件,安装在集群中的每个物理/ VM服务器(" 节点 ")上,然后提供一个Java API(不知何故)将每个单独的节点视为一个集合的计算资源池( CPU/RAM /等).因此,对于使用Java API编码的程序,它们只能看到一组资源,而不必担心代码的部署方式/位置.

所以对于一个人来说,我在这里的理解可能是根本错误的(在这种情况下,请纠正我!).但是如果我是目标,那么Java API(由Mesos提供)如何允许Java客户端利用这些资源?!?有人可以举一个Mesos的具体例子吗?


更新

看看下面我可怕的图画.如果我正确理解Mesos架构,我们就拥有一个由3个物理服务器组成的集群(phys01,phys02phys03).这些物理中的每一个都在运行Ubuntu主机(或其他).通过虚拟机管理程序,比如Xen,我们可以运行1+个虚拟机.

我对Docker和CoreOS感兴趣,所以我将在这个例子中使用它们,但我猜这同样适用于其他非容器设置.

所以在每个VM上我们都有CoreOS.在每个CoreOS实例上运行的是Mesos可执行文件/服务器.集群中的所有Mesos节点都将其下面的所有内容视为单个资源池,并且可以将工件任意部署到Mesos集群,并且Mesos将确定实际部署它们的CoreOS实例.

运行在Mesos之上的是一个"Mesos框架",如Marathon或Kubernetes.在Kubernetes中运行的是各种Docker容器(C1- C4).

在此输入图像描述

对Mesos的这种理解或多或少是正确的吗?

java virtualization cluster-computing iaas mesos

38
推荐指数
1
解决办法
1万
查看次数