精选列表

搜索[SpringCloud],共1270篇文章
优秀的个人博客,低调大师

SpringCloud学习之eureka集群配置

一。集群方案及部署思路: 如果是单节点的注册中心,是无法保证系统稳定性的,当然现在项目部署架构不可能是单节点的。 集群节点的部署思路:通过运行多个实例并请求他们相互注册,来完成注册中心的高可用性(结伴注册) 注意: 用于本机模拟的前期准备工作:将电脑上hosts 添加如下配置 (linux下位置:/etc/hosts): 127.0.0.1 localhost server1 server2 View Code 二 设计步骤 在这里简单创建一个项目:register-center-node1的项目工程,和我们先前的register-center项目工程一模一样 register-center-node1的application.yml配置: 1 server: 2 port: 8081 3 spring: 4 application: 5 name: register-center 6 eureka: 7 client: 8 service-url: 9 defaultZone: http://server1:8080/eureka 10 fetch-registry: true 11 instance: 12 hostname: server2 View Code register-center的application.yml配置: 1 server: 2 port: 8080 3 spring: 4 application: 5 name: register-center 6 eureka: 7 client: 8 service-url: 9 defaultZone: http://server2:8081/eureka 10 instance: 11 hostname: server1 View Code 注意以下几点: 与先前独立运行register-center不同,大家注意defaultZone属性,两个注册中心地址都指向对方进行结伴注册 去掉fetch-registry 与register-with-eureka配置(其实这样做就会取对应的默认值,两个值均为true) 启动第一个注册中心时会报Cannot execute request on any known server的错误,暂时不管它,实际上eureka注册中心的ui界面是能打开的 所有注册中心的节点的spring.application.name必须保持一致。 当需要往注册中心集群注册服务时的写法:defaultZone:http://server1:8080/eureka,http://server2:8081/eureka 启动完毕后,访问地址:http://localhost:8080 得到如下界面: 我们可以看到注册中心地址已经标记为集群模式了

优秀的个人博客,低调大师

第六章:SpringCloud Ribbon 自定义服务端口访问策略(Rule)

在使用ribbon的过程中,难免会遇到对不同服务的负载均衡策略不同。 我举个例子。 A服务开了两个端口 B服务开了两个端口 如果使用默认配置。ribbon使用的是轮询策略。 但是如果业务需要A轮询,B随机。 我们该怎么做呢。(提示:ribbon默认扫描包是启动类所在包下com.fantj.ribbon) 方案一: 写一段配置,扔到该包外面com.fantj下 /** * Created by Fant.J. * 2017/11/30 18:56 */ @SuppressWarnings("ALL") @Configuration //@RibbonClient(name = "provider-user",configuration = Config.class) public class Config { @Autowired IClientConfig clientConfig; @Bean @ConditionalOnMissingBean public IRule ribbonRule(IClientConfig clientConfig) { return new RandomRule(); //随机访问策略 } } 方案二: 自定义注解,并加载到启动类 自定义注解: package com.fantj.fantjconsumermovieribbon; /** * Created by Fant.J. * 2017/12/1 17:06 */ public @interface ExcludeFromComponentScan { } 启动项添加注解@ComponentScan image.png 其中 @RibbonClient(name = "provider-user",configuration = Config.class) 这个注解的作用是,告诉ribbon ,provider-user这个服务的策略配置在Config.class类里面。所以我在Config.java里把//@RibbonClient(name = "provider-user",configuration = Config.class)注释掉了。两者作用相同。 最后,在Config.java里添加注解@ExcludeFromComponentScan 重启,便会看到provider-user这个服务端口访问策略是随机,别的服务访问策略是轮询。 方案三 写入配置文件application.yml(ribbon读取配置文件的优先级最高) 看下官方的文档: users: #这里修改成自己的微服务id ribbon: NFLoadBalancerRuleClassName: com.netflix.loadbalancer.WeightedResponseTimeRule #这里是Rule 修改成自己的 provider-user: #微服务id ribbon: NFLoadBalancerRuleClassName: com.netflix.loadbalancer.WeightedResponseTimeRule #Rule,这个是权重响应事件Rule

优秀的个人博客,低调大师

第二章:SpringCloud 将微服务注册至Eureka

1.创建eureka模块 image.png 2.添加pom依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-netflix-eureka-server</artifactId> </dependency> 并且加入父依赖管理。 <parent> <groupId>com.laojiao</groupId> <artifactId>fantj-parent</artifactId> <version>0.0.1-SNAPSHOT</version> <relativePath/> <!-- lookup parent from repository --> </parent> 同样在父类版本控制器里添加上这个模块的pom路径。 <modules> <module>../fantj-consumer-movie</module> <module>../fantj-provider-user</module> <module>../fantj-discovery-eureka</module> </modules> 3.配置application.yml server: port: 9000 eureka: client: register-with-eureka: false fetch-registry: false service-url: defaultZone: http://127.0.0.1:9000/eureka 如果想给eureka服务上添加身份验证功能,需要补充 #加入密码验证 security: basic: enabled: true user: name: laojiao password: laojiao 并且还需要添加springsecurity的依赖包。 我在这里不用身份验证。所以忽略该步骤 4.在启动类上加注解 @EnableEurekaServer表示这个springboot是一个eureka服务 启动该模块。 image.png 5.将服务注册至Eureka服务 image.png 比如我要将这个服务注册至eureka。 加依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> 第一个是eureka的依赖。第二个是监控与管理模块,它可以将该模块运行时的信息暴露出来。详细查看官方文档。 在启动类里加注解@EnableEurekaClient标明它是个eureka客户端 配置application 在原有基础上添加 eureka: client: service-url: defaultZone: http://127.0.0.1:9000/eureka #这个是eureka模块配置的默认空间 instance: prefer-ip-address: true #将主机名改成ip(192.168.0.1) instance-id: ${spring.application.name}:${spring.application.instance_id}:${server.port} instance是修改注册到eureka的ip地址信息。详细查看文档。 启动项目 image.png 我们就看到了user注册到了eureka列表里。

资源下载

更多资源
Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。