使用spring cloud更改eureka服务器的默认端口(Changing default port of eureka server using spring cloud)
我得到了spring-boot应用程序,eureka服务器和eureka客户端。
这是我的服务器配置
server: port: 8761 spring: application: name: eureka-server
这是我的服务器代码
package fr.maif.eurekaserver; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; import org.springframework.cloud.netflix.zuul.EnableZuulProxy; @SpringBootApplication @EnableEurekaServer @EnableZuulProxy public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } }
这是客户端配置
spring: application: name: eureka-client server: port: 8083 eureka: client: serviceUrl: defaultZone: "http://localhost:8761/eureka"
这是我的客户端代码
package fr.maif.eurekaclient; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; @SpringBootApplication @EnableDiscoveryClient public class EurekaClientApplication { public static void main(String[] args) { SpringApplication.run(EurekaClientApplication.class, args); } }
上述工作完美,而服务器端口仍然是8761,但是当我尝试在服务器端口和客户端defaultZone配置中更改它(到8080或任何其他值)时,服务器不断抛出ConnectExceptions。
2017-08-10 15:54:31.424 ERROR 22219 --- [get_localhost-4] c.n.e.cluster.ReplicationTaskProcessor : Network level connection to peer localhost; retrying after delay com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused (Connection refused) at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:187) ~[jersey-apache-client4-1.19.1.jar:1.19.1] at com.netflix.eureka.cluster.DynamicGZIPContentEncodingFilter.handle(DynamicGZIPContentEncodingFilter.java:48) ~[eureka-core-1.6.2.jar:1.6.2] at com.netflix.discovery.EurekaIdentityHeaderFilter.handle(EurekaIdentityHeaderFilter.java:27) ~[eureka-client-1.6.2.jar:1.6.2] at com.sun.jersey.api.client.Client.handle(Client.java:652) ~[jersey-client-1.19.1.jar:1.19.1] at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682) ~[jersey-client-1.19.1.jar:1.19.1] at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74) ~[jersey-client-1.19.1.jar:1.19.1] at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:570) ~[jersey-client-1.19.1.jar:1.19.1] at com.netflix.eureka.transport.JerseyReplicationClient.submitBatchUpdates(JerseyReplicationClient.java:116) ~[eureka-core-1.6.2.jar:1.6.2] at com.netflix.eureka.cluster.ReplicationTaskProcessor.process(ReplicationTaskProcessor.java:71) ~[eureka-core-1.6.2.jar:1.6.2] at com.netflix.eureka.util.batcher.TaskExecutors$BatchWorkerRunnable.run(TaskExecutors.java:187) [eureka-core-1.6.2.jar:1.6.2] at java.lang.Thread.run(Thread.java:748) [na:1.8.0_131] Caused by: java.net.ConnectException: Connection refused (Connection refused) at java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:1.8.0_131] at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[na:1.8.0_131] at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[na:1.8.0_131] at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[na:1.8.0_131] at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_131] at java.net.Socket.connect(Socket.java:589) ~[na:1.8.0_131] at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:121) ~[httpclient-4.5.3.jar:4.5.3] at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180) ~[httpclient-4.5.3.jar:4.5.3] at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:144) ~[httpclient-4.5.3.jar:4.5.3] at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:134) ~[httpclient-4.5.3.jar:4.5.3] at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:610) ~[httpclient-4.5.3.jar:4.5.3] at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:445) ~[httpclient-4.5.3.jar:4.5.3] at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:835) ~[httpclient-4.5.3.jar:4.5.3] at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:118) ~[httpclient-4.5.3.jar:4.5.3] at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56) ~[httpclient-4.5.3.jar:4.5.3] at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:173) ~[jersey-apache-client4-1.19.1.jar:1.19.1] ... 10 common frames omitted
我做错了什么?
I got to spring-boot application, an eureka server and an eureka client.
Here is my server configuration
server: port: 8761 spring: application: name: eureka-server
Here is my server code
package fr.maif.eurekaserver; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; import org.springframework.cloud.netflix.zuul.EnableZuulProxy; @SpringBootApplication @EnableEurekaServer @EnableZuulProxy public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } }
Here is the client configuration
spring: application: name: eureka-client server: port: 8083 eureka: client: serviceUrl: defaultZone: "http://localhost:8761/eureka"
Here is my client code
package fr.maif.eurekaclient; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; @SpringBootApplication @EnableDiscoveryClient public class EurekaClientApplication { public static void main(String[] args) { SpringApplication.run(EurekaClientApplication.class, args); } }
The above works perfectly while the server port remains 8761, however when I try to change it (to 8080 or any other value) both in server port & client defaultZone configuration, the server continuously throws ConnectExceptions.
2017-08-10 15:54:31.424 ERROR 22219 --- [get_localhost-4] c.n.e.cluster.ReplicationTaskProcessor : Network level connection to peer localhost; retrying after delay com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused (Connection refused) at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:187) ~[jersey-apache-client4-1.19.1.jar:1.19.1] at com.netflix.eureka.cluster.DynamicGZIPContentEncodingFilter.handle(DynamicGZIPContentEncodingFilter.java:48) ~[eureka-core-1.6.2.jar:1.6.2] at com.netflix.discovery.EurekaIdentityHeaderFilter.handle(EurekaIdentityHeaderFilter.java:27) ~[eureka-client-1.6.2.jar:1.6.2] at com.sun.jersey.api.client.Client.handle(Client.java:652) ~[jersey-client-1.19.1.jar:1.19.1] at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682) ~[jersey-client-1.19.1.jar:1.19.1] at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74) ~[jersey-client-1.19.1.jar:1.19.1] at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:570) ~[jersey-client-1.19.1.jar:1.19.1] at com.netflix.eureka.transport.JerseyReplicationClient.submitBatchUpdates(JerseyReplicationClient.java:116) ~[eureka-core-1.6.2.jar:1.6.2] at com.netflix.eureka.cluster.ReplicationTaskProcessor.process(ReplicationTaskProcessor.java:71) ~[eureka-core-1.6.2.jar:1.6.2] at com.netflix.eureka.util.batcher.TaskExecutors$BatchWorkerRunnable.run(TaskExecutors.java:187) [eureka-core-1.6.2.jar:1.6.2] at java.lang.Thread.run(Thread.java:748) [na:1.8.0_131] Caused by: java.net.ConnectException: Connection refused (Connection refused) at java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:1.8.0_131] at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[na:1.8.0_131] at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[na:1.8.0_131] at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[na:1.8.0_131] at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_131] at java.net.Socket.connect(Socket.java:589) ~[na:1.8.0_131] at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:121) ~[httpclient-4.5.3.jar:4.5.3] at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180) ~[httpclient-4.5.3.jar:4.5.3] at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:144) ~[httpclient-4.5.3.jar:4.5.3] at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:134) ~[httpclient-4.5.3.jar:4.5.3] at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:610) ~[httpclient-4.5.3.jar:4.5.3] at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:445) ~[httpclient-4.5.3.jar:4.5.3] at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:835) ~[httpclient-4.5.3.jar:4.5.3] at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:118) ~[httpclient-4.5.3.jar:4.5.3] at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56) ~[httpclient-4.5.3.jar:4.5.3] at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:173) ~[jersey-apache-client4-1.19.1.jar:1.19.1] ... 10 common frames omitted
What do I do wrong ?
原文:https://stackoverflow.com/questions/45615866
最满意答案
你正在使用没有选择的svg:你只是附加了一个没有附加任何数据的单个元素,这就是为什么
d=undefined
而你在transform
函数中i=0
的例子。像在团队创作中一样使用选择:类似于
var selection = svg.append("g").attr("transform", "translate(200,200)"). selectAll("text").data(d3.range(numberOfSegments)).enter() var label = selection.append("text") .attr("transform", function (d) { return "translate(" + pos.centroid(d) + ")"; }) .attr("text-anchor", "middle") .text(function (d) { return d * degrees + "°"; });
和一个演示(标签的定位可以使用一些工作,但这应该让你开始)
var margin = { top: 10, right: 50, bottom: 10, left: 50 }, width = 300, r = width / 2, labelr = r + 20, outerRadius = 150, innerRadius = outerRadius - 30; numberOfSegments = 12; radians = (Math.PI * 2) / numberOfSegments; degrees = 360 / numberOfSegments; var svg = d3.select("body").append("svg") .attr("width", width + margin.left + margin.right) .attr("height", 530); for (var j = 0; j < 5; j++) { var arc = d3.svg.arc() .innerRadius(innerRadius - j * 30) .outerRadius(outerRadius - j * 30) .startAngle(function (d, i) { return radians * i }).endAngle(function (d, i) { return radians * (i + 1) }); var myGroup = svg.append("g") .attr("transform", "translate(200,200)") .attr("class", "arcgroup") .selectAll("path").data(d3.range(numberOfSegments)) .enter().append("path") .attr("class", "seg" + j + "") .attr("d", arc) .attr("fill", function (d, i) { return d3.hsl(i * degrees, 1 - 0.2 * j, 0.5) }); } var pos = d3.svg.arc() .innerRadius(innerRadius+30) .outerRadius(outerRadius+30) .startAngle(function (d) { return radians * d }).endAngle(function (d) { return radians * (d + 1) }); var selection = svg.append("g").attr("transform", "translate(200,200)"). selectAll("text").data(d3.range(numberOfSegments)).enter() var label = selection.append("text") .attr("transform", function (d) { return "translate(" + pos.centroid(d) + ")"; }) .attr("text-anchor", "middle") .text(function (d) { return d * degrees + "°"; });
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
You're working on the svg without a selection : you're only appending a single element without any datum attached, that's why
d=undefined
andi=0
in yourtransform
function for example.Use a selection like you do in your group creations : something like
var selection = svg.append("g").attr("transform", "translate(200,200)"). selectAll("text").data(d3.range(numberOfSegments)).enter() var label = selection.append("text") .attr("transform", function (d) { return "translate(" + pos.centroid(d) + ")"; }) .attr("text-anchor", "middle") .text(function (d) { return d * degrees + "°"; });
And a demo (the labels' positioning could use some work but that should get you started)
var margin = { top: 10, right: 50, bottom: 10, left: 50 }, width = 300, r = width / 2, labelr = r + 20, outerRadius = 150, innerRadius = outerRadius - 30; numberOfSegments = 12; radians = (Math.PI * 2) / numberOfSegments; degrees = 360 / numberOfSegments; var svg = d3.select("body").append("svg") .attr("width", width + margin.left + margin.right) .attr("height", 530); for (var j = 0; j < 5; j++) { var arc = d3.svg.arc() .innerRadius(innerRadius - j * 30) .outerRadius(outerRadius - j * 30) .startAngle(function (d, i) { return radians * i }).endAngle(function (d, i) { return radians * (i + 1) }); var myGroup = svg.append("g") .attr("transform", "translate(200,200)") .attr("class", "arcgroup") .selectAll("path").data(d3.range(numberOfSegments)) .enter().append("path") .attr("class", "seg" + j + "") .attr("d", arc) .attr("fill", function (d, i) { return d3.hsl(i * degrees, 1 - 0.2 * j, 0.5) }); } var pos = d3.svg.arc() .innerRadius(innerRadius+30) .outerRadius(outerRadius+30) .startAngle(function (d) { return radians * d }).endAngle(function (d) { return radians * (d + 1) }); var selection = svg.append("g").attr("transform", "translate(200,200)"). selectAll("text").data(d3.range(numberOfSegments)).enter() var label = selection.append("text") .attr("transform", function (d) { return "translate(" + pos.centroid(d) + ")"; }) .attr("text-anchor", "middle") .text(function (d) { return d * degrees + "°"; });
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
相关问答
更多-
我可以解决这个问题 - 用三角函数:)。 见小提琴: http : //jsfiddle.net/nrabinowitz/GQDUS/ 基本上,调用arc.centroid(d)返回一个[x,y]数组。 您可以使用勾股定理来计算斜边,即从馅饼中心到圆弧中心的线的长度。 然后,您可以使用x/h * desiredLabelRadius和y/h * desiredLabelRadius计算您的标签锚点所需的x,y : .attr("transform", function(d) { var c = ar ...
-
text-anchor属性按照预期在D3创建的svg元素上工作。 但是,您需要将text和circle到通用的g元素中,以确保text和circle彼此对中。 为此,您可以将您的nodes变量更改为: var nodes = svg.append("g") .attr("class", "nodes") .selectAll("circle") .data(dataset) .enter() // ...
-
要将它放在一个元素中,例如,而不是 ,您只需要将要附加svg的选择替换为要放置图形的元素的选择器。 而不是 var svg = d3.select("body") .append("svg") .attr("width", w) .attr("height", h); 你可以做: var svg = d3.select("#container") .append("svg") ...你正在使用没有选择的svg:你只是附加了一个没有附加任何数据的单个元素,这就是为什么d=undefined而你在transform函数中i=0的例子。 像在团队创作中一样使用选择:类似于 var selection = svg.append("g").attr("transform", "translate(200,200)"). selectAll("text").data(d3.range(numberOfSegments)).enter() var label = selection.app ...
D3.js中弧的径向渐变(Radial gradients of arcs in D3.js)[2022-10-12]
是的,您可以使用radialGradient执行此radialGradient 。 这里的例子。 Yes, you can do this with a radialGradient. Example here.d3.js时间弧应用(d3.js Time arcs app)[2022-05-19]
*最新代码*持续时间表 - jsfiddle.net/NYEaX/393 章节图 - jsfiddle.net/NYEaX/394 我现在已经在此基础上处理日期并弥补数据差距 - http://jsfiddle.net/NYEaX/363/ 因此,我们可以说这是用来显示会话数据或人的事件日历。 { startTime: "1/3/2014 11:00:00", endTime: "2/3/2014 11:00:00" }, { startTime: "6/3/2014 11:00:00", ...d3.js向饼图添加元素(d3.js Adding elements to pie chart)[2023-06-21]
我已经找到了解决方案! 我错过了一个变换,找到了出现在馅饼中的新弧的中心。 我也没有选择合适的元素。 例如:selectAll('。labelText')错误。 您最好使selectAll('text')输入新数据。 谢谢你的所有答案! I have already found the solution! I missed a transform to locate the center for new arcs appearing in the pie. Also I was not selecting ...就这样, ... arcGroup.append("path") .filter(function(d) { // You're Not restricted to the "filter" function var innerRadius = d.innerRadius()(d); var outerRadius = d.outerRadius()(d); }) .attr("d", arc) ... Just like that ...你应该把关于嵌套选择的博客文章读一读; 我相信它会解释你正在尝试做什么。 这是要点。 向选择中添加数据时,将选择分配给变量: var g = data_group.selectAll("g.group") .data(nodes.filter(function(d) { /* stuff */ })); 这样,您可以对其执行子选择,这将接收绑定到您的g选择的数据的单个元素。 您可以使用它来添加弧和文本: g.enter().append('group') // Question: Are you ...这是因为您没有将脚本标记放在正确的位置。 解决方案#1 只需尝试将脚本lib移动到body的底部: ... // try import ...相关文章
更多- 什么是Spring Cloud
- Spring MVC 3 深入总结
- Spring Roo 简介,第 1 部分: 从源代码构建
- Spring MVC文件上传
- Spring Boot CLI快速入门程序
- Spring Data: a new perspective of data operations
- 精通Spring
- 什么是Spring boot
- 快速了解Spring Boot
- tomcat中搭建solr Cloud、日志、多Core以及常见问题
最新问答
更多- h2元素推动其他h2和div。(h2 element pushing other h2 and div down. two divs, two headers, and they're wrapped within a parent div)
- 创建一个功能(Create a function)
- 我投了份简历,是电脑编程方面的学徒,面试时说要培训三个月,前面
- PDO语句不显示获取的结果(PDOstatement not displaying fetched results)
- Qt冻结循环的原因?(Qt freezing cause of the loop?)
- TableView重复youtube-api结果(TableView Repeating youtube-api result)
- 如何使用自由职业者帐户登录我的php网站?(How can I login into my php website using freelancer account? [closed])
- SQL Server 2014版本支持的最大数据库数(Maximum number of databases supported by SQL Server 2014 editions)
- 我如何获得DynamicJasper 3.1.2(或更高版本)的Maven仓库?(How do I get the maven repository for DynamicJasper 3.1.2 (or higher)?)
- 以编程方式创建UITableView(Creating a UITableView Programmatically)
- 如何打破按钮上的生命周期循环(How to break do-while loop on button)
- C#使用EF访问MVC上的部分类的自定义属性(C# access custom attributes of a partial class on MVC with EF)
- 如何获得facebook app的publish_stream权限?(How to get publish_stream permissions for facebook app?)
- 如何防止调用冗余函数的postgres视图(how to prevent postgres views calling redundant functions)
- Sql Server在欧洲获取当前日期时间(Sql Server get current date time in Europe)
- 设置kotlin扩展名(Setting a kotlin extension)
- 如何并排放置两个元件?(How to position two elements side by side?)
- 如何在vim中启用python3?(How to enable python3 in vim?)
- 在MySQL和/或多列中使用多个表用于Rails应用程序(Using multiple tables in MySQL and/or multiple columns for a Rails application)
- 如何隐藏谷歌地图上的登录按钮?(How to hide the Sign in button from Google maps?)
- Mysql左连接旋转90°表(Mysql Left join rotate 90° table)
- dedecms如何安装?
- 在哪儿学计算机最好?
- 学php哪个的书 最好,本人菜鸟
- 触摸时不要突出显示表格视图行(Do not highlight table view row when touched)
- 如何覆盖错误堆栈getter(How to override Error stack getter)
- 带有ImageMagick和许多图像的GIF动画(GIF animation with ImageMagick and many images)
- USSD INTERFACE - > java web应用程序通信(USSD INTERFACE -> java web app communication)
- 电脑高中毕业学习去哪里培训
- 正则表达式验证SMTP响应(Regex to validate SMTP Responses)