2分时时彩平台网址_架构师入门:搭建双注册中心的高可用Eureka架构(基于项目实战)

  • 时间:
  • 浏览:2
  • 来源:小志资源网_提供南风娱乐网技术_115资源网资讯

    本文的案例是基于 架构师入门:搭建基本的Eureka架构(从项目里抽取) 改写的。

    在上文里,亲戚亲戚朋友演示Eureka客户端调用服务的整个流程,在这主次里亲戚亲戚朋友将在架构上有所改进。亲戚亲戚朋友都才能想象下,在上文里案例中,Eureka注册中心只部署在一台机器上,1个它一旦突然冒出问题图片图片,会原因整个服务调用系统的崩溃,或者 你你这人 情况趋于稳定在生产环境上,后果是不堪设想的。

    亲戚亲戚朋友别以为这是危言耸听,在高并发的场景下(比如双十一的并发环境),你你这人 情况趋于稳定的或者 性不低。针对你你这人 场景,这里亲戚亲戚朋友将部署两台Eureka注册中心,彼此相互注册,以此搭建1个可用性比较高的Eureka集群。

1 集群的示意图

    在你你这人 集群里,亲戚亲戚朋友将配置2台相互注册的Eureka服务器,1个一来,每台服务器都暗含着对方的服务注册信息,合适双机热备,一并,服务提供者只需向其中的1个注册服务。

    

    1个,或者 服务器A或B宕机,越来越 另一台服务器依然都才能向内部提供服务列表,服务调用者依然都才能据此调用服务。

    在并发要求更高的环境里,亲戚亲戚朋友甚至都才能搭建2台以上的服务器,不过事实上,双机热备的集群能满足大多数的场景,一方面,都有每个系统的并发量都很高,而是双机热备足以满足大多数的并发需求,当时人面,毕竟两台服务器一并宕机的或者 性而是 大。    

2编写相互注册的服务器端代码

    这里为了演示方便,亲戚亲戚朋友在一台机器上模拟双服务器的场景,在真实项目里,亲戚亲戚朋友一般是把1个相互注册的服务器安装下 两台主机上,或者 或者 只安装下 一台上,越来越 该服务器趋于稳定故障话语,1个服务器回会失效。具体的实现步骤如下。

    第一步,到C:\WINDOWS\system32\drivers\etc目录里,找到hosts文件,在其中加入1个机器名(觉得都有指向本机),代码如下。修改后,都才能重启机器。

          127.0.0.1       ekServer1

          127.0.0.1       ekServer2

    第二步,创建ek-cluster-server项目,这觉得是根据上文 架构师入门:搭建基本的Eureka架构(从项目里抽取) 里的EurekaBasicDemo-Server项目改写而来,和日后 的项目相比,亲戚亲戚朋友只改动了application.yml文件,代码如下。    

1    server:
2      port: 8888
3    spring:
4      application:
5        name: ekServer1  
6    eureka:
7      instance:
8        hostname: ekServer1
9      client:
10        serviceUrl:
11          defaultZone: http://ekServer2:8889/eureka/

    这里的端口号没变,依然是8888,但亲戚亲戚朋友在第5行把项目名修改成ekServer1,在第8行把提供服务的主机名也修改成ekServer1,在第11行,亲戚亲戚朋友指定了本服务所在的rul,这里请注意,亲戚亲戚朋友把ekServer1所在的serverUrl指定到ekServer2的8889端口上,也而是 说,这里亲戚亲戚朋友指定ekServer1向ekServer2注册。

    第三步,或者 在真实项目里,亲戚亲戚朋友一般会在两台主机上启动1个Eureka服务,而是这里亲戚亲戚朋友再创建1个Maven类型的项目ek-cluster-server-backup,和日后 的ek-cluster-server相比,它们的差别还是在application.yml,代码如下。   

1    server:
2      port: 8889
3    spring:
4      application:
5        name: ekServer2  
6    eureka:
7      instance:
8        hostname: ekServer2
9      client:
10        serviceUrl:
11          defaultZone: http://ekServer1:8888/eureka/

    这里的配置信息觉得和刚才的是对偶的,这里的application名和主机名都叫ekServer2,不过请注意第11行,这里的serviceUrl是注册到ekServer1的8888端口上,这里亲戚亲戚朋友同样指定ekServer2向ekServer1注册。结合上文,至此亲戚亲戚朋友实现了双服务器之间的相互注册。    

3 服务提供者只需向其中一台服务器注册

    觉得在集群里搭建了两台服务器,但服务提供者只需向其中的一台注册即可,或者 高可用的便利性就会以牺牲代码可维护性为代价了。

    这里亲戚亲戚朋友是在ek-cluster-ServiceProvider项目编写服务提供程序运行,它是根据上文架构师入门:搭建基本的Eureka架构(从项目里抽取)里的项目EurekaBasicDemo-ServerProvider改写而来,其中只修改了application.yml主次的代码。    

1    server:
2      port: 1111
3    spring:
4      application:
5        name: sayHello
6    eureka:  
7      client:
8        serviceUrl:
9          defaultZone: http://ekServer1:8888/eureka/

    亲戚亲戚朋友只改动了第9行的代码,这说明本服务是向ekServer1的8888号端口注册。

    或者 这里1个Eureka服务器是相互注册,而是本服务提供者不要一并向1个服务器注册,或者 一旦向ekServer1注册后,该服务器会自动把你你这人 服务提供者的信息qq克隆好友 到ekServer2上。   

4修改服务调用者的代码

     亲戚亲戚朋友把服务调用者的代码倒进ek-cluster-ServiceCaller你你这人 Maven项目里,这是根据日后 里的EurekaBasicDemo-ServerCaller项目改写而来。其中亲戚亲戚朋友也只修改application.yml代码。    

1    spring:
2      application:
3        name: callHello
4    server:
5      port: 100100
6    eureka: 
7      client:
8        serviceUrl:
9          defaultZone: http://ekServer1:8888/eureka/

    改动点还是在第9行上,这里是向ekServer1服务器的8888号端口注册,同理,这里不要向另外1个机器(ekServer2)注册。

5正常场景下的运行效果

    按如下次序启动1个项目的Spring Boot服务。

    第一,     ek-cluster-server(第1个Eureka服务器)。

    第二,     ek-cluster-server-backup(第1个Eureka服务器)。

    第三,     ek-cluster-ServiceProvider(服务提供者)。

    第四,     ek-cluster-ServiceCaller(服务调用者)。

    日后 ,亲戚亲戚朋友能在http://ekserver1:8888/和http://ekserver2:8889/这1个浏览器上看后如下图所示的1个可用的服务。或者 是相互注册,而是它们的内容是一样的。

        

    觉得这里亲戚亲戚朋友也都才能通过http://localhost:8888/和http://localhost:8889/看后相同的效果,但不推荐。这是或者 ,在真实的项目里,Eureka的服务器应该是和开发机器分开的,也而是 说它们应该被部署在其它机器上,只不过这里亲戚亲戚朋友为了演示方便,把它们都倒进本机。

    当亲戚亲戚朋友确认服务启动后,都才能在浏览器里输入http://ekserver1:100100/hello来查看服务调用的效果,这里觉得触发了ek-cluster-ServiceCaller中Controller里的hello法律法子。

    和日后 一样,这里的输出还是“In Caller, hello Eureka“,这说明双机热备的Eureka架构合适不要影响基本的功能。同样,这里不建议通过http://localhost:100100/hello来查看运行效果。 

6 一台服务器宕机后的运行效果

    这里亲戚亲戚朋友都才能故意关闭ek-cluster-server服务,以此来模拟一台服务器宕机的情况。

    关闭后,亲戚亲戚朋友在浏览器里输入http://ekserver1:100100/hello,觉得亲戚亲戚朋友在服务提供者和服务调用者的application.yml里指定的serviceUrl.defaultZone都有http://ekServer1:8888/eureka/,但在一台Eureka服务器失效的情况下,亲戚亲戚朋友依然能看后正确的结果,如下图所示。

    

    或者 亲戚亲戚朋友在刚才关闭的是ek-cluster-server-backup,让ek-cluster-server运行,这里亲戚亲戚朋友还是能看后同样的效果。也而是 说,在你你这人 Eureka双服务器的集群里,一台服务器宕机后,整个服务体系依然可用,这就大大提升的系统的可用性。

7 寻求大牛帮助

    当时人在写完java web轻量级开发面试教程后,再想写一本Spring Cloud方面的书,请各位大神别问我该写什么方面的内容,或者 是提些建议,谢谢了。

8 本文代码和版权声明

    或者 亲戚亲戚朋友让你本案例中代码,请给我站内留言。

    当时人保留本文中文字和代码的版权,转载请注明出处。

猜你喜欢

pk10彩票邀请码 _Begin obtaining determination from this kind of document and let your happy and effective existence right today

Youshouldhavemopk10彩票邀请码 tpk10彩票邀请码 pk10彩票邀请码 ivationatthistime!Alotofpeoplearoundyouwil

2020-06-01

秒速快3官方网站_国产奶粉监管力度加强 圣元严把质量关

 当下,中秒速快3官方网站国人海淘奶粉早已也有哪此新鲜事,德淘、澳淘、日淘……根据淘宝全球购发布的《海淘十年报告》,中国人505至2015十年间海淘最多的便是以奶粉为首的母婴类

2020-06-01

2分pk10总代_揭秘鹿晗为什么不能坐飞机真相 素颜彩排曝光被赞皮肤好

来源: 妆点网 2016-04-0813:53:28   早前,鹿晗坐高铁去录制《奔跑吧兄弟》,没想到被粉丝围2分pk

2020-06-01

幸运飞艇彩神8_2019Q1移动医疗报告:市场规模平稳增至63.9亿

国家城镇化发展不断推进幸运飞艇彩神8,国内医疗资源分配不均,消费者健康医疗需求攀升等诸多因素,不断推动着移动医疗产业发展壮大。 第三方数据挖掘及市场研究机构比达(BigData

2020-06-01

大发5分快三稳赢计划_普京自曝:索契冬奥会差点打下一架客机!

日前,俄罗斯总统普京在其同名传记纪录片中自曝一段秘事:2014年索契冬奥开幕式期间,他曾下令战机击落一架疑遭劫持以攻击冬奥的客机,所幸随后证实劫机通报也不 “乌龙”。据今日

2020-06-01