学习Spring-Cloud –基础结构和配置

我有机会与Spring-Cloud一起创建了一组云就绪微服务的样本集,Spring-Cloud如何使不同的基础架构组件和服务很好地协同工作给我留下了深刻的印象。

我习惯于基于基于Netflix OSS的堆栈创建微服务,通常在Netflix堆栈中, Eureka被认为是微服务进行自我注册和发现彼此的枢纽。 本着这种模式的精神,我想尝试一系列看起来像这样的服务:

乒乓球

这里有2种微服务:

  • 响应“ ping”消息的样本乒乓服务
  • 使用“乒乓”微服务的抽样服务

并且有两个基础架构组件:

  • Sample-config为2个微服务提供集中配置
  • 尤里卡(Eureka)是中央枢纽,为服务注册和发现其他服务提供了一种方式

因此,首先,我将介绍如何使用spring-cloud开发两个基础架构组件,并紧跟其后如何开发微服务以使用这些组件。

  • 整个项目在我的github位置上可用。

尤里卡

Spring-cloud使创建Eureka的实例非常简单,所需要做的只是遵循以下几行的类:

package org.bk.eureka;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {public static void main(String[] args) {SpringApplication.run(EurekaApplication.class, args);}
}

可以启动多个Eureka实例,并将其配置为以弹性方式协同工作,尽管在这里,我只想演示一个独立的Eureka实例,并且可以使用类似以下的配置来完成,本质上是在端口8761上启动eureka并且在独立模式下不尝试查找对等方:

---
# application.yml
server:port: 8761eureka:instance:hostname: localhostclient:registerWithEureka: falsefetchRegistry: false

配置服务器

Spring-Cloud提供了一个集中式配置服务器,微服务可用于加载其属性。 通常,微服务可能希望采用以下两种方式之一:

  1. 使用Eureka作为中心,找到配置服务
  2. 使用配置服务并找到尤里卡

我个人更喜欢Eureka优先方法,在此示例配置服务器中向Eureka注册了自己,当微服务启动时,他们首先向Eureka进行了检查,找到Configuration服务并使用该服务加载其属性。

配置服务器也很容易使用Spring-cloud编写,以下是所需的所有代码:

package org.bk.configserver;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;@SpringBootApplication
@EnableConfigServer
@EnableEurekaClient
public class ConfigServerApplication {public static void main(String[] args) {SpringApplication.run(ConfigServerApplication.class, args);}
}

以及向Eureka注册此服务的配置:

---
# bootstrap.yml
spring:application:name: sample-configprofiles:active: nativeeureka:instance:nonSecurePort: ${server.port:8888}client:serviceUrl:defaultZone: http://${eureka.host:localhost}:${eureka.port:8761}/eureka/
---
# application.yml
spring:cloud:config:server:native:searchLocations: classpath:/configserver:port: 8888

配置服务器从端口8888启动,并从类路径提供配置。 在实际的应用程序中,可以将配置设置为从中央git存储库加载,这种方式为版本属性提供了一种简洁的方法,并且可以集中管理属性。 在这种特定情况下,由于它提供了两个微服务的属性,因此类路径中有两组文件,并为调用应用程序提供了适当的属性:

---
#sample-pong.yml
reply:message: Pong
---
# sample-ping.yml
send:message: Ping

启动Eureka和配置服务器

由于这两个应用程序都是基于Spring-boot的,因此可以通过运行以下命令来分别启动它们:

mvn spring-boot:run

一旦Eureka和Configuration Server正常启动,Eureka将提供一个不错的界面,其中包含向其注册的服务的详细信息,在这种情况下,Configuration Server的名称为“ SAMPLE-CONFIG”:

春云尤里卡

配置服务器通过端点通过以下模式为调用应用程序提供属性: /{application}/{profile}[/{label}]

因此,要检索“ sample-pong”应用程序的属性,应用程序将在内部使用以下URL: http://localhost:8888/sample-pong/default

对于“ sample-ping”应用程序,属性可以从http://localhost:8888/sample-ping/default派生

到此,结束了有关如何启动云就绪系统的基础架构组件的详细说明。 我将继续介绍如何利用这些基础架构组件开发微服务。

  • 这些示例背后的代码可在我的github存储库中找到 。

翻译自: https://www.javacodegeeks.com/2015/06/learning-spring-cloud-infrastructure-and-configuration.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/359105.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【APICloud系列|6】使用APICloud接入客服系统美洽获取Appkey配置

1.使用超级管理员(没有注册的提前注册登录一下)登录美洽:https://app.meiqia.com/ 2.找到设置——SDK 3.点击添加APP配置 4.上传

架构(三层架构)、框架(MVC)、设计模式三者异同点

前言: 本博客主要针对架构、框架和设计模式三者的差别、还有三层和MVC的差别进行讨论、对于这三者一点都不了解的、请点在维基和百度百科上补补课、这里就不发链接了 软件架构(software architecture) 软件的架构是系统的一个草图、阐述了各个…

微信提交表单到服务器,微信小程序页面表单如何跟图片一起上传服务器

拆开写。表单提交是 wx.request上传图片是 wx.uploadFile你需要写一个通用图片上传接口,上传图片后台返回图片的url。这个通用接口在任何需要提交图片的表单都可以用到。添加图片的时候就调用图片上传接口,拿到图片的url,存在表单数据里。提交…

前端汉字encode_js编码转码中文

javascript汉字编码与转码:js编码转码function strTrim(str) {str str.replace(/(^\s*)|(\s*$)/g, "");return str;}function proc_encode(str) {str strTrim(str);return escape(str).replace(/\%/g,\\);}function proc_unencode(str) {str strTrim(s…

ios - Parse Issues in NSObjCRuntime, NSZone, and NSObject

在 XCode6 中使用了 C 文件,run 的时候报这个错误,把 .c 文件的后缀改为 .m 就可以了。不知道为什么。 转载于:https://www.cnblogs.com/1oo1/p/4364859.html

轩逸车联网功能怎么用_北斗已建设完成,那“北斗导航”怎么用?“短报文功能”怎么用?...

6月23号长征三号乙运载火箭将北斗导航系统(BDS)最后一颗卫星,也就是第55颗卫星成功发射升空,这是我国全球导航系统的收官之作,整个导航系统建设耗时20年。中国北斗(BDS)是继美国(GPS)、俄罗斯(GLONASS)第三大成熟的全球定位导航系统&#xff…

nba2k19登陆显示你与服务器,NBA2K19无法登陆了?NBA2K19连不上服务器怎么办?[图]...

NBA2K19是一款很不错的篮球类游戏,喜欢篮球的朋友一定不要错过了!大家都知道这款游戏可以联网也可以单机,但是有朋友反映NBA2K19连不上服务器,这是什么原因呢?NBA2K19连不上服务器:1、卸载其他NBA2K学习版内…

【APICloud系列|7】开发一个APP完整流程及注意事项

APP开发流程其实并不复杂(想节约时间可以参考低代码开发相关的平台APICloud、Appcan、千牛云等),但是对于客户来说。一般移动APP开发都离不开UI设计师、前端开发、后端开发、测试专员、产品经理等, 由于工作性质不一样,我们把APP软件开发项目分为4个阶段: 一、功能需求阶…

深入进货单-价格跟踪----宇然电脑公司管理软件

细节决定软件是不是一款好的管理软件,也验证软件是否成熟的标致.E2在细节上考虑周到. 在进货时,我们常常会想知道历史的进货过程.在E2下非常简单. 转载于:https://www.cnblogs.com/do_easy/p/4365236.html

a标签 vue 动态点击_vue基础那点事

vue-day011.vue的介绍作者介绍 框架的介绍2.vue官网https://cn.vuejs.org/3.vue的优点易用&#xff0c;灵活&#xff0c;高效4.库与框架区别库&#xff1a;只具有某一种功能框架&#xff1a;具备完整的功能 bootstrap element-ui5.开发环境与生产环境开发环境地址:<scri…

线程与并发介绍

本文是我们学院课程中名为Java Concurrency Essentials的一部分 。 在本课程中&#xff0c;您将深入探讨并发的魔力。 将向您介绍并发和并发代码的基础知识&#xff0c;并学习诸如原子性&#xff0c;同步和线程安全之类的概念。 在这里查看 &#xff01; 目录 1.有关线程的基…

ajax跨域请求(cors实现),ajax跨域请求(CORS实现)

场景&#xff1a;目前有项目A(基于servlet的WEB项目)&#xff0c;和项目B(基于spring boot的WEB项目)&#xff0c;使用同一CAS提供单点登陆&#xff0c;如今须要两个项目互相调用接口数据&#xff0c;因此涉及到ajax的跨域请求java调研&#xff1a;通过调研发现目前的ajax跨域解…

百度贴吧排名计算方式

排名模拟公式:历史帖子数a+新增帖子数b+∑(单一帖子浏览量该帖回复总数)c+独立ip数d=总人气值 其中,a、b、c、d为系数,如果系数为1,则1;(单一帖子浏览量该帖回复总数)这个比率只有在百度认可的一个范围,譬如说5-8之间才能得到加分,有些贴吧每日新增的帖子数表面…

转-Android Studio *.jar 与 *.aar 的生成与*.aar导入项目方法

主要讲解Android Studio中生成aar文件以及本地方式使用aar文件的方法。 在Android Studio中对一个自己库进行生成操作时将会同时生成*.jar与*.aar文件。 分别存储位置&#xff1a; *.jar&#xff1a;库/build/intermediates/bundles/debug(release)/classes.jar *.aar&#xff…

sprutcam 多机器人_Sprutcam工业机器人离线编程系统

SprutCAM机器人离线编程软件简介1.软件基于Windows风格&#xff0c;中文界面&#xff0c;易学易用&#xff0c;很快可以上手并投入实际工作。2.SprutCAM是一个能独立工作的系统&#xff0c;并非插件,不需要依托任何其他的软件即可独立运行。3.SprutCAM能对6轴工业机器人进行编程…

手机 服务器 推送消息推送消息,推送信息到手机的pushover使用方法及sample code

今天给大家介绍一个好东西&#xff0c;用了两年多了&#xff0c;一直没时间给大家推荐。pushover&#xff0c;移动端的信息推送服务API&#xff0c;包括使用、设置以及API实现。用途在关键节点放上推送(比如用户注册、举报、评论&#xff0c;系统检测等)&#xff0c;当节点触发…

【APICloud系列|8】APICloud下载编译包安装,点击图标打不开,提示很抱歉,程序出现异常,即将退出

下载编译包之后,安装在真机上提示很抱歉,程序出现异常,即将退出。进不去这个应用,请问有什么解决办法? 分享一下解决办法:大体分为两个方向: 1.检查新添加的模块。 2.检查config.xml文件(及index.html文件)。 我的问题是这样解决的,下载每个测试包确定出问题的时间…

4阶范德蒙德行列式例题_行列式的性质和计算问题

行列式计算(2) 01 前言 (1)今天我们继续讨论行列式的性质和计算问题。 (2)①第1题: 很多同学在一开始会直接将行列式拆成两个行列式后直接计算, 这是错误的使用了行列式的性质。注意行列式的分拆是“单行单列可拆”, 所以本题如果一直分拆, 应该是2X2X2=8个行列式, 当然此处我们…

HDU 4508

祼的完全背包问题 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #define LL __int64 using namespace std;LL dp[100005]; struct Food{int a,b; }fd[105];int main(){int n,m;while(scanf("%d",&n)…

java不想出差_您不想错过的十大Java书籍

java不想出差我们通过阅读书籍并进行实验来学习。 因此&#xff0c;必须选择最佳的可用选项。 在本文中&#xff0c;我想与一些书分享我的经验&#xff0c;以及它们如何帮助您发展成为Java开发人员。 让我们从头开始&#xff0c;对于任何Java学生来说&#xff0c;前三本书都是一…