我一直在工作,spring
现在想学习spring boot
微服务。我了解microservice
所有内容及其运作方式。在浏览文档时,我遇到了很多用于开发的东西microservices
,spring boot
而我对此非常困惑。
我列出了以下系统和问题:
services
都将注册到eureka
服务器,并且
microservices
都是eureka
客户端。现在,我的疑问是,没有API网关,此服务注册表是否有任何用途?这是为了了解服务注册表的实际使用。ZUULApi网关 -我知道ZUUL可以用作API网关,它基本上是一个负载均衡器,它调用与请求URL相对应的适当的微服务。这个假设正确吗?api网关将与Eureka交互以获得适当的微服务吗?
NGINX-我看过 NGINX
还可以用作API网关吗?那可能吗?我也读了一些其他地方NGINX
可以用作服务注册表,也可以作为尤里卡的替代品!因此哪个是对的?api网关或服务注册表,或两者兼而有之?我知道这nginx
是一个网络服务器,reverse proxies
可以进行强大的配置。
AWS api网关 -这也可以替代ZUUL
吗?
丝带 -有什么ribbon
用?我不明白!
AWS ALB-这也可以用于负载平衡。因此,如果有,我们是否需要ZUUL AWS ALB
?
请帮忙
nginx amazon-web-services spring-boot microservices netflix-zuul
如何在端口80中运行wildfly 8.2.1?我可以通过更改下面的偏移量在不同的端口运行wildfly.
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:100}">
Run Code Online (Sandbox Code Playgroud)
但无法在80端口运行.
考虑以下两个功能接口(java.lang.Runnable and java.util.concurrent.Callable<V>
):
public interface Runnable {
void run();
}
public interface Callable<V> {
V call();
}
Run Code Online (Sandbox Code Playgroud)
假设您有overloaded
如下方法调用:
void invoke(Runnable r) {
r.run();
}
<T> T invoke(Callable<T> c) {
return c.call();
}
Run Code Online (Sandbox Code Playgroud)
考虑以下方法调用
String s = invoke(() -> "done");
Run Code Online (Sandbox Code Playgroud)
这会打电话给invoke(Callable)
。但是如何?编译器如何确定Type为可调用类型?我从阅读的Oracle文档中看不懂。
我想json
使用过滤器将现有响应(在某些情况下)替换为新响应。我想做的是JSON
从过滤器读取现有的响应()。使用新值修改它并写回响应。但结果显示两者都有反应。
也就是说,我从回复中读到的内容以及我新添加的内容。但我需要用新的响应替换旧的响应。下面添加了代码。
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
{
try{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
final PrintStream ps = new PrintStream(baos);
chain.doFilter(request,new HttpServletResponseWrapper((HttpServletResponse)response) {
@Override
public ServletOutputStream getOutputStream() throws IOException {
return new DelegatingServletOutputStream(new TeeOutputStream(super.getOutputStream(), ps)
);
}
@Override
public PrintWriter getWriter() throws IOException {
return new PrintWriter(new DelegatingServletOutputStream (new TeeOutputStream(super.getOutputStream(), ps))
);
}
});
/* get existing response as string*/
String respopn=baos.toString();
JSONObject json=new JSONObject(respopn);
JSONObject dMap=new JSONObject(json.get("dataMap"));
dMap.put("new", "newValue");
json.put("dataMap", dMap); // …
Run Code Online (Sandbox Code Playgroud) spring boot
我通过监控应用程序java Visual Vm
。我想监控连接池。HikariCP 是用于connection pooling
. 我无法看到active connections
详细信息中的数量。附截图。它不是默认公开的还是我们应该以编程方式公开它?请指教
我在我的项目中有一个要求,将 900 万条数据从 oracle 数据库缓存到 Hazelcast 。但显然 Hazelcast 消耗的堆空间比它应该消耗的更多。我已经为应用程序分配了 8bg 堆空间,但仍然出现内存不足错误。
下面是我的数据加载器类。
public class CustomerProfileLoader implements ApplicationContextAware, MapLoader<Long, CustomerProfile> {
private static CustomerProfileRepository customerProfileRepository;
@Override
public CustomerProfile load(Long key) {
log.info("load({})", key);
return customerProfileRepository.findById(key).get();
}
@Override
public Map<Long, CustomerProfile> loadAll(Collection<Long> keys) {
log.info("load all in loader executed");
Map<Long, CustomerProfile> result = new HashMap<>();
for (Long key : keys) {
CustomerProfile customerProfile = this.load(key);
if (customerProfile != null) {
result.put(key, customerProfile);
}
}
return result;
}
@Override
public Iterable<Long> loadAllKeys() { …
Run Code Online (Sandbox Code Playgroud) java ×4
spring-boot ×2
filter ×1
hazelcast ×1
java-8 ×1
json ×1
jvisualvm ×1
lambda ×1
netflix-zuul ×1
nginx ×1
servlets ×1
spring-mvc ×1
wildfly ×1
wildfly-8 ×1