我刚接触spring,尝试在两个微服务之间进行通信。我创建了四个项目Projectone
、ProjectTwo
、ProjectZuul
、Projecteureka
ProjectOne,ProjectTwo-微服务projectzuul-zuul Api gateway ProjectEureka-Eureka服务器
我试图从Projectone
调用aget方法到ProjectTwo
,但总是显示java.net.UnknownHostExceptionProjectTwo
ProjectOne文件
Application.Properties
#for refering in zuul
spring.application.name = projectone
#database configuration
spring.datasource.url= jdbc:postgresql://192.168.2.6:5432/cliff_test
spring.datasource.username=postgres
spring.datasource.password=password
spring.jpa.hibernate.ddl-auto=create-drop
#Eurekka server configuration
#eurekka client configuration
eureka.client.register-with-eureka = true
eureka.client.fetch-registry = true
// my port
server.port =4444
applicaion.yml
eureka:
client:
serviceUrl:
defaultZone: http://localhost:9999/eureka/
@RestController
public class TestController {
@Autowired
UserRepository mRepository;
@Autowired
private RestTemplate mRestTemplate;
@GetMapping(value = "/test/{username}/{lastname}")
public String create(@PathVariable String username,@PathVariable String lastname){
UserModel mModel = new UserModel(username,lastname);
mRepository.save(mModel);
String dataFromSecond = mRestTemplate.getForObject("http://projecttwo/test",String.class);
// String dataFromSecond = mRestTemplate.getForObject("http://projecttwo/test",String.class);
System.out.println("Data from :"+dataFromSecond);
return "hello world";
}
}
@EnableAutoConfiguration
@SpringBootApplication
@EnableEurekaClient
public class ProjectOneApplication {
public static void main(String[] args) {
SpringApplication.run(ProjectOneApplication.class, args);
}
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
spring.application.name = projecttwo
server.port = 2222
spring.datasource.url= jdbc:postgresql://192.168.2.6:5432/cliff_test
spring.datasource.username=postgres
spring.datasource.password=password
spring.jpa.hibernate.ddl-auto=create-drop
#eurekka client configuration
eureka.client.register-with-eureka = true
eureka.client.fetch-registry = true
eureka:client:serviceurl:defaultzone:http://localhost:9999/eureka/
TestController.java
@restcontroller公共类TestController{@getmapping(value=“/test”)公共字符串test(){system.out.println(“hellow call carrieved...........................................................
ProjectZuul文件
Application.Properties
eureka:
client:
serviceUrl:
defaultZone: http://localhost:9999/eureka/
zuul:
prefix: /api
routes:
projectoneservice:
path: /projectone/**
serviceId: projectone
zuulservice:
path: /projectzuul/**
serviceId: projectzuul
projecttwoservice:
path: /projecttwo/**
serviceId: projecttwo
尤里卡服务器
谢谢你的帮助。
我发现了我的问题并解决了
我的应用程序问题是projectone
主类中的bean初始化。
我在Bean初始化中添加了@loadbalance
注释。
@EnableAutoConfiguration
@SpringBootApplication
@EnableEurekaClient
public class ProjectOneApplication {
public static void main(String[] args) {
SpringApplication.run(ProjectOneApplication.class, args);
}
@LoadBalanced //adding this line solved the issue
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
Zuul 是 Netflix 开源的网关组件。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。Zuul 可以适当的对多个 Amazon Auto Scaling Groups 进行路由请求。 Zuul 包含多个组件: zuul-core zuul-simple-webapp zuul-netflix zuul-netflix-webapp
introduction zuul用来提供动态路由、监控、授权、安全、调度等等的边缘服务(edge service) ZuulFilter ZuulFilter是Zuul中核心组件,通过继承该抽象类,覆写几个关键方法达到自定义调度请求的作用,这里filter不是java web中的filter,不要混淆. new ZuulFilter() { @Override
我是SpringBoot(云)的新手,将从事一个新项目 我们的项目架构师设计了这样的新应用程序: 一个带有Angulle-2的前端Spring Boot应用程序(也是微服务)。 一个尤里卡服务器,其他微服务将连接到该服务器。 ZUUL代理服务器,它将连接到前端和镜像服务。 我需要单独的ZUUL代理服务器吗?我的意思是,使用与ZUUL服务器相同的前端应用程序的利弊是什么 MicorService-1
我有三个spring boot微服务,它们使用spring Eureka server和zuul作为网关。我有auth微服务,这是zuul网关,验证用户。我有另外两个服务在不同的端口运行。如果我通过zuul网关调用,我可以在jwt的帮助下保护这两个服务,但由于我知道两个微服务端口和url,我可以直接调用并获得响应,而不需要通过网关url。所以我如何保护这两个微服务。请帮助我分享两个微服务之间的安全
有人已经设置了Spring Boot 2 Release和sping-Cloud-starter-Netflix-zuul? 如果我在pom文件中添加此依赖项,则会出现运行时错误:。
我正面临使用Zuul和Ribbon的问题。我也在微服务注册中心使用尤里卡。 null 当我启动我的微服务生态系统并尝试使用ribbon-service API(zuulservice:8761/ribbon-service/)时,我得到以下错误: com.netflix.zuul.exception.zuulException:org.springframework.cloud.netflix.z