hadoop 9000端口的服务未启动_IDEA 微服务单项目多端口启动
点击上方 Coding这件小事 ,选择 星标 公众号
重磅资讯、干货,第一时间送达
文章转自:Java知音
网上教程具体如下图
注册中心,开了N个端口就创建了N个Module
还有的就是各种创建eureka然后互相注册,对于新手来说是很大的误解
以及在client去注册的时候,注册中心要写几个
下面开始叙述并实际验证下
准备工作
当前的技术以及工具
IDEA2018.3
JDK1.8
Gradle 5.0
tomcat 7
需要你对基本的微服务有一点点的了解,如果不知道什么是微服务,百度基本学习下也不会花很长时间
首先创建公共依赖管理
一步一步创建一个Gradle的初始项目就可以了
配置文件
gradle.perproties 无此文件自行创建
## dependency versions.
springBootVersion=2.1.2.RELEASE
springCloudVersion=Finchley.RELEASE
### docker configuration
#gradle docker plugin version
transmodeGradleDockerVersion=1.2
#This configuration is for docker container environment to access the local machine host,in Chinese is "宿主机" ip.
hostMachineIp=127.0.0.1
build.gradle
buildscript {
repositories {
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
maven { url "https://oss.sonatype.org/content/groups/public/" }
maven { url "https://repo.spring.io/libs-milestone/" }
jcenter()
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
allprojects {
apply plugin: 'java'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
group = 'store.zabbix'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
maven { url "https://oss.sonatype.org/content/groups/public/" }
maven { url "https://repo.spring.io/libs-milestone/" }
jcenter()
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation "org.springframework.boot:spring-boot-starter-test"
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
}
setting.gradle
rootProject.name = 'springcloud-tools'
def dir = new File(settingsDir.toString())
def projects = new HashSet()
def projectSymbol = File.separator + 'src'
dir.eachDirRecurse { subDir ->
def subDirName = subDir.canonicalPath
def isSubProject = true
if (subDirName.endsWith(projectSymbol)) {
for (String projectDir in projects) {
if (subDirName.startsWith(projectDir)) {
isSubProject = false
break
}
}
if (isSubProject) {
projects << subDirName
def lastIndex = subDirName.lastIndexOf(projectSymbol)
def gradleModulePath = subDirName.substring(dir.canonicalPath.length(), lastIndex).replace(File.separator, '')
println "include " + gradleModulePath
include gradleModulePath
}
}
}
//include('tools-eureka')
至此我们创建了一个新的项目,结构图红色圈内的后续创建
我们开始创建eureka-server
build.gradle
其依赖已在父类公共管理
这里只需要声明现在所需要的依赖即可
dependencies {
implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-server'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
application.yml
spring:
application:
name: eureka-server
profiles:
active: server1
application-server1.yml
server:
port: 8000
eureka:
client:
# 表示是否注册自身到eureka服务器
# register-with-eureka: false
# 是否从eureka上获取注册信息
# fetch-registry: false
service-url:
defaultZone: http://127.0.0.1:8001/eureka/,http://127.0.0.1:8002/eureka/
application-server2.yml
server:
port: 8001
eureka:
client:
# 表示是否注册自身到eureka服务器
# register-with-eureka: false
# 是否从eureka上获取注册信息
# fetch-registry: false
service-url:
defaultZone: http://127.0.0.1:8000/eureka/,http://127.0.0.1:8002/eureka/
#spring:
# application:
# name: eurka-server2
applicayion-server3.yml
server:
port: 8002
eureka:
client:
# 表示是否注册自身到eureka服务器
# register-with-eureka: false
# 是否从eureka上获取注册信息
# fetch-registry: false
service-url:
defaultZone: http://127.0.0.1:8001/eureka/,http://127.0.0.1:8000/eureka/
#spring:
# application:
# name: eurka-server3
ToolsEurekaApplication.java
核心:注解@EnableEurekaServer
@EnableEurekaServer
@SpringBootApplication
public class ToolsEurekaApplication {
public static void main(String[] args) {
SpringApplication.run(ToolsEurekaApplication.class, args);
}
}
创建eureka-client来注册到eureka-server
快速创建一个Gradle的SpringBoot项目
build.gradle
dependencies {
implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
}
ToolsEurekaClientApplication.java
核心注解:@EnableEurekaClient
package store.zabbix.toolseurekaclient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@EnableEurekaClient
@RestController
public class ToolsEurekaClientApplication {
public static void main(String[] args) {
SpringApplication.run(ToolsEurekaClientApplication.class, args);
}
@Value("${server.port}")
private int port;
@GetMapping("test")
public String showPort(){
return "my port is "+port ;
}
}
application.yml
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:8000/eureka/
server:
port: 8762
spring:
application:
name: tools-eureka-client
开始启动eureka-server
新建启动类并配置
第一次启动启动类之后会存在一个启动配置
如上图一样去复制一个,然后在options里指定一下你需要启动的项目资源配置文件
-Dspring.profiles.active=server2
启动配置的名字可以自定义
建议带上端口
上图得知我们已经启动了3个端口,并互相注册了
已经相互注册成功了
接下来我们把注释的开启
# 表示是否注册自身到eureka服务器
# register-with-eureka: false
# 是否从eureka上获取注册信息
# fetch-registry: false
修改后的application.yml
#server:
# port: 8761
eureka:
# instance:
# hostname: server1
client:
register-with-eureka: false
fetch-registry: false
# service-url:
# defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
##server.port: 指明了应用启动的端口号
##eureka.instance.hostname: 应用的主机名称
##eureka.client.registerWithEureka: 值为false意味着自身仅作为服务器,不作为客户端
##eureka.client.fetchRegistry: 值为false意味着无需注册自身
##eureka.client.serviceUrl.defaultZone: 指明了应用的URL
#spring:
# application:
# name: eurka-server
spring:
application:
name: eureka-server
profiles:
active: server1
之后把三个端口的都重启下
可以看到不会注册自己的,我想基础区别也在这个界面了
启动顺序 eureka-server => eureka-client
启动eureka-client
看到这里我们访问的是http://127.0.0.1:8002/
虽然我们配置的是8000端口
但还是在8002端口注册了,也就是这也是eureka互相注册之后达到的高可用的效果,集群,我们可以把8000和8001端口宕掉,不影响使用
提示
上面的启动配置是需要启动几个端口就要配置几个
项目跑起来的时候有时候会抛些错误,试着重启下,访问下如果正常就可以 ,一般就是超时或者自己寻找不到注册自己的服务中心
VM options:-Dspring.profiles.active=xxx,启动类这里配置的是你application-xxx.yml名字里的xxx,-D是用java默认原生属性 3.除了上面那样指定配置文件,还可以用Program arguments来指定
源码地址:https://github.com/cuifuan/springcloud-tools
本文参考
https://github.com/happyyangyuan/springcloud-quickstart http://www.cnblogs.com/hfultrastrong/p/8547236.html
能点个「在看」再走嘛?
hadoop 9000端口的服务未启动_IDEA 微服务单项目多端口启动相关推荐
- re.containerbase.startinternal 子容器启动失败_微服务架构:基于微服务和Docker容器技术的PaaS云平台架构设计(微服务架构实施原理)...
走过路过不要错过 点击蓝字关注我们 基于微服务架构和Docker容器技术的PaaS云平台建设目标是给我们的开发人员提供一套服务快速开发.部署.运维管理.持续开发持续集成的流程.平台提供基础设施.中间件 ...
- 基于阿里云容器服务的微服务实践 - Part 1. 微服务与Docker
基于阿里云容器服务的微服务实践 基于阿里云容器服务的微服务实践 - Part 1. 微服务与Docker 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页:http://blo ...
- 从零开始学习微服务 -微服务基本概述、微服务案例
1. SpringCloud概述 1.1 互联网应用架构 1.1.1 单体应用架构 在诞⽣之初,项目的⽤户量.数据量规模都⽐较⼩,项目所有的功能模块都放在一个工程中编码. 编译.打包并且部署在一个To ...
- 微服务升级优点_SpringCloud微服务架构升级总结
原标题:SpringCloud微服务架构升级总结 1.1 应用系统的架构历史 1.2 什么是微服务? 起源:微服务的概念源于 2014 年 3 月 Martin Fowler 所写的一篇文章" ...
- 合沟微服务怎么添加_微服务架构:动态配置中心搭建
版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! 在微服务架构中,服务之间有着错综复杂的依赖关系,每个服务都有自己的依赖配置,在运行期间很多配置会根据访问流量等因素进行调整,传统的配置信息 ...
- 微服务平台建设之微服务2.0技术选型思考
前言 前事不忘后事之师,本篇博客是在拜读和学习了杨波的<微服务架构技术栈选型手册>后结合自己的整理和思考. https://www.infoq.cn/article/micro-servi ...
- SpringCloud微服务架构实战:微服务治理
微服务治理 Spring Cloud 工具套件为微服务治理提供了全面的技术支持.这些治理工具主要包括服务的注册与发现.负载均衡管理.动态路由.服务降级和故障转移.链路跟踪.服务监控等.微服务治理的主要 ...
- 容器化技术与微服务结合---结合springcloud微服务框架进行部署(含切换成阿里云docker仓库)(五)
目录 系列 更换成阿里云仓库 开通阿里云镜像服务 创建仓库 本地k8s切换成阿里云的镜像仓库 测试阿里云镜像 准备简单的微服务 eureka 应用配置 k8s配置: demo-a 应用配置 k8s配置 ...
- 乐优商城--服务(三) : 商品微服务(LyItemApplication)--前半部分
商品微服务--前半部分: 1. 微服务结构(ly-item) 1.0 顶级父工程(le-you) 1.1 ly-item 1.1.1 ly-item-interface 1.1.1.1 添加依赖 1. ...
最新文章
- 微信小程序开发中如何实现侧边栏的滑动效果?
- linux cat 命令详解
- Python入门100题 | 第043题
- flask渲染图像_用于图像推荐的Flask应用
- UVA - 213 Message Decoding
- 视频剪辑什么鬼?Python 带你高效创作短视频
- android c++ http,开源一个C++实现的简单HTTP协议处理库
- Kepware AB驱动 · 秒懂百科
- Python机器学习算法之逻辑回归算法
- 半桥llc 增益 matlab程序,“狠”完整的LLC谐振半桥电路分析与计算!
- 夕阳美,美到骨子里了
- iOS横屏电子签名上篇【核心原理: 旋转特定的屏幕 Quartz2D】应用场景:采集电子签名,支持签名界面为横屏其余页面都是竖屏、清除重写、灵活控制提示语信息、以及查看商户协议等
- 远程桌⾯连接电脑后键盘失灵解决方案
- windows应用程序与控制台应用程序的区别
- J2EE三层架构简介
- Cris 学 SpringMVC(二):使用 servlet 原生 api 作为方法入参
- 二级c语言考试系统安卓,无忧考吧二级c语言考试系统下载_无忧考吧二级c语言考试系统官方下载-太平洋下载中心...
- Delphi7.0破解及常用三方控件的安装
- 交通银行上海分行信息部总经理吴宇:大数据助力”互联网+金融”发展
- 小程序毕业设计 基于微信菜谱小程序毕业设计开题报告参考
热门文章
- c语言第四章作业,大学C语言第四章作业答案
- python datasets_python基础之sklearn.datasets
- centos7使用yum安装jdk并配置jdkhome
- 如何查看夜神模拟器的端口
- Linux-lsof命令
- 各样本观察值均加同一常数_对色师傅分享:如何使不同观察者在灯箱下观察的色光一致?...
- java 整合hadoop_Spark 如何摆脱java双亲委托机制优先从用户jar加载类?
- c语言编程员工信息排序,员工工资管理系统(c语言编程)
- 怎么用python自动注册_python selenium自动化(二)自动化注册流程
- dpkg安装软件流程_ubuntu安装搜狗输入法linux版