我看了DCOS的介绍视频.这很好,但在Mesosphere的组件定义分类方面让我有点困惑.
我认为DCOS是一个生态系统,Mesos就像一个内核.如果我错了,请纠正我.例如.这就像我认为的Ubuntu和Linux内核.
什么是马拉松?它是一种服务或框架,还是属于其他任何类别的东西?在Mesosphere的上下文中,我在服务与框架与应用程序与任务定义方面有点混淆.
他在视频中发布的服务(Cassandra,HDFS,Kubernetes等)是否可以安全地称为框架?
从3开始,这些"服务"是奴隶中的执行者吗?
rails-app的类型应该在这里?这是一项任务吗?那么它还会有一个遗嘱执行人吗?
当他使用马拉松增加流量时,谁决定将rails-app自动扩展到更多节点.
正如标题所述,为什么下面的代码可以编译通过?
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) 我对上面的设置感到有点困惑.根据我的理解,在公共子网内,有四个实例(3个webservers + 1个NAT).为什么他们都有公共(弹性)IP地址?为什么网络服务器有公共IP地址?它们不应该通过NAT实例访问吗?我的意思是所有内容(入站或出站)应该通过NAT实例,对吗?这是否意味着网络服务器和外部世界之间存在绕过NAT的直接路径?我在这里错过了什么?"路由器"和"互联网网关"也是EC2实例吗?
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) 我试图理解为什么以下代码失败:
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) 我有以下代码:
#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,我得到了相同的结果.〜
这段代码:
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)
两者有什么区别?
我似乎不明白这里的编译器错误消息。对于以下代码片段
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) rust ×5
pointers ×2
amazon-ec2 ×1
amazon-vpc ×1
c++ ×1
constructor ×1
dcos ×1
dereference ×1
destructor ×1
future ×1
marathon ×1
mesos ×1
mesosphere ×1
reference ×1
subnet ×1
traits ×1