api
里面就写了一个实体类 引入了之后大家都能用
provider
里面写了三层业务
配置类的标识
@EnableEurekaClient @MapperScan("com.mengxuegu.springcloud.mapper")
用了mybatice 还有它的配置文件
引入
<!-- 导入Eureka客户端的依赖,将 微服务提供者 注册进 Eureka -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
yml配置:
eureka:
client:
registerWithEureka: true # 服务注册开关
fetchRegistry: true # 服务发现开关
serviceUrl: # 注册到哪一个Eureka Server服务注册中心,多个中间用逗号分隔
#defaultZone: http://localhost:6001/eureka
defaultZone: http://eureka6001.com:6001/eureka,http://eureka6002.com:6002/eureka
instance:
instanceId: ${spring.application.name}:${server.port} # 等价于microservice-product:8001
prefer-ip-address: true #访问路径就会显示成IP地址
配了两个注册中心
注册中心
@EnableEurekaServer //标识一个Eureka Server 服务注册中心
启动类上标识
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
yml
server:
port: 6001 # 服务端口
eureka:
instance:
hostname: eureka6001.com # eureka服务端的实例名称
client:
registerWithEureka: false # 服务注册,false表示不将自已注册到Eureka服务中
fetchRegistry: false # 服务发现,false表示自己不从Eureka服务中获取注册信息
serviceUrl: # Eureka客户端与Eureka服务端的交互地址,集群版配置对方的地址,单机版配置自己(如果不配置则默认本机8761端口)
#defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
#集群版
defaultZone: http://eureka6002.com:6002/eureka/
server:
enable-self-preservation: false # 禁用自我保护机制
另外一个注册中心
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
yml
port: 6002 # 服务端口
eureka:
instance:
hostname: eureka6002.com # eureka服务端的实例名称
client:
registerWithEureka: false # 服务注册,false表示不将自已注册到Eureka服务中
fetchRegistry: false # 服务发现,false表示自己不从Eureka服务中获取注册信息
serviceUrl: # Eureka客户端与Eureka服务端的交互地址,集群版配置对方的地址,单机版配置自己(如果不配置则默认本机8761端口)
#defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
#集群版
defaultZone: http://eureka6001.com:6001/eureka/
server:
enable-self-preservation: false # 禁用自我保护机制
consumer
调用者@SpringBootApplication
没有特别的配置
不用注册
<dependency>
<groupId>com.nmid.springcloud</groupId>
<artifactId>api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
配置 reset
@Configuration //标识配置类
public class ConfigBean {
@Bean
public RestTemplate getRestTemplate() {
return new RestTemplate();
}
}
通过reset调用
@RestController
public class ProductController_Consumer {
private static final String REST_URL_PREFIX = "http://localhost:8001";
@Autowired
private RestTemplate restTemplate;
@RequestMapping(value = "/consumer/product/add")
public boolean add(Product product) {
return restTemplate.postForObject(REST_URL_PREFIX + "/product/add", product, Boolean.class);
}
@RequestMapping(value = "/consumer/product/get/{id}")
public Product get(@PathVariable("id") Long id) {
return restTemplate.getForObject(REST_URL_PREFIX + "/product/get/" + id, Product.class);
}
@RequestMapping(value = "/consumer/product/list")
public List<Product> list() {
return restTemplate.getForObject(REST_URL_PREFIX + "/product/list", List.class);
}
开启两个 euraka
和两个微服务 cosumer 和provider
然后测试
http://localhost/consumer/product/list
网友评论