我在SO和Google上搜索了这个问题的答案,但到目前为止找不到合适的解决方案.
我目前正在处理图形路由问题中的LayerManager.经理负责提供和重置固定的图层集.
我想用阻塞列表实现Consumer-Producer模式,以便在没有可用的自由层的情况下阻止传入路由请求.到目前为止,我只发现了阻塞队列,但由于我们不需要FIFO,LIFO但随机访问队列并不真正起作用.为了更精确一点,这样的事情应该是可能的:
/* this should be blocking until a layer becomes available */
public Layer getLayer(){
for ( Layer layer : layers ) {
if ( layer.isUnused() && layer.matches(request) )
return layers.pop(layer);
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法实现这个目标?
我们已经构建了一个免费的全球分布式移动分析REST API.这意味着我们的服务器遍布全球,运行相同应用程序的不同版本(美国,欧洲等).这些服务是负载均衡器的背后,所以如果他/她今天或明天都有请求,我不能保证同一个用户总是得到相同的应用程序/服务器.API是公开的,但用户必须提供API密钥才能让我们将其与付费请求配额相匹配.
由于我们对每个请求进行大量数字运算,因此我们希望尽可能减少请求时间,特别是对于身份验证/授权和配额监控.由于我们目前仅使用一个用户数据库(必须位于单个数据中心),因此有时美国用户向美国的应用程序/服务器发出请求,该应用程序/服务器在欧洲对用户进行身份验证.所以我们正在寻找一个用户数据库交互的解决方案:
我们到目前为止所做的事情:
由于这是我的第一个全球分布式REST API,我想知道其他公司是如何做到的.(yelp,谷歌等)
任何反馈都非常感谢,
干杯,
丹尼尔
我正在遍历图形的边缘,并希望得到所有源和目标的列表.这是我到目前为止:
public Set<Vertex> getVertices(){
Set<Vertex> vertices = this.edges.stream().map(edge -> edge.getSource()).collect(Collectors.toSet());
vertices.addAll(this.edges.stream().map(edge -> edge.getTarget()).collect(Collectors.toSet()));
return vertices;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在同一个映射/收集步骤中获取源和目标?像(PSEUDO-CODE)这样的东西:
edges.stream().collect(edge.getSource()).collect(edge.getTarget())
Run Code Online (Sandbox Code Playgroud)
或普通的旧Java 7
for ( Edge e : edges ){
vertices.add(e.getSource());
vertices.add(e.getTarget());
}
Run Code Online (Sandbox Code Playgroud)
干杯,丹尼尔
我有一个空的 Spring Boot 应用程序,我想在其中加载以前版本的数据。该数据已经包含主键。因此我使用 Liquibase loadData 方法:
<column name="id" type="bigint" autoIncrement="${autoIncrement}">
<constraints primaryKey="true" nullable="false"/>
</column>
<loadData tableName="point_of_interest" separator=";" file="classpath:config/liquibase/data/public.poi.csv">
</loadData>
// the java annotations
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
Run Code Online (Sandbox Code Playgroud)
这按预期工作,但 Hibernate 序列未更新。如果我想保存新对象,这会导致重复的主键。
我究竟做错了什么?
干杯,丹尼尔
java ×2
architecture ×1
blocking ×1
collectors ×1
hibernate ×1
java-8 ×1
java-stream ×1
jpa ×1
liquibase ×1
list ×1
postgresql ×1
spring-boot ×1
sql ×1
web ×1
web-services ×1