您的位置:首页 > 编程语言 > Java开发

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

服务与服务之间的调用:服务发现

一个项目(程序)中的每个服务都可以当做独立的一部分,可以单独运行和使用,

在多台服务器上部署相同的服务(服务名都相同)

服务启动后自动注册在注册中心,由注册中心来决定调用那台机器上的服务(负载均衡策略)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: