目录:
springcloud费话之Eureka服务访问(restTemplate)
springcloud费话之Eureka接口调用(feign)
springcloud费话之断路器(hystrix in feign)
springcloud的配置中心,即config-server的端口只能之8888的问题比较恶心
原因在于spring代码中写死了每一个获取配置的客户端,都是向8888请求,因此问题出在客户端上
但是服务端也要进行一定程度的修改
思路:
修改config服务端端口,改为非8888端口
修改config客户端获取配置的方式,从固定的ip和端口,修改为通过eureka注册中心,通过注册的名称来获取
将config的服务端添加进eureka注册中心
实际代码如下:
修改config-server的配置如下:
server:
port: 9999
tomcat:
max-threads: 10000
max-connections: 20000
eureka:
client:
serviceUrl:
defaultZone: http://localhost:10086/eureka/
spring:
application:
name: config-server
profiles:
active: subversion
cloud:
config:
server:
svn:
uri: https://xxxxxx/svn/liuyuhang_FM/configCenter/
username: liuyuhang
password: xxxxxx
search-paths: null
default-label: testConfig
basedir: /data
修改config-client配置如下:
server:
port: 8889
tomcat:
max-threads: 10000
max-connections: 20000
spring:
application:
name: config-client
cloud:
config:
discovery:
enabled: true
service-id: config-server
profiles:
active: dev
eureka:
client:
serviceUrl:
defaultZone: http://localhost:10086/eureka/
注意spring的application的name一定要正确
注意config-client中的discovery中,要enable为true,表示可以被发现
然后指定service-id,来代替之前的uri配置即可
因为config-server中添加了eureka作为客户端,pom需要引入eureka的内容,节选如下:
<!-- eureka server的jar, 作为client也需要 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <!-- eureka client的jar --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
添加了以后,config-server还需要对启动入口添加eureka的client的注解,节选代码如下:
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class) @EnableEurekaClient @EnableConfigServer public class ConfigApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(ConfigApplication.class, args); } }
以上~