springboot2 springcloud Greenwich.SR3 构建微服务--1.eureka注册中心搭建

本文主要是介绍springboot2 springcloud Greenwich.SR3 构建微服务--1.eureka注册中心搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本一系列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

 

 

 

这篇关于springboot2 springcloud Greenwich.SR3 构建微服务--1.eureka注册中心搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/986269

相关文章

Spring事务传播机制最佳实践

《Spring事务传播机制最佳实践》Spring的事务传播机制为我们提供了优雅的解决方案,本文将带您深入理解这一机制,掌握不同场景下的最佳实践,感兴趣的朋友一起看看吧... 目录1. 什么是事务传播行为2. Spring支持的七种事务传播行为2.1 REQUIRED(默认)2.2 SUPPORTS2

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

Java进程异常故障定位及排查过程

《Java进程异常故障定位及排查过程》:本文主要介绍Java进程异常故障定位及排查过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、故障发现与初步判断1. 监控系统告警2. 日志初步分析二、核心排查工具与步骤1. 进程状态检查2. CPU 飙升问题3. 内存

java中新生代和老生代的关系说明

《java中新生代和老生代的关系说明》:本文主要介绍java中新生代和老生代的关系说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、内存区域划分新生代老年代二、对象生命周期与晋升流程三、新生代与老年代的协作机制1. 跨代引用处理2. 动态年龄判定3. 空间分

Java设计模式---迭代器模式(Iterator)解读

《Java设计模式---迭代器模式(Iterator)解读》:本文主要介绍Java设计模式---迭代器模式(Iterator),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录1、迭代器(Iterator)1.1、结构1.2、常用方法1.3、本质1、解耦集合与遍历逻辑2、统一

Java内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

深度解析Java DTO(最新推荐)

《深度解析JavaDTO(最新推荐)》DTO(DataTransferObject)是一种用于在不同层(如Controller层、Service层)之间传输数据的对象设计模式,其核心目的是封装数据,... 目录一、什么是DTO?DTO的核心特点:二、为什么需要DTO?(对比Entity)三、实际应用场景解析

Java 线程安全与 volatile与单例模式问题及解决方案

《Java线程安全与volatile与单例模式问题及解决方案》文章主要讲解线程安全问题的五个成因(调度随机、变量修改、非原子操作、内存可见性、指令重排序)及解决方案,强调使用volatile关键字... 目录什么是线程安全线程安全问题的产生与解决方案线程的调度是随机的多个线程对同一个变量进行修改线程的修改操

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1