locationId“europe-west”是代表比利时还是欧盟的多个地区?

时间:2018-05-08 17:50:21

标签: google-app-engine google-cloud-datastore

  1. 在Google Cloud Console中创建新项目
  2. 在空的Cloud Datastore中创建一个新实体。系统提示您输入位置时,请选择europe-west,根据Cloud Datastore Locations代表欧洲的多区域

    推理:

      

    最大化数据库的可用性和持久性。多区域位置可以承受整个区域的损失并保持可用性而不会丢失数据。在云数据存储区服务级别协议中,多区域位置定义的月度正常运行时间百分比高于区域位置。

  3. 接下来,在同一个项目中创建并部署新的Google App Engine(标准环境)应用。

    Cloud Datastore Locations也解释了:

      

    Google Cloud Platform项目的位置设置适用于Cloud Datastore和App Engine。

    App Engine是一个区域资源。

  4. 对于这个项目,命令

    gcloud app describe
    

    将返回

    locationId: europe-west
    

    根据App Engine Locationseurope-west代表比利时地区,而​​Cloud Datastore告诉我europe-west是欧洲的多地区位置。比利时OTOH未明确列为Cloud Datastore的(地区)位置。

    问题

    locationId: europe-west是指比利时和比利时也是欧洲的多地区位置(适用于Cloud Datastore,但不适用于App Engine)?

    奖金问题

    如果假设是正确的:这是否意味着当比利时位置丢失时客户端仍然可以访问云数据存储区(因为它被复制到另一个区域),而不是相应的App Engine应用程序?

2 个答案:

答案 0 :(得分:1)

你问题的答案很冗长。

以下简短回答: package com.example.android.glidegalleryevilsecret; import android.content.Context; import android.content.Intent; import android.support.annotation.NonNull; import android.support.v7.widget.CardView; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.Glide; import java.util.List; public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.MyViewHolder>{ private Context mContext; private List<Page> mData; public RecyclerAdapter(Context mContext, List<Page> mData) { this.mContext = mContext; this.mData = mData; } @NonNull @Override public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view; LayoutInflater mInflater = LayoutInflater.from(mContext); view = mInflater.inflate(R.layout.cardview, parent,false); return new MyViewHolder(view); } @Override public void onBindViewHolder(@NonNull MyViewHolder holder, final int position) { Glide.with(mContext) .load(mData.get(position).getThumbnail()) .into(holder.page_thumbnail); holder.number_page.setText(mData.get(position).getNumberPage()); holder.cardView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent (mContext, PageActivity.class); //passing data to the page activity intent.putExtra("Thumbnail", mData.get(position).getThumbnail()); //start the page activity mContext.startActivity(intent); } }); } @Override public int getItemCount() { return mData.size(); } public static class MyViewHolder extends RecyclerView.ViewHolder { TextView number_page; ImageView page_thumbnail; CardView cardView; public MyViewHolder (View itemView){ super(itemView); number_page = itemView.findViewById(R.id.number_page_id); page_thumbnail = itemView.findViewById(R.id.page_image_id); cardView = itemView.findViewById(R.id.cardView_id); } } } 表示基于产品的不同内容。对于App Engine,它意味着比利时,对于数据存储,它意味着多个地区的欧洲(包括比利时,但奇怪的是你不能选择比利时作为其他地区 - 只有伦敦或法兰克福)。

奖励回答:是的,但如果你的应用程序停机,我不知道他们将如何访问云数据存储区。

来源:Google's table of products available by region.

答案 1 :(得分:1)

对于Cloud Datastore,Europe-west指的是我们的比利时 - 芬兰 - 荷兰多区域(尽管可能会发生变化)。

是的,如果比利时地区丢失,您仍然可以从其他云区域读取/写入Cloud Datastore - 假设您有一个计算层。