springcloud-netfilx(Eureka)服务注册
2018-01-05 11:05
561 查看
一. Eureka server
1.maven(war)项目 springcloud-eurekaserver
pom.xml添加依赖: spring-cloud-starter-eureka-server
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
</dependencies>
2.src/main/resources目录新建application.yml
文件配置:
server:
port: 8761
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
3.启动类Main 添加注解:@EnableEurekaServer
@SpringBootApplication
@EnableEurekaServer
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class, args);
}
}
运行程序:浏览器访问 localhost:8761
二.Eureka Client
1.新建maven(war)项目 springboot-sendemail
pom.xml添加依赖:pring-cloud-starter-eureka
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- mail:发送邮件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<!-- eureka:服务注册 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
</dependencies>
2.src/main/resources目录新建application.properties
文件配置:
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/
#服务名不能带"_",多个相同的服务的服务名相同
spring.application.name=sendmail
server.port=8081
#下面的是发送邮件的配置
spring.mail.port=25
spring.mail.host=smtp.qq.com
spring.mail.username=邮箱名
spring.mail.password=密码/授权码
#qq邮箱配置
spring.mail.properties.mail.smtp.starttls.enable=true
3.启动类Main 添加注解:@EnableEurekaClient /EnableDiscoveryClient
@SpringBootApplication
@EnableEurekaClient
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class, args);
}
}
4.新建contrller类:EmailController
@RestController
public class EmailController {
@Autowired
private JavaMailSender jms;
@PostMapping("/psend")
public String sendMail(@RequestBody Map<String,Object> map){
SimpleMailMessage mailMessage = new SimpleMailMessage();
mailMessage.setFrom("邮件发送方的邮箱");
mailMessage.setTo(map.get("send_to").toString()); //邮件接收方的邮箱
mailMessage.setSubject(map.get("send_subject").toString()); //邮件主题
mailMessage.setText(map.get("send_content").toString()); //邮件内容
jms.send(mailMessage);
return "发送成功";
}
}
启动server,再运行8081端口的client,修改client的端口为8082再次运行
浏览器访问localhost:8761 即可查看注册的服务sendmail
SENDMAIL n/a (2)(2)
UP (2) - user:sendmail:8082 , user:sendmail:8081
服务与服务之间的调用:服务发现
一个项目(程序)中的每个服务都可以当做独立的一部分,可以单独运行和使用,
在多台服务器上部署相同的服务(服务名都相同)
服务启动后自动注册在注册中心,由注册中心来决定调用那台机器上的服务(负载均衡策略)
1.maven(war)项目 springcloud-eurekaserver
pom.xml添加依赖: spring-cloud-starter-eureka-server
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
</dependencies>
2.src/main/resources目录新建application.yml
文件配置:
server:
port: 8761
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
3.启动类Main 添加注解:@EnableEurekaServer
@SpringBootApplication
@EnableEurekaServer
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class, args);
}
}
运行程序:浏览器访问 localhost:8761
二.Eureka Client
1.新建maven(war)项目 springboot-sendemail
pom.xml添加依赖:pring-cloud-starter-eureka
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- mail:发送邮件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<!-- eureka:服务注册 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
</dependencies>
2.src/main/resources目录新建application.properties
文件配置:
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/
#服务名不能带"_",多个相同的服务的服务名相同
spring.application.name=sendmail
server.port=8081
#下面的是发送邮件的配置
spring.mail.port=25
spring.mail.host=smtp.qq.com
spring.mail.username=邮箱名
spring.mail.password=密码/授权码
#qq邮箱配置
spring.mail.properties.mail.smtp.starttls.enable=true
3.启动类Main 添加注解:@EnableEurekaClient /EnableDiscoveryClient
@SpringBootApplication
@EnableEurekaClient
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class, args);
}
}
4.新建contrller类:EmailController
@RestController
public class EmailController {
@Autowired
private JavaMailSender jms;
@PostMapping("/psend")
public String sendMail(@RequestBody Map<String,Object> map){
SimpleMailMessage mailMessage = new SimpleMailMessage();
mailMessage.setFrom("邮件发送方的邮箱");
mailMessage.setTo(map.get("send_to").toString()); //邮件接收方的邮箱
mailMessage.setSubject(map.get("send_subject").toString()); //邮件主题
mailMessage.setText(map.get("send_content").toString()); //邮件内容
jms.send(mailMessage);
return "发送成功";
}
}
启动server,再运行8081端口的client,修改client的端口为8082再次运行
浏览器访问localhost:8761 即可查看注册的服务sendmail
SENDMAIL n/a (2)(2)
UP (2) - user:sendmail:8082 , user:sendmail:8081
服务与服务之间的调用:服务发现
一个项目(程序)中的每个服务都可以当做独立的一部分,可以单独运行和使用,
在多台服务器上部署相同的服务(服务名都相同)
服务启动后自动注册在注册中心,由注册中心来决定调用那台机器上的服务(负载均衡策略)
相关文章推荐
- 【微服务架构】SpringCloud之Eureka(注册中心集群篇)(三)
- 【微服务架构】SpringCloud之Eureka(注册中心集群篇)(三)
- Spring Cloud构建微服务架构:Eureka服务注册与发现
- Spring Cloud Netflix Eureka组件服务注册及发现源码浅析
- Spring Cloud Eureka-服务注册、消费、断路
- Spring Cloud 学习笔记-Eureka 服务注册与发现
- Spring Cloud eureka 注册服务发现,访问管理页面是xml问题解决
- springcloud(第三篇)springcloud eureka 服务注册与发现
- 【Spring Cloud】Eureka服务注册中心搭建
- 【Spring Cloud】Eureka服务注册中心搭建
- SpringCloud——服务注册与发现Eureka以及注册源码解析
- Spring Cloud Eureka服务注册与发现
- Spring Cloud Eureka 使用 IP 地址进行服务注册
- SpringCloud——Eureka服务注册和发现
- springcloud(第三篇)springcloud eureka 服务注册与发现 *****
- Spring cloud Eureka服务注册及发现(二)创建注册服务
- springcloud-服务提供与注册Eureka
- Spring Cloud Netflix Eureka: 多网卡环境下Eureka服务注册IP选择问题
- Spring Cloud构建微服务架构:服务注册与发现(Eureka、Consul)【Dalston版】
- 【Spring Cloud】Eureka服务注册中心搭建