老早之前就开始了微服务的学习,借鉴了很多的文档,感谢前辈们的贡献,让我们能够快速成长,现开始整理一下微服务学习的过程,望对初学者能够有所帮助。
很多博客都写了一场串的微服务理论知识,自己不写一点感觉真的是,空、空、空、如野了。。。象征性的找了一些别人写的理论知识贴一点点,更多理论知识请查阅其他大神的资料。
Spring boot的优点
轻松创建独立的Spring应用程序。
内嵌Tomcat、jetty等web容器,不需要部署WAR文件。
提供一系列的“starter” 来简化的Maven配置。
开箱即用,尽可能自动配置Spring。
下面正式开始干货,干货才是王道,不扯犊子了:
注:本文分别从 eclipse 以及 idea 两种开发工具进行微服务的基础搭建,总有一个适合你;
一:idea版本:
1、创建项目:
1.1:点击file>new>project>Spring Initializr 然后选择sdk(即jdk版本),点击next
1.2:配置maven信息
1.3:选择项目类型:eureka server,然后next>finish
1.4:idea直接创建的项目会加载最新springboot的版本,为了避免版本冲突,可以使用下面的pom.xml配置:
<?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>
http://www.chem17.com/Product/detail/30064559.html
<groupId>com.example</groupId>
<artifactId>md-eureka</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>md-eureka</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.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>
</properties>
<dependencies>
<!--eureka server -->
<dependency>
https://tieba.baidu.com/p/5823807858
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
<!-- spring boot test -->
<dependency>
https://tieba.baidu.com/p/5823810338
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
https://tieba.baidu.com/p/5823813513
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
https://tieba.baidu.com/p/5823817041
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.RC1</version>
https://tieba.baidu.com/p/5823817879
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
https://tieba.baidu.com/p/5823820381
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
https://tieba.baidu.com/p/5823824205
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-milestones</id>
https://tieba.baidu.com/p/5823828875
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
https://tieba.baidu.com/p/5823829350
<enabled>false</enabled>
</snapshots>
</repository>
https://tieba.baidu.com/p/5823829570
</repositories>
</project>
1.5:application.yml配置:
port:配置启动的端口 hostname:服务注册中心实例的主机名
eviction-interval-timer-in-ms: 50000 -- eureka server清理无效 节点的时间间隔,默认60000毫秒,即60秒
registerWithEureka --是否向服务注册中心注册自己
fetchRegistry--客户端是否获取eureka服务器注册表上的注册信息
defaultZone--服务注册中心的配置内容,指定服务注册中心的位置
个别其他参数配置含义可参见:https://blog.csdn.net/qq_24084925/article/details/78845984
server:
port: 8861
eureka:
instance:
hostname: localhost
server:
eviction-interval-timer-in-ms: 50000
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
1.6:启动主类:通过@EnableEurekaServer 和 @SpringBootApplication注解来实现启动类。
package com.example.mdeureka;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication
@EnableEurekaServer
public class MdEurekaApplication {
public static void main(String[] args) {
SpringApplication.run(MdEurekaApplication.class, args);
}
}
1.7:项目结构:
1.8:启动项目:直接在主类上鼠标右键,选择run或者debug启动
2:浏览器输入localhost:8861即可看见启动的注册中心的页面,至此表示成功启动注册中心;