SpringCloud 注册服务

Eureka发布以后,一个空盒子肯定不行,体现不出价值来,任何系统都需要有用户权限管理,我们先简单创建这样的一个服务注册到Eureka中,将来其他系统如果需要类似服务,只需要从Eureka中找寻该服务即可。

  1. 新建一个module,过程跟创建eureka类似,需要注意的是在选择dependencies的时候,选择Eureka Discovery。

输入图片说明

  1. pom文件内容
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.liusx</groupId>
	<artifactId>auth</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>auth</name>
	<description>Auth project for Spring Boot</description>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.10.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
		<spring-cloud.version>Edgware.SR1</spring-cloud.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>${spring-cloud.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>


</project>
  1. 修改配置文件application.yml,设置端口为8081,系统访问前缀为/auth,尤其要注意register-with-eureka=true,这个表示将该服务注册到Eureka Server中
spring:
  application:
    name: liusx-servers-auth
server:
  context-path: /auth
  port: 8081

eureka:
  instance:
    hostname: 127.0.0.1
    prefer-ip-address: true
    instance-id: ${spring.cloud.client.ipAddress}:${server.port}
  client:
    register-with-eureka: true
    fetch-registry: true
    serviceUrl:
      defaultZone: http://user:123456@${eureka.instance.hostname}:8761/eureka/  #注册 中心已经开启认证
  1. 启动类,看网上有的例子中注明,这里要加注解@EnableEurekaClient,但这里没有加,暂时还没发现有影响功能使用的地方,等找时间详细研究下这个注解的意思,有了解的朋友也可以留言互相交流下。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class AuthApplication {

	public static void main(String[] args) {
		SpringApplication.run(AuthApplication.class, args);
	}
}

  1. 工程创建好以后,接下来我们实现一个简单的登录接口,通过地址 http://localhost:8081/auth/login 可以访问该接口,接口具体内容先不做,先固定返回一个字符串,证明该接口可用。
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class AccountController {

    @PostMapping("/login")
    public String login(String userName, String password) {
        return "登录成功8081,用户名 = " + userName + ", 密码 = " + password;
    }
}

  1. 截止到目前,服务注册已经做完了,启动工程,在启动之前,上一节中的eureka服务也必须要启动,否则启动会报错,启动成功后,访问eureka服务http://localhost:8761/ ,可以看到我们的服务已经注册进来了。

输入图片说明

  1. 服务已经注册好了,下一节介绍下怎么来访问这个服务,当然访问这个服务的时候,是通过eureka中来发现,至于我们刚做的LIUSX-SERVERS-AUTH这个服务,我们需要关心的是其对外提供的服务接口是什么,至于部署的端口、url地址,不是我们关心的

猜你喜欢

转载自my.oschina.net/u/3778926/blog/1619616