IDEA 微服务单项目多端口启动

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
简介: IDEA 微服务单项目多端口启动

网上教程具体如下图


image.png


注册中心,开了N个端口就创建了N个Module


还有的就是各种创建eureka然后互相注册,对于新手来说是很大的误解


以及在client去注册的时候,注册中心要写几个


下面开始叙述并实际验证下


准备工作


当前的技术以及工具


  • IDEA2018.3
  • JDK1.8
  • Gradle 5.0
  • tomcat 7


需要你对基本的微服务有一点点的了解,如果不知道什么是微服务,百度基本学习下也不会花很长时间


首先创建公共依赖管理


image.png


一步一步创建一个Gradle的初始项目就可以了


配置文件


gradle.perproties 无此文件自行创建


  1. ## dependency versions.
  2. springBootVersion=2.1.2.RELEASE
  3. springCloudVersion=Finchley.RELEASE
  4. ### docker configuration
  5. #gradle docker plugin version
  6. transmodeGradleDockerVersion=1.2
  7. #This configuration is for docker container environment to access the local machine host,in Chinese is "宿主机" ip.
  8. hostMachineIp=127.0.0.1


build.gradle


  1. buildscript {
  2.    repositories {
  3.        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
  4.        maven { url "https://oss.sonatype.org/content/groups/public/" }
  5.        maven { url "https://repo.spring.io/libs-milestone/" }
  6.        jcenter()
  7.        mavenCentral()
  8.    }
  9.    dependencies {
  10.        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
  11.    }
  12. }

  13. allprojects {
  14.    apply plugin: 'java'
  15.    apply plugin: 'org.springframework.boot'
  16.    apply plugin: 'io.spring.dependency-management'

  17.    group = 'store.zabbix'
  18.    version = '0.0.1-SNAPSHOT'
  19.    sourceCompatibility = '1.8'


  20.    repositories {
  21.        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
  22.        maven { url "https://oss.sonatype.org/content/groups/public/" }
  23.        maven { url "https://repo.spring.io/libs-milestone/" }
  24.        jcenter()
  25.        mavenCentral()
  26.    }

  27.    dependencies {
  28.        implementation 'org.springframework.boot:spring-boot-starter-web'
  29.        testImplementation "org.springframework.boot:spring-boot-starter-test"
  30.    }


  31.    dependencyManagement {
  32.        imports {
  33.            mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
  34.        }
  35.    }
  36. }


setting.gradle


  1. rootProject.name = 'springcloud-tools'
  2. def dir = newFile(settingsDir.toString())
  3. def projects = newHashSet()
  4. def projectSymbol = File.separator + 'src'

  5. dir.eachDirRecurse { subDir ->
  6.    def subDirName = subDir.canonicalPath
  7.    def isSubProject = true
  8.    if (subDirName.endsWith(projectSymbol)) {
  9.        for (String projectDir in projects) {
  10.            if (subDirName.startsWith(projectDir)) {
  11.                isSubProject = false
  12.                break
  13.            }
  14.        }
  15.        if (isSubProject) {
  16.            projects << subDirName
  17.            def lastIndex = subDirName.lastIndexOf(projectSymbol)
  18.            def gradleModulePath = subDirName.substring(dir.canonicalPath.length(), lastIndex).replace(File.separator, '')
  19.            println "include " + gradleModulePath
  20.            include gradleModulePath
  21.        }
  22.    }
  23. }
  24. //include('tools-eureka')


至此我们创建了一个新的项目,结构图


image.png



红色圈内的后续创建


我们开始创建eureka-server


build.gradle


其依赖已在父类公共管理


这里只需要声明现在所需要的依赖即可


image.png


image.png


image.png


image.png


image.png


image.png


第一次启动启动类之后会存在一个启动配置


如上图一样去复制一个,然后在options里指定一下你需要启动的项目资源配置文件


  1. -Dspring.profiles.active=server2


启动配置的名字可以自定义


建议带上端口


image.png


上图得知我们已经启动了3个端口,并互相注册了


image.png



已经相互注册成功了


接下来我们把注释的开启


  1. # 表示是否注册自身到eureka服务器
  2. # register-with-eureka: false
  3. # 是否从eureka上获取注册信息
  4. # fetch-registry: false  


修改后的application.yml


image.png


之后把三个端口的都重启下


image.png


可以看到不会注册自己的,我想基础区别也在这个界面了


启动顺序 eureka-server => eureka-client


启动eureka-client


image.png


image.png


看到这里我们访问的是http://127.0.0.1:8002/


虽然我们配置的是8000端口


但还是在8002端口注册了,也就是这也是eureka互相注册之后达到的高可用的效果,集群,我们可以把8000和8001端口宕掉,不影响使用


提示


  1. 上面的启动配置是需要启动几个端口就要配置几个


  1. 项目跑起来的时候有时候会抛些错误,试着重启下,访问下如果正常就可以 ,一般就是超时或者自己寻找不到注册自己的服务中心


  1. VM options:-Dspring.profiles.active=xxx,启动类这里配置的是你application-xxx.yml名字里的xxx,-D是用java默认原生属性 3.除了上面那样指定配置文件,还可以用Program arguments来指定


image.png


源码地址:https://github.com/cuifuan/springcloud-tools


本文参考


https://github.com/happyyangyuan/springcloud-quickstarthttp://www.cnblogs.com/hfultrastrong/p/8547236.html

相关文章
|
16天前
|
Java
使用IDEA创建项目运行我的第一个JAVA文件输出Helloword
本文介绍了如何使用IDEA(IntelliJ IDEA)创建一个新的Java项目,并运行一个简单的Java程序输出"Hello Word"。文章详细展示了创建项目的步骤,包括选择JDK版本、设置项目名称和路径、创建包和类,以及编写和运行代码。最后,还展示了如何通过IDEA的运行功能来执行程序并查看输出结果。
40 4
使用IDEA创建项目运行我的第一个JAVA文件输出Helloword
|
2月前
|
Java Maven
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
这篇文章是一份关于Maven的安装和配置指南,包括下载、环境变量设置、配置文件修改、IDEA集成Maven以及解决jar包下载问题的方法。
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
|
16天前
|
消息中间件 监控 开发工具
微服务(三)-实现自动刷新配置(不重启项目情况下)
微服务(三)-实现自动刷新配置(不重启项目情况下)
|
2月前
|
Java Maven
解决idea每次新建maven项目都需要重新配置maven的问题
解决idea每次新建maven项目都需要重新配置maven的问题
104 1
|
3月前
|
Java Maven
idea构建grpc项目
idea构建grpc项目
78 0
|
2天前
IDEA创建项目失败提示 Failed to create directory 或 “项目初始化失败”
文章解释了IDEA创建项目失败提示“Failed to create directory”或“项目初始化失败”的原因通常是由于IDEA对目标文件夹没有操作权限,并建议更换一个有权限的文件夹来创建项目。
18 1
IDEA创建项目失败提示 Failed to create directory 或 “项目初始化失败”
|
2天前
|
Java Maven Spring
如何在idea中创建Springboot项目? 手把手带你创建Springboot项目,稳!
文章详细介绍了在IDEA中创建Spring Boot项目的过程,包括选择Spring Initializr、配置项目属性、选择Spring Boot版本、导入依赖、等待依赖下载以及项目结构简介。
15 1
|
14天前
|
网络安全 开发工具 git
使用Idea提交项目到远程仓库
本文介绍了如何在Idea中创建Git本地仓库、提交更改,并推送代码到Gitee远程仓库的步骤,包括创建本地仓库、提交更改、复制远程仓库地址、配置远程仓库以及推送代码到远程仓库的过程。
使用Idea提交项目到远程仓库
|
2月前
|
Java Android开发
IDEA设置项目编码格式【修改为GBK 或 UTF-8】
这篇文章介绍了在IntelliJ IDEA中如何设置项目编码格式,包括将项目编码修改为GBK或UTF-8的详细步骤和图解。
IDEA设置项目编码格式【修改为GBK 或 UTF-8】
|
2月前
|
缓存 Java 应用服务中间件
支付宝 网站支付Demo 案例【沙箱环境】IDEA如何配置启动Eclipse项目
该博客文章讲述了如何在IntelliJ IDEA中配置和启动一个使用Eclipse开发的支付宝网站支付Demo案例。文章详细记录了从导入项目到配置Tomcat,再到解决启动过程中遇到的问题的步骤。作者还分享了在IDEA中遇到的一些常见问题,如项目配置、依赖库添加、编码问题等,并提供了相应的解决方案。此外,文章还提供了支付效果的展示以及一些支付宝案例文档中需要修改的参数信息。
支付宝 网站支付Demo 案例【沙箱环境】IDEA如何配置启动Eclipse项目