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

简介: 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

相关文章
|
Java Maven Android开发
微服务——SpringBoot使用归纳——Spring Boot开发环境搭建和项目启动
本文介绍了Spring Boot开发环境的搭建和项目启动流程。主要内容包括:jdk的配置(IDEA、STS/eclipse设置方法)、Spring Boot工程的构建方式(IDEA快速构建、官方构建工具start.spring.io使用)、maven配置(本地maven路径与阿里云镜像设置)以及编码配置(IDEA和eclipse中的编码设置)。通过这些步骤,帮助开发者顺利完成Spring Boot项目的初始化和运行准备。
1320 0
微服务——SpringBoot使用归纳——Spring Boot开发环境搭建和项目启动
|
Java 测试技术 微服务
微服务——SpringBoot使用归纳——Spring Boot中的项目属性配置——少量配置信息的情形
本课主要讲解Spring Boot项目中的属性配置方法。在实际开发中,测试与生产环境的配置往往不同,因此不应将配置信息硬编码在代码中,而应使用配置文件管理,如`application.yml`。例如,在微服务架构下,可通过配置文件设置调用其他服务的地址(如订单服务端口8002),并利用`@Value`注解在代码中读取这些配置值。这种方式使项目更灵活,便于后续修改和维护。
412 0
|
Java 微服务 Spring
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录——使用Logger在项目中打印日志
本文介绍了如何在项目中使用Logger打印日志。通过SLF4J和Logback,可设置不同日志级别(如DEBUG、INFO、WARN、ERROR)并支持占位符输出动态信息。示例代码展示了日志在控制器中的应用,说明了日志配置对问题排查的重要性。附课程源码下载链接供实践参考。
1481 0
|
Java 应用服务中间件 API
Servlet开发流程 (里面有Idea项目添加Tomcat依赖详细教程)
本文详细介绍了Servlet的开发流程,包括在IntelliJ IDEA中添加Tomcat依赖的详细教程。通过上述步骤,开发者可以快速搭建并运行一个基本的Servlet应用,理解并掌握Servlet的开发流程对于Java Web开发至关重要。希望本文能够帮助开发者顺利进行Servlet开发,提高工作效率。
1734 78
|
运维 网络安全 持续交付
IDEA+Docker 远程一键部署项目:技术干货分享
【10月更文挑战第4天】在现代软件开发中,快速、可靠、自动化的部署流程是提升开发效率和运维质量的关键。IDEA(IntelliJ IDEA)作为Java开发者首选的IDE,结合Docker这一轻量级容器化技术,能够实现远程一键部署项目,极大地简化了开发到生产的流程。今天,我将和大家分享这一组合在工作学习中的实际应用和技术干货。
1490 3
|
监控 测试技术 开发者
IDEA项目调试你都会用了么,快看看是否有你不知道的调试技巧
在IntelliJ IDEA中,熟练运用调试工具可显著提升开发效率。通过设置断点、单步执行、变量监控等功能,快速定位问题并优化代码性能。此外,掌握多线程调试、异常处理及远程调试技巧也至关重要。为提高效率,建议合理使用条件断点、快捷键与日志监控,同时不断学习总结经验。若觉得有用,别忘了点赞收藏!
IDEA项目调试你都会用了么,快看看是否有你不知道的调试技巧
|
IDE Java 开发工具
【Java基础-环境搭建-创建项目】IntelliJ IDEA创建Java项目的详细步骤
IntelliJ IDEA创建Java项目的图文详细步骤,手把手带你创建Java项目
2189 10
【Java基础-环境搭建-创建项目】IntelliJ IDEA创建Java项目的详细步骤
|
Java 应用服务中间件
多项目分接口:在同一Tomcat下使用不同的端口号访问不同的项目。
总而言之,要在同一Tomcat服务器下使用不同端口访问不同项目,关键是通过对server.xml文件的配置创建多个 `<Service>`实例和相应的虚拟主机。这种方法既实现了项目隔离,也有助于优化资源利用率。通过遵循本文的详细说明,很容易地就能满足需求实现多项目分接口。
530 38
|
数据安全/隐私保护
IntelliJ IDEA使用技巧:在一个项目中如何正确引用其他子模块。
我希望这个解答可以帮助你,有了这些知识,你可以更好地使用IntelliJ IDEA并轻松处理项目中的子模块。
1112 19
|
Java Maven
Idea配置项目的热启动
Idea配置项目的热启动
4042 5
Idea配置项目的热启动

热门文章

最新文章