springcloud - microservice - simple 第二战

1.服务发现与注册

在springcloud中有几个服务发现组件。

客户端组件发现:Eureka、Zk、ETCD

服务端发现组件:Consul、Nginx

springcloud相对应Eureka组件完整。

2.Eureka:

Eureka来自生产环境。

springcloud相对于Eureka支持较好。

Eureka说明:https://github.com/Netflix/eureka/wiki

SpringCloud:http://projects.spring.io/spring-cloud/

Eureka Server 提供了服务注册,各个节点启动后,会在Eureka Server中进行注册,这样Eureka Server中会存储所有可用的服务节点信息,服务节点的信息可以在界面中看到。

====================================================================

建立Eureka项目

1.项目的pom.xml文件

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

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.4.2.RELEASE</version>
	</parent>
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>Camden.SR3</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>

2.子项目的pom.xml文件

 <properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

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

3.子项目是使用springboot进行配置,所以需要配置文件application.yml

配置为:

server: #Eureka的服务端口
  port: 8761

security: #Eureka的安全认证中心,开启
  basic:
    enabled: true
  user:#Eureka的用户名和密码
    name: admin
    password: admin
eureka:
  client:#Eureka是否进行联系其他服务
    register-with-eureka: false #Eureka默认服务也是一个客户端,这个是否把自己当成一个客户端,选择false不把自己当成客户端
    fetch-registry: false #同上结合
    service-url:#访问Eureka的地址
      defaulttZone: http://localhost:8761/eureka

4.进行启动:

package com.simplesoft.cloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApp {
	
	public static void main(String[] args) {
		SpringApplication.run(EurekaServerApp.class,args);
	}
	
}

访问地址为:

http://localhost:8761/eureka

用户名和密码为自己设置的

项目结构::


访问页面::


5.注册到Eureka上面的服务:

有两种方式进行将类暴露在Eureka服务上

@EnableEurekaClient【用于Eureka】和 @EnableDiscovryClient【可以发现其他的服务发现工具,如:zk】

5.1.在客户端application.yml文件中添加

eureka:
  client:
    serviceUrl:
      defaultZone:  http://localhost:8761/eureka/ #配置访问Eureka的地址  8761为Eureka的默认端口
  instances:
    prefer-ip-address:  true  #配置IP默认为false,不显示IP地址

在上面的红框框中,Application:代表的是应用名称,Status:代表的是:主机名+应用名称+端口号

通过以下代码可以知道Eureka的Client中的IP和端口:

@GetMapping("/instance-info")
	public String serviceInstance() {
		InstanceInfo serverFromEureka = this.eurekaClient.getNextServerFromEureka("MICRO-SERVICE-USER", false);
		return serverFromEureka.getHomePageUrl();
	}

还可以使用如下方式进行获取:

@GetMapping("/service-info")
	public ServiceInstance serviceInstance() {
		ServiceInstance ServiceInstance = this.discoveryClient.getLocalServiceInstance();
		return ServiceInstance;
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值