我创建了一个VPC,并在其中创建了一个子网和一个Internet 网关(附加到 VPC)。在该子网中,我创建了一个路由表,其中将路由 0.0.0.0/0 设置为目标Internet Gateway。
之后,我在子网中启动了一个 EC2 实例,但它没有公共 IP,因此我无法使用 RDP 连接到它。
我尝试启用“ DNS 主机名”和“ DNS 解析”,但它没有向我的实例添加公共 IP(即使在重新启动后)。在我的子网中,我启用了“自动分配 IPv4 ”,但仍然没有公共 IP。
请问我在这里缺少什么线索吗?
这是我为了暴露我的问题而做的一个简化的例子。我有一些doSomeWork()使用 ExecutorService 以多线程方式处理的任务(最多一次 4 个线程)。但是,如果任何线程/任务生成异常,我想:
停止处理任何进一步的任务。
在主线程级别捕获异常。
public static void main(String[] args) {
final ExecutorService threadPool = Executors.newFixedThreadPool(4);
final ExecutorCompletionService<Void> completionService = new ExecutorCompletionService<>(threadPool);
try {
for (int i = 0; i < 10; i++) {
int b = i;
completionService.submit(() -> doSomeWork(b));
}
threadPool.shutdown();
threadPool.awaitTermination(8, TimeUnit.HOURS);
System.exit(0);
} catch (Exception e) {
System.out.println("Something wrong happened: " + e.getMessage());
}
System.exit(1);
}
//This function have 50% odds of throwing an exception
public static Void doSomeWork(int i) throws Exception …Run Code Online (Sandbox Code Playgroud)我刚刚开始使用 OpenTelemetry 并为此创建了两个(微)服务:Standard和GeoMap。
最终用户向标准服务发送请求,标准服务又向GeoMap发送请求以获取信息,然后将结果返回给最终用户。我使用 gRPC 进行所有通信。
我已经这样设置了我的功能:
对于标准:
type standardService struct {
pb.UnimplementedStandardServiceServer
}
func (s *standardService) GetStandard(ctx context.Context, in *pb.GetStandardRequest) (*pb.GetStandardResponse, error) {
conn, _:= createClient(ctx, geomapSvcAddr)
defer conn1.Close()
newCtx, span1 := otel.Tracer(name).Start(ctx, "GetStandard")
defer span1.End()
countryInfo, err := pb.NewGeoMapServiceClient(conn).GetCountry(newCtx,
&pb.GetCountryRequest{
Name: in.Name,
})
//...
return &pb.GetStandardResponse{
Standard: standard,
}, nil
}
func createClient(ctx context.Context, svcAddr string) (*grpc.ClientConn, error) {
return grpc.DialContext(ctx, svcAddr,
grpc.WithTransportCredentials(insecure.NewCredentials()),
grpc.WithUnaryInterceptor(otelgrpc.UnaryClientInterceptor()),
)
}
Run Code Online (Sandbox Code Playgroud)
对于地理地图 …
给定一个包含整数的列表 A 和 B,我希望两个列表进行比较,如果列表 A 的至少一个元素小于列表 B 的至少一个元素,则返回 true,否则返回 False。
例子:
>>> A = [1,4]
>>> B = [0,2]
>>> compare_lists(A, B) # True because 1 from list A < 2 from list B
>>> A = [2,4]
>>> B = [0,2]
>>> compare_lists(A, B) # False because all elements of A are greater or equal to all B elements
Run Code Online (Sandbox Code Playgroud)
该函数最直接的实现:
def compare_lists(a, b):
for i in a:
for j in b:
if i < j:
return True
return False …Run Code Online (Sandbox Code Playgroud)