springboot2 springcloud Greenwich.SR3 构建微服务--1.eureka注册中心搭建
本一系列springcloud的文章主主要讲应用, 也会涉及到一些原理的讲解.写了几句自己这段时间看书,总结的微服务的东西送给你们 :道为源,源分多支为术,如龙生九子,九子各不同,然皆为龙也.凡物发必依其理,当知其源,勿学其术而不究其道,执其道而轻其术,可矣.道为源头,从源发可以发展出很多的形态就是术,就想龙生九子,九子各不同,但是他们的源头都是龙.需要掌握事物发展的根源...
本一系列springcloud的文章主主要讲应用, 也会涉及到一些原理的讲解.
写了几句自己这段时间看书,总结的微服务的东西送给你们 :
道为源,源分多支为术,如龙生九子,九子各不同,然皆为龙也.
凡物发必依其理,当知其源,勿学其术而不究其道,执其道而轻其术,可矣.
道为源头,从源发可以发展出很多的形态就是术,就想龙生九子,九子各不同,但是他们的源头都是龙.
需要掌握事物发展的根源, 知道背后的运行的原理,而不是却看一个一个的实现,把握住后面的原理,看或者看现今非常流行的东西都可以了.
本系列的微服务文章是基于目前最新的大版本 (2019年9月20日) ,具体为:
oracle jdk1.8
IntelliJ IDEA 2017.3.5 x64
最新的 springboot 2.1.8 GA
最新的 springcloud Greenwich.SR3 GA
采用此目前最新版本的所有的坑,我都会填一遍!!!!
注意事项, 把idea的所有配置文件的编码都改成utf-8 , 这个电脑上忘记改了, 结果,我又把一些中文注释又写了一遍!!!
所以以后尽量写英文的注释把, 这样切换编码就不担心乱码了,记住了
至于我们公司为什么采用微服务, 一部分原因是因为有的人需要绩效, 还有就是平台的改造, 做一个公司的大的基础技术平台,以后新的项目都依赖于此平台.
以前上海一家做p2p的公司, 当时还是一个整体的应用, 我没去之前他们每次更新都做的全局更新, 有时候修复了一个线上的bug, 还得全量更新, 完全是没必要去动那些没有问题的模块啊 . 这就是单体应用的一个痛点了, 还有应用的伸缩性, 隔离性, 微服务的出现解决了很多的问题. 所以用起来的.
其实目前市面上开源的注册中心很多,像zookeeper,macos ,都可以作为注册中心.而且nacos已经出了1.0的GA版本.可以试试哦.
不扯别的了.今天就是试试eureka好了. eureka 作为一个典型的客户端的注册中心 , 客户端拉取从注册中心拉取服务的信息.
1.eureka服务注册中心
a.新建springboot项目就是eureka-server, 添加eureka-server 的依赖 ,最后的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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>eureka-servser</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>eureka-servser</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.SR3</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</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>
b.在启动类上添加注册中心服务端的注解,
添加注解:@EnableEurekaServer, 启用eureka server注册中心
c.修改配置文件,对了,我用的是application.properties 配置文件, 没有使用yml配置文件, 因为那个看不习惯.
以后的spring.application.name 尽量不要带- 这次的坑我自己填了, 其实也还好, 不算什么坑.看团队的变成习惯吧
#应用端口号,8761是默认的端口号, 改不改你高兴就好
server.port=8761
#应用的名字
spring.application.name=eureka-server
#eureka的注册地址
eureka.client.service-url.defaultZone=http://localhost:8761/eureka
#eureka服务是否向自己注册,默认true.这里我们不想自己注册
eureka.client.register-with-eureka=false
d.启动springboot项目, 访问http://localhost:8761 , 就能看到eureka的界面了. 这里不截图了
2.新建一个客户端springboot项目 eureka-client, 向刚才启动的注册中心注册进去
新建完成后的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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>eureka-client</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>eureka-client</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.SR3</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</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>
在启动类上添加注解,标明是客户端
@EnableEurekaClient
修改配置文件,标明向哪个url进行注册.
修改配置文件:
#应用名字,在eureka中注册的名字
spring.application.name=eureka-client
#端口号
server.port=8861
#注册的url
eureka.client.eureka-server-u-r-l-context=http://localhost:8761/eureka
然后就可以启动eureka-client 项目了, 再次去刷新http://localhost:8761 就可以看到一个应用注册来了.
如果你启动的时候可能出现自动停止.
在pom中添加一个web的依赖, 上面的总pom已经加入了
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
恭喜 你就完成了微服务入门的第一步.
其实框架的使用都没什么难度, 难的是概念的理解, 以及原理的学习.框架多用几遍就会了, 没啥大不了.
还是不会就去查看springcloud 的官方文档, 详细的多.
所以多看看微服务的书, 比看什么框架要好很多.什么书, 看你自己了. 那种介绍框架怎么使用的书就不大看了.
整个代码地址是:
https://github.com/changhe626/micro-service
Java Framework,欢迎各位前来交流java相关
QQ群:965125360
更多推荐
所有评论(0)