我是春天的新手.我已阅读此文档,它说客户端应用程序必须指定服务URL:
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
Run Code Online (Sandbox Code Playgroud)
但是如果localhost:8761
下降怎么办?
我快速浏览了Feign的源代码,我发现Feign使用JDK HttpUrlConnection
发出HTTP请求,并在请求完成时关闭它而不使用连接池.我怀疑这种方式的效率.然后我读了Spring的文档,RestTemplate
它说RestTemplate
可以切换到Apache Http Client或OKHttp来发送HTTP请求:
注意:默认情况下,RestTemplate依赖于标准JDK工具来建立HTTP连接.您可以通过HttpAccessor.setRequestFactory(org.springframework.http.client.ClientHttpRequestFactory)属性切换到使用不同的HTTP库,例如Apache HttpComponents,Netty和OkHttp.
这是否意味着RestTemplate在性能方面优于Feign?
我已经阅读了Java 8 In Action,因此我知道什么是Stream以及如何使用它.但从计算机科学的角度来看,所有数据都需要存储在一种数据结构中.所以,
如何存储Stream?
Stream如何能够为如此多种集合(例如,数组,链表,映射)执行如此多的操作?
或者Stream可能只是一个接口,需要各种集合来实现此接口中指定的这些操作?
谢谢!
执行后systemctl start docker
,我得到:
无法启动docker.service:找不到单位.
这是输出systemctl status docker -l
:
[root@HP11012078 init.d]# systemctl status docker -l
? docker.service - Docker Application Container Engine
Loaded: loaded (/etc/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Docs: https://docs.docker.com
Feb 09 17:04:35 HP11012078 docker[28152]: time="2017-02-09T17:04:35.104333869+08:00" level=warning msg="container 58a5c6ba6710240bb5b1fd79e4600b547cf4c882eb2ca85e15c59c1404106877 restart canceled"
Feb 09 17:04:35 HP11012078 docker[28152]: time="2017-02-09T17:04:35.113914527+08:00" level=warning msg="container d320ba5f02cdd8567893acfc62b6673a24b6c8a43ccb52342bb3470ff420230d restart canceled"
Feb 09 17:04:35 HP11012078 docker[28152]: time="2017-02-09T17:04:35.122613873+08:00" level=warning msg="container 4030daadb9481a1b96b7a5c614c8910a601f83f2dced8340f4ea4c3583e7e844 restart canceled"
Feb 09 17:04:45 HP11012078 docker[28152]: time="2017-02-09T17:04:45.002120051+08:00" level=info msg="Container c13f11ce792c477d9b663c6fdbcfe9694663f7843a40540c58922893f4b41247 failed …
Run Code Online (Sandbox Code Playgroud) 需要将Java程序打包到JAR文件中,以便可以使用java -jar
命令执行它.所以,为什么我不具备执行javac
与java -jar javac
命令?Sun/Oracle是如何将java程序转换为可执行的二进制文件的?
我知道有些工具可以将jar文件转换为Windows可执行文件.但我希望我的jar可以在没有bash脚本帮助的情况下在Linux/OS X中执行.
----------更新
我发现此链接非常有用:https://github.com/maynooth/CS210/wiki/Convert-Java-Executable-to-Linux-Executable
这是jmap -heap
命令的输出:
Survivor Space:
regions = 52
capacity = 54525952 (52.0MB)
used = 54525952 (52.0MB)
free = 0 (0.0MB)
100.0% used
Run Code Online (Sandbox Code Playgroud)
我已经执行了很多次,我发现它的价值capacity
总是等于used
.
我的问题是为什么幸存者空间总是充满(又如此之小)?我指定了-Xmx2200m -Xms2200m -Xmn1100m
.(我预计幸存者空间应该是220M,这意味着幸存者区域应该有更多的空间)
- 更新 -
jheap的完整输出:
Garbage-First (G1) GC with 2 thread(s)
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 2306867200 (2200.0MB)
NewSize = 1153433600 (1100.0MB)
MaxNewSize = 1153433600 (1100.0MB)
OldSize = 4194304 (4.0MB)
NewRatio = 2
SurvivorRatio = 8
MetaspaceSize = 16777216 (16.0MB)
CompressedClassSpaceSize = 1073741824 …
Run Code Online (Sandbox Code Playgroud) 对于垃圾第一收集器,年轻的gc意味着仅在年轻一代中执行gc并且 混合gc 将清洁年轻一代和老一代.
什么是完整的gc?为什么它比混合gc持续更长时间?
我做了一些搜索,但我找不到任何解释完整gc的帖子.
以下是2行代码:
def name = "Neo"
println name
Run Code Online (Sandbox Code Playgroud)
如果我执行它groovysh
,我会得到Unknown property: name
错误.如果我执行它groovyConsole
,一切都很顺利.
有许多类型的域对象在我的web应用程序,如MemberModel
,PostModel
,CreditsModel
等等.我发现在配置时需要对象的类型JacksonJsonRedisSerializer
,所以我指定了Object.class
.但是反序列化对象时出错了.
要解决这个问题,我有两个选择:
JdkSerializationRedisSerializer
改用.但序列化的结果太长,因此在Redis中会占用大量内存.有没有一种优雅的方法来解决这个问题?谢谢!
以下是JDK7源代码的摘录:
public String(String original) {
this.value = original.value;
this.hash = original.hash;
}
Run Code Online (Sandbox Code Playgroud)
这两个value
和hash
的private
领域.为什么original.value
合法?
java ×5
jvm ×2
spring-cloud ×2
docker ×1
g1gc ×1
groovy ×1
groovyshell ×1
java-8 ×1
java-stream ×1
spring-cache ×1