springcloud注册中心的实现+烦躁的几天

mac2022-06-30  14

前几天开始跟进老师的spring cloud项目,大致能够实现以下几点:

       注册中心euraka、消费者注册挂载,网关zuul外部访问、负载均衡器ribbion的实现

       Feign远程调用功能能够模糊实现

闲话少说吧,大体记录一下:

       Springcloud项目以springboot为基础,以上每个部分都是由一个个springboot项目构成,而springboot又是由springMVC、spring演化而来,所以一段时间后需要对springcloud的原理了解一下,势必要从spring学期,前路漫漫兮一去不复返

一、 环境

推荐使用intellij,分为付费与community免费两个版本,对一般的项目community足矣。Idea本身已配置maven,如果使用eclipse需要安装maven插件。Springboot本身封装了tomcat,所以不必额外配置。

使用时可以到springboot 网站下载自定义的工程文件,file->open即可;

我使用过程中有几个小问题:一是有时新建不了java类,当然此时可以直接创建file加.java后缀,但不知为何与之前的class不同。解决方法是将java文件夹设置为mark dictionary as ->sources root,变为源文件目录后即可创建class

二是不能将控制层controller直接放在sources root下,会报错,需要建立子文件夹运行

二、 euraka

具体的运行过程不再赘述,只写一下实现方法。实际上,springcloud已经内置完备euraka了,我们只需要添加依赖和主类即可运行。

1、pom中添加依赖

 

<dependencies>

    <dependency>

        <groupId>org.springframework.cloud</groupId>

        <artifactId>spring-cloud-starter</artifactId>

    </dependency>

    <dependency>

        <groupId>org.springframework.cloud</groupId>

        <artifactId>spring-cloud-starter-eureka-server</artifactId>

    </dependency>

    <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-test</artifactId>

        <scope>test</scope>

    </dependency>

</dependencies>

2、添加启动代码中添加@EnableEurekaServer注解

 

@SpringBootApplication

@EnableEurekaServer

public class SpringCloudEurekaApplication {

 

    public static void main(String[] args) {

        SpringApplication.run(SpringCloudEurekaApplication.class, args);

    }

}

3、配置文件

 

在默认设置下,该服务注册中心也会将自己作为客户端来尝试注册它自己,所以我们需要禁用它的客户端注册行为,在application.properties添加以下配置:

 

spring.application.name=spring-cloud-eureka

 

server.port=8000

eureka.client.register-with-eureka=false

eureka.client.fetch-registry=false

 

eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/

eureka.client.register-with-eureka :表示是否将自己注册到Eureka Server,默认为true。

eureka.client.fetch-registry :表示是否从Eureka Server获取注册信息,默认为true。

eureka.client.serviceUrl.defaultZone :设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。默认是http://localhost:8761/eureka ;多个地址可使用 , 分隔

在这里实验时一般会自己定义端口,以免与默认端口冲突

启动工程后,访问local host:端口号/即可访问euraka主页,查看注册的应用服务

集群

注册中心这么关键的服务,如果是单点话,遇到故障就是毁灭性的。在一个分布式系统中,服务注册中心是最重要的基础部分,理应随时处于可以提供服务的状态。为了维持其可用性,使用集群是很好的解决方案。Eureka通过互相注册的方式来实现高可用的部署,所以我们只需要将Eureke Server配置其他可用的serviceUrl就能实现高可用部署。

 

 

 

双节点注册中心

 

首次我们尝试一下双节点的注册中心的搭建。

 

1、创建application-peer1.properties,作为peer1服务中心的配置,并将serviceUrl指向peer2

 

spring.application.name=spring-cloud-eureka

server.port=8000

eureka.instance.hostname=peer1

 

eureka.client.serviceUrl.defaultZone=http://peer2:8001/eureka/

2、创建application-peer2.properties,作为peer2服务中心的配置,并将serviceUrl指向peer1

 

spring.application.name=spring-cloud-eureka

server.port=8001

eureka.instance.hostname=peer2

 

eureka.client.serviceUrl.defaultZone=http://peer1:8000/eureka/

3、host转换

 

在hosts文件中加入如下配置

 

127.0.0.1 peer1 

127.0.0.1 peer2 

4、打包启动

 

依次执行下面命令

 

#打包

mvn clean package

# 分别以peer1和peeer2 配置信息启动eureka

java -jar spring-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1

java -jar spring-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2

访问主页后即可查看到相互关联的注册中心

 

===========================================================

现在是10月24日晚上23:02分,我躺在床上,正准备写下这些烦躁的心情~~~

 

真的是不知道为什么,今天晚上很是郁闷,是因为读了读完了那本非主流的《匆匆那年》?还是因为超多超多的实验作业等着我去慢悠悠的完成?抑或是又开始想念谁谁谁了?

人的心情真的是阴晴无常,连自己都控制不了,说不清道不明。西八,乱死我了,都不知道该写些什么!!!

挨个说吧

最近的作业,哦,深吸一口气,java实验报告,还有一半没写,周一交;

数据结构实验报告,遇到瓶颈怎么着也运行不了,况且还有另一个题没做,三天后交;

老师的新任务,springcloud实现数据库单表的增删改添,可我连注解都还没搞懂,周五交;

本周的两个大学物理实验报告,这个或许会简单一点;

明天的英语课作业,我根本就没准备,明天见机行事了;

下下周电路、java考试了,java好说,但电路根本没咋学,不过也就那么回事了;

这么一看,确实忙!

但,,,无所谓了,给自己留那么多时间干啥,这么一想,竟然有那么点轻松的感觉!要我说啊,人啊,就是jian,有时候自己给自己找不痛快,起码……违心的说,现在感觉最近的压力会轻了一点。明天大物看一看英语,英语课爱咋地咋地吧,权当……练习口语了,想起来,真后悔选了学术英语的课,无聊!中午要准备下午的反转课堂!对!还有明天 的数据结构翻转课堂……真的西八。不过,该准备的就算准备好了吧,虽然没那么用心,也就那样了。不过啊,数据结构这课我得在周末或者下周好好看看mooc!卧槽,又想起来,还有mooc要刷!真不知道为什么要选那种东西,单是为了那几个学分?!大学生的悲哀啊,在我个人看来,用了12年也没挣脱出分数的牢笼,当然会有人反驳,没有分哪里上的学,保研出国不看分看什么。我的回答是:这就是我不选择出国保研的原因,我就是不愿意为了分而学习!也就是因为我被分数限制了十二年了!我就是不惜当再去理他们。刚才又打了很多字,想了想,还是删了吧,这些东西还是得看个人的,只能说每个人有每个人的追求吧。明天中午一个小时准备反转课堂,剩下时间做数据结构!晚上泡实验室,写点java就研究springcloud。周四结束数据结构实验。剩下的……就看周末了……

之前说过要写篇《匆匆那年》的观后感,就在这里简单写点吧

 

我用十多天读完了第一部,用两个晚上加一节近代史课读完了第二部!读完后,我的脑子给了我一个奇怪的词——非主流,我也说不明白。但是感觉读完之后就是一般的网络小说的剧情和手法。将一些看似有深度的话强插进一个个情节里,有的甚至没多少关联,而且那些话,给我的感觉就是类似名言的却流露出丰富非主流风格的句子,不禁让我怀疑作者是不是先是记流水账似的编完情节,在将一句句非主流格言插入各个情节中。。。

  然后再说下剧情吧,说心里话,我一直是很容易受感动的,所以虽然剧情狗血,看到几处剧情还是会让我有点触动。我之前没看过网剧和电影,所以读的过程中没有那些被导演限制的想象。

唉,回顾了十分钟,我竟然没有写下去的念头了。之前读到陈寻逐渐移情别恋的时候,我老生气了,或许是我幼稚无法理解吧,用我的理解,陈寻依然喜欢方茴,但却不爱她了。。我不知道初恋对于作者的理解是如何,或许每个人都会在心里放不下一个人吧,,,但读完后让我不再生气的不是那些个情啊恋啊,因为在我看来,性格开朗的陈根本没什么机会和自我封闭的方产生情感,两个人在一起,怎么着也得是性格相似的那种,开朗的人喜欢开朗的人,内向的人也许更想要一个同样内向的人互相倾吐自己的世界。或许吧,我无从体验。所以到最后,陈会更喜欢与沈这种开朗的女孩相处,以至于抛弃方。说到底,方茴太痴,痴到只因为爱而爱,痴到为了陈糟蹋自己,无法想象现实里是否会有这种人啊。而对于陈寻这个角色,我呢,这么说,就是因为他而生气,因为生气而两天读完一本书。可笑的是,就在刚才我才知道我说不上我生气的理由……西八! 我比较喜欢“乔然”这个角色的,或许每个读者都会对他很有好感吧。就我而言,我很赞成他对一份感情的认真与执着,即便只是用所有前半生去单相思,也心甘情愿。

  我很喜欢一个词语——小心翼翼,为什么呢,因为当把他放在喜欢之前时,那份喜欢便高贵了许多。乔对待自己的那份喜欢就是小心翼翼的,他小心翼翼地喜欢着那个人,《一片丁香花》,一个拥抱……谁知道还有多少故事被他小心翼翼的收藏在心里。“乔木自燃,以取茴香”,上天不公平啊,为什么那么多为之付出真正感情的人缺无人赏识。。。。。但愿我的那份小心翼翼呀,会开花结果

  写了一个小时了,从头读了一遍,自己都起鸡皮疙瘩,要是谁真的读到这篇文章,千万相信:今晚的我只是在心情郁闷的条件下胡乱抒发的,谁还没个文艺的时候!这些话啊,从我嘴里说出来,真的是不太像样。这些东西我本来是该写到日记里的,但是呀,前一阵子我又荒废了,就直接写到这上面吧

为了缓解下氛围,回顾下知识点吧!嘻~~~~

===============================================

Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。

微服务是可以独立部署、水平扩展、独立访问(或者有独立的数据库)的服务单元,springcloud就是这些微服务的大管家,采用了微服务这种架构之后,项目的数量会非常多,springcloud做为大管家需要管理好这些微服务,自然需要很多小弟来帮忙。

服务提供我们假设服务提供者有一个hello方法,可以根据传入的参数,提供输出“hello xxx,this is first messge”的服务

1、pom包配置

创建一个springboot项目,pom.xml中添加如下配置:

<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency></dependencies>

2、配置文件

application.properties配置如下:

spring.application.name=spring-cloud-producerserver.port=9000eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/参数在上一篇都已经解释过,这里不多说。

3、启动类

启动类中添加@EnableDiscoveryClient注解

@SpringBootApplication@EnableDiscoveryClientpublic class ProducerApplication {

public static void main(String[] args) { SpringApplication.run(ProducerApplication.class, args); }}

4、controller

提供hello服务

@RestControllerpublic class HelloController { @RequestMapping("/hello") public String index(@RequestParam String name) { return "hello "+name+",this is first messge"; }}添加@EnableDiscoveryClient注解后,项目就具有了服务注册的功能。

转载于:https://www.cnblogs.com/ArLucEne/p/7726580.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)