三年前,我作为开发人员参与了我的第一个微服务项目。我对微服务概念一无所知。该项目正在构建为 Spring Boot 微服务。一般来说,没有什么特别的,但所有项目都应用了基于客户端库的微服务之间的集成方式,这种方式颇有争议。我认为那些客户端库是通过幼稚的方式制作的。我会尽量给出他们的主要想法。
项目中有三个模块:*-api,*-client和*-impl. 这*-impl是一个成熟的 REST 服务,并且*-client是此 REST 服务的客户端库。*-impl和*-client模块依赖于*-api(它们*-api作为 maven 依赖项导入)。在*-api又包含哪些应该由执行Java接口@RestController从类*-impl模块,并通过实现客户端库的功能,这REST服务(通过类RestTemplate或FeignClient)。另外,*-api通常包含可被覆盖的DTO Bean验证和扬鞭注释。在某些情况下,这些接口可能包含来自 Spring-MVC 的@RequestMapping注释。因此@RestController和FeignClient同时的实现继承了@RequestMapping。
*-api
@ApiModel
class DTO {
@NotNull
private String field;
// getters & setters
}
interface Api {
@RequestMapping("/api")
void method(DTO dto)
}
Run Code Online (Sandbox Code Playgroud)
*-客户 …
client-library spring-boot microservices spring-cloud clean-architecture
在 google.cloud.storage 和 list_blobs 的帮助下,我可以从特定存储桶中获取文件列表。但我想从存储桶中过滤(名称*.ext)确切的文件。我无法找到确切的解决方案。
例如:buket=data,prefix_folder_name=sales,在前缀文件夹中,我有带有元数据的发票列表。我想获取特定的发票及其元数据(name*.csv & name.*.meta)。另外,如果我循环特定文件夹的整个 all_blob 来获取所选文件,那么这将是大量数据,并且可能会影响性能。
如果有人帮助我解决这个问题,那就太好了。
bucket = gcs_client.get_bucket(buket)
all_blobs = bucket.list_blobs(prefix=prefix_folder_name)
for blob in all_blobs:
print(blob.name)
Run Code Online (Sandbox Code Playgroud) 有没有人有任何使用以下两种方法为BigQuery创建新插入作业的示例:
从今天早上起,我使用gapi的所有应用程序都已关闭.
我正在使用:https: //apis.google.com/js/client.js
与我的Google Appengine应用程序的端点进行通信,例如:
gapi.client.load('public', 'v2', function(){
gapi.client.public.organizations().execute(function(response){
console.log(response);
});
}, 'https://XXX.appspot.com/_ah/api');
Run Code Online (Sandbox Code Playgroud)
截至今天,所有呼叫都响应,并显示以下错误消息:
[{"error":{"code":404,"message":"Not Found","data":[{"domain":"global","reason":"notFound","message":"Not Found"}]},"id":"gapiRpc"}]
Run Code Online (Sandbox Code Playgroud)
我的应用程序没有记录任何错误.我可以毫无错误地访问Endpoint API资源管理器(/ _ah/api/explorer).我可以无错误地进行HTTP请求调用,例如
https://XXX.appspot.com/_ah/api/public/v2/organizations
Run Code Online (Sandbox Code Playgroud)
"gapi"对象加载没有错误.我的"公共"端点也被加载,我可以使用javascript控制台列出所有方法.
我已向Google报告此错误.
还有其他人有这个问题吗?有没有人有任何快速的解决方案或解决方法?我是否可能错过了一些Google更新或API更改?
谢谢
javascript api google-app-engine client-library google-cloud-endpoints
我面临的问题是 Cloud Storage 按字典顺序(字母顺序)对新添加的文件进行排序,而我正在使用 Cloud Functions 中的 Python 客户端库读取 Cloud Storage 存储桶中索引 0 处的文件(必须使用云函数作为我项目的一部分)并将数据放在 BigQuery 中,这对我来说很好用,但新添加的文件并不总是出现在索引 0 处。
流文件每天在不同时间进入我的存储桶。文件名相同(data-2019-10-18T14_20_00.000Z-2019-10-18T14_25_00.txt)但文件名中的日期和时间字段在每个新添加的文件中都不同。
每次触发云功能时,如何调整此python代码以读取Cloud Storage存储桶中最新添加的文件?
files = bucket.list_blobs()
fileList = [file.name for file in files if '.' in file.name]
blob = bucket.blob(fileList[0]) #reading file placed at index 0 in bucket
Run Code Online (Sandbox Code Playgroud) python client-library google-cloud-storage google-cloud-platform google-cloud-functions
我们希望客户能够控制客户端JAR中的日志记录级别.做这个的最好方式是什么?
目前我们只有一些写入System.out的日志语句.我意识到使用Log4J可以解决这个问题,尽管我们最大的客户之一不使用Log4J并使用自己的自定义日志记录实现.是否有一种干净的方法让他们控制我们的客户端jar中的日志记录?
我们想到的选项:客户端可以在客户端jar类上显式设置属性来设置日志记录级别(不喜欢这样),我们的客户端jar可以读取客户端可以放在类路径上的可选.properties文件(更好但仍然是有点痛苦).
我正在寻找一种使用以下客户端库在存储桶内创建文件夹的方法:https : //cloud.google.com/storage/docs/json_api/v1/json-api-dotnet-samples
我查看了以下线程,看来我需要使用简单的方法上传。 使用php在存储桶谷歌云存储中创建文件夹
我看不到任何能够指定 a 的方式uploadtype,所有请求似乎都是uploadType=resumable.
查看上面的帖子和我需要使用的提琴手跟踪uploadType=media。有没有办法做到这一点?
java ×2
python ×2
api ×1
c# ×1
javascript ×1
log4j ×1
logging ×1
spring-boot ×1
spring-cloud ×1