微服务,将业务模块向下图1一样划分为了一个个服务。初期,服务间的调用我们可以使用RESTApi来通信,但到了后期,服务多了以后,还通过RESTApi访问其他服务,因为RESTApi使用ip+port来访问,服务的数量级上去,代码嵌入地址或者配置文件的方式都会造成管理上的不变。
图1
so,我们开始使用一种更为简单的方式注册中心(Eureka)来实现服务的互相调用,GO!
技术架构
网上有完整版的eureka架构图,这里我们不在赘述,以一个简单的架构图,来了解eureka的架构
图2
根据图2,我们可以知道eureka将参与者分为了
·服务发现者
·服务提供者
·服务消费者
首先,服务发现者即是服务端(Server),提供者和消费者是客户端(Client);
客户端将自己注册到服务端,服务端可以在其他服务需要客户端是将客户端返回;
好处:客户端和客户端之间,只需要知道彼此在服务端注册的名字,无论对方ip,port,内容更改 都不会受到影响;
开始实战
服务端
pom
<!-- 父模块信息 --> <parent> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-parent</artifactId> <version>Finchley.SR1</version> </parent> <!-- 引用jar --> <dependencies> <!-- cloud --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter</artifactId> </dependency> <!-- eureka server --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> </dependencies>