小编sou*_*ics的帖子

对Mesos术语感到困惑

我看了DCOS的介绍视频.这很好,但在Mesosphere的组件定义分类方面让我有点困惑.

  1. 我认为DCOS是一个生态系统,Mesos就像一个内核.如果我错了,请纠正我.例如.这就像我认为的Ubuntu和Linux内核.

  2. 什么是马拉松?它是一种服务或框架,还是属于其他任何类别的东西?在Mesosphere的上下文中,我在服务与框架与应用程序与任务定义方面有点混淆.

  3. 他在视频中发布的服务(Cassandra,HDFS,Kubernetes等)是否可以安全地称为框架?

  4. 从3开始,这些"服务"是奴隶中的执行者吗?

  5. rails-app的类型应该在这里?这是一项任务吗?那么它还会有一个遗嘱执行人吗?

  6. 当他使用马拉松增加流量时,谁决定将rails-app自动扩展到更多节点.

marathon mesos mesosphere dcos

2
推荐指数
1
解决办法
756
查看次数

当 T 不是副本时,为什么取消引用 Box<T> 不会抱怨“移出共享引用”?

正如标题所述,为什么下面的代码可以编译通过?

use std::ops::Deref;

struct Foo {}

fn main() {
    let b = Box::new(Foo{});
    
    let pb = *b; //works
    // let pb = *b.deref();  // error[E0507]: cannot move out of a shared reference
}
Run Code Online (Sandbox Code Playgroud)

对于具有非复制目标的自定义类型,情况并非如此。

use std::ops::Deref;

struct Foo<T> {
    p: T,
}

impl<T> Deref for Foo<T> {
    type Target = T;

    fn deref(&self) -> &<Self as Deref>::Target {
        &self.p
    }
}

fn main() {
    let f = Foo { p: vec![1u8] };

    let pf = *f; // error[E0507]: cannot move …
Run Code Online (Sandbox Code Playgroud)

traits dereference rust

2
推荐指数
1
解决办法
77
查看次数

Amazon Web Services VPC设置

在此输入图像描述

我对上面的设置感到有点困惑.根据我的理解,在公共子网内,有四个实例(3个webservers + 1个NAT).为什么他们都有公共(弹性)IP地址?为什么网络服务器有公共IP地址?它们不应该通过NAT实例访问吗?我的意思是所有内容(入站或出站)应该通过NAT实例,对吗?这是否意味着网络服务器和外部世界之间存在绕过NAT的直接路径?我在这里错过了什么?"路由器"和"互联网网关"也是EC2实例吗?

amazon-ec2 subnet amazon-web-services amazon-vpc

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

取消引用指向 String 的原始指针和指向 i32 的原始指针有什么区别?

fn func(s: *mut String, a: *mut i32) -> usize {
    println!("{}", unsafe { *s });
    println!("{}", unsafe { *a });

    unsafe { (*s).len() }
}

fn main() {
    let mut s = String::from("hello");
    let mut a = 10;

    func(&mut s, &mut a);
}
Run Code Online (Sandbox Code Playgroud)

上面的代码失败并出现错误:

fn func(s: *mut String, a: *mut i32) -> usize {
    println!("{}", unsafe { *s });
    println!("{}", unsafe { *a });

    unsafe { (*s).len() }
}

fn main() {
    let mut s = String::from("hello");
    let mut a …
Run Code Online (Sandbox Code Playgroud)

pointers ownership-semantics rust borrow-checker

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

在迭代包含可变引用的向量时理解循环语义

我试图理解为什么以下代码失败:

fn main() {
    let mut a = 10;
    let mut b = 20;
    let mut c = 30;
    let p = vec![&mut a, &mut b, &mut c]; // works with [&a, &b, &c]

    for &x in &p { // works with 'x' instead of of '&x'
        println!("{}", x);
    }
}
Run Code Online (Sandbox Code Playgroud)

错误消息是:

error[E0507]: cannot move out of borrowed content
 --> src/main.rs:7:9
  |
7 |     for &x in &p {
  |         ^-
  |         ||
  |         |hint: to prevent move, use `ref …
Run Code Online (Sandbox Code Playgroud)

reference rust

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

c ++构造函数/析构函数

我有以下代码:

#include <iostream>

using namespace std;

class A
{  
public:
    A ()
    {
        cout<<"cons"<<endl;
    }
    ~A ()
    {
        cout<<"dest"<<endl;
    }
};

A
gokul (void)
{
    A p;

    return p;
}

int
main ()
{
   A a = gokul();
   cout<<"done\n";
}
Run Code Online (Sandbox Code Playgroud)

当我运行它.我得到以下输出:

缺点

DONE

DEST

我期待输出为:

缺点 - > p创建,

缺点 - >对于a,gokul返回

dest - > p被毁,gokul回来了

DONE

dest - >一个被毁坏的,主要归还

当函数gokul返回并且将创建新变量"a"时,将破坏局部变量"p",不是吗?我已经编译了所有三个标准03,11和14,我得到了相同的结果.〜

c++ constructor destructor

0
推荐指数
1
解决办法
152
查看次数

分配给*mut T和&mut T之间的区别是什么?

这段代码:

let mut a2 = 99;
let b: *mut i32 = &mut a2;
*b = 11; // does not compile , even after unsafe {*b}
Run Code Online (Sandbox Code Playgroud)

生成错误:

error[E0133]: dereference of raw pointer requires unsafe function or block
 --> src/main.rs:4:5
  |
4 |     *b = 11;
  |     ^^^^^^^ dereference of raw pointer
Run Code Online (Sandbox Code Playgroud)

但是这段代码有效:

let mut a2 = 99
let b = &mut a2;
*b = 11;
Run Code Online (Sandbox Code Playgroud)

两者有什么区别?

pointers rust

0
推荐指数
1
解决办法
71
查看次数

关于 Rust 中的 Boxed Future 的编译器错误消息有点令人困惑

我似乎不明白这里的编译器错误消息。对于以下代码片段

use std::pin::Pin;
use std::future::Future;

fn give_future<'a>(x : &'a i32) -> Pin<impl Future<Output=&'a i32> + 'a> {
    Box::pin(async move { x })
}
Run Code Online (Sandbox Code Playgroud)

它说以下内容

error[E0277]: `[async block@src/lib.rs]` cannot be unpinned
 --> src/lib.rs:7:47
  |
  | fn give_future<'a>(x : &'a i32) -> Pin<impl Future<Output=&'a i32> + 'a> {
  |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Unpin` is not implemented for `[async block@src/lib.rs]`
  |
  = note: consider using the `pin!` macro
          consider using `Box::pin` if you need to access the pinned value outside of the current …
Run Code Online (Sandbox Code Playgroud)

future rust

0
推荐指数
1
解决办法
80
查看次数