当前位置: 首页 > wzjs >正文

株洲新闻网红网株洲站百度大数据查询怎么用

株洲新闻网红网株洲站,百度大数据查询怎么用,云服务器怎么建设网站,临沂网站一、微服务注册中心Consul 编写完延迟任务系统的web层接口,也就是说可以基于http协议来访问延迟系统,接下来要将延迟任务改造成一个服务。首要考虑的问题就是服务的注册与发现,服务的注册与发现都离不开服务的注册中心,本项目选取…

一、微服务注册中心Consul

编写完延迟任务系统的web层接口,也就是说可以基于http协议来访问延迟系统,接下来要将延迟任务改造成一个服务。首要考虑的问题就是服务的注册与发现,服务的注册与发现都离不开服务的注册中心,本项目选取Consul作为注册中心。

注册中心为什么选择Consul

SpringCloud支持很多的服务发现软件,Eureka只是其中之一,常见的服务发现软件有:
Eureka
Consul
Zookeeper
Feature
etcd

Consul的特性

1.Consul是一个分布式高可用系统,他包含多个组件,但是作为一个整体,在微服务架构中为我们的基础设施提供服务发现和服务配置功能。
2.是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。
3.内置了服务注册与发现框架,分布式一致性协议实现,健康检查,key/value存储,多数据中心方案。
4.分布式实现不需要依赖其他工具,比如Zookeeper。
5.使用Go语言编写,具备天然可移植性,支持Linux、windows和Mac OS X,安装包仅一个可执行文件。

1.1.Consul安装

启动成功后打开浏览器访问网址: http://localhost:8500/
在这里插入图片描述

1.2.Consul的特性

服务发现、健康检查、Key/Value存储、多数据中心

1.3.Consul的优势

1.使用Raft算法保证一致性,比复杂的Paxos算法更直接。
2.支持多数据中心,内外网的服务采用不同端口进行监听。多数据中心集群可以避免但数据中心的单点故障,而其部署则需要考虑网络延迟,分片等情况。
3.支持健康检查
4.支持HTTP和DNS协议接口
5.官方提供web管理界面

1.4.Consul的角色

Client客户端

1.无状态
2.将HTTP和DNS接口请求转发给局域网的服务端集群

server服务端

1.保存配置信息
2.高可用集群
3.在局域网内与本地客户端通信
4.通过广域网与其他数据中心通信
5.每个数据中心的server数量推荐3个或5个

Consul的服务端和客户端支持跨中心使用,更加提升了高可用性。

二、SpringCloud集成Consul

现在需要使用SpringCloud集成Consol,将延迟任务注册到注册中心,变成一个服务。目前项目都是基于SpringBoot去构建的,需要将两者版本进行对应避免在开发过程中出现一些不必要的麻烦,需要注意SpringBoot和SpringCloud的版本对应关系。

步骤一:在chongba_parent父工程的pom文件中添加SpringCloud的依赖管理

先添加properties版本号参数

<spring-cloud.version>Greenwich.SR1</spring-cloud.version>

然后添加SpringCloud依赖坐标

<dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>

步骤二:延迟任务系统需要在注册中心去注册,在chongba_schedule_service的pom文件中添加依赖

<!--健康检查依赖包-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!--SpringCloudConsul支持包-->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>

步骤三:在chongba_schedule_service的application.yml配置文件中添加如下配置

springcloud:consul:host: 127.0.0.1port: 8500discovery:serviceName: ${spring.application.name}

步骤四:启动ScheduleApplication,查看Consul的UI控制台界面

在这里插入图片描述

三、延迟任务Feign集成

项目目前已经使用springcloud和consol进行了集成。并且将延迟任务系统在注册中心进行了注册,已经注册成为了一个微服务。并且我们已经启动了两个节点,成功改造成了分布式。
那么我们如何去调用服务?我们不可能使用向之前那样使用PostMan 去发送http请求调用。我们需要集成Feign组件。Feign组件集成之后,我们对服务的调用就会转换为对Feign接口方法的调用,使得调用http服务更加的简单。

Feign是一个声明式的HTTP客户端,spring-cloud-openfeign将feign集成到spring boot中,在接口上通过注解声明Rest协议,就能将http调用转换为接口方法的调用,这样达到客户端调用http服务更加简单。

此外:Spring Cloud Feign还整合了Spring Cloud Ribbon (负载均衡)和Spring Cloud Hystrix(熔断器)

步骤:

步骤1:在父工程chongba_parent下创建子模块chongba_schedule_feign,单独创建一个feign模块的作用是为了让其他模块使用起来更加的方便,直接引入feign模块即可。

步骤2:在chongba_schedule_feign模块的pom文件中添加如下依赖

<dependencies><dependency><groupId>com.chongba</groupId><artifactId>chongba_common</artifactId><version>1.0-SNAPSHOT</version></dependency><!--健康检查依赖包--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><!--SpringCloudConsul支持包--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-consul-discovery</artifactId></dependency><!--feign 支持 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency>
</dependencies>

步骤3:在src/main/java下创建包com.chongba.feign,并在该包下创建TaskServiceClient接口,用于调用延迟任务服务schedule-service

@FeignClient("schedule-service") //指定调用的服务名称
public interface TaskServiceClient {@PostMapping("/task/push")public ResponseMessage push(@RequestBody Task task);@GetMapping("/task/poll/{type}/{priority}")public ResponseMessage poll(@PathVariable("type") Integer type, @PathVariable("priority") Integer priority);@PostMapping("/task/cancel")public ResponseMessage cancel(@RequestParam("taskId") Long taskId);
}

下面如果想在chongba_schedule_feign工程中直接能对TaskServiceClient接口中的方法进行测试,则需要进行如下步骤的配置操作:

步骤1:在src/main/resources下创建配置文件 application.yml,并添加如下配置

spring:   application:  name: fegin #指定服务名cloud:consul:host: 127.0.0.1port: 8500discovery:register: false #不需要注册到consul

注意:feign无需在consul中注册,因为feign只需要去发现服务然后进行调用即可,自己本身并不需要称为一个服务

步骤2:在chongba_schedule_feign下创建启动类FeignAppliction

@SpringBootApplication
@EnableFeignClients
public class FeignAppliction {public static void main(String[] args) {SpringApplication.run(FeignAppliction.class,args);}
}

步骤3:在chongba_schedule_feign工程下创建测试包:com.chongba.feign,并创建测试类TaskClientTest,添加测试方法测试添加任务

@RunWith(SpringRunner.class)
@SpringBootTest(classes = FeignAppliction.class)
public class TaskClientTest {@Autowiredprivate TaskServiceClient taskServiceClient;@Testpublic void test1(){for (int i = 0; i < 4; i++) {Task task  = new Task();task.setTaskType(2003);task.setParameters("testFeignClient".getBytes());task.setPriority(100);task.setExecuteTime(new Date().getTime());ResponseMessage reponse = taskServiceClient.push(task);System.out.println(reponse);}}@Testpublic void test2(){ResponseMessage message = taskServiceClient.poll(2003, 100);System.out.println(message);}@Testpublic void test3(){taskServiceClient.cancel(1175734747444367362L);// 从数据库或缓存中查找一个任务id}
}

步骤4:测试,先清空数据库和缓存,必须保证延迟任务服务是启动状态,启动两个节点:81,82,以便测试出feign对负载均衡的集成。

feign接口注意事项:

  1. 当参数比较复杂时,feign即使声明为get请求也会强行使用post请求
    HTTP 405 错误 – 方法不被允许 (Method not allowed)
  2. 有参数时候必须使用 @RequestParam注解 必须要在后面加上参数名
http://www.dtcms.com/wzjs/474803.html

相关文章:

  • 东莞网站SEO优化推广seo首页优化
  • 建立动态网站的作用权重查询爱站网
  • 台中网站建设无锡seo网站排名
  • 网站关键词多长域名检测工具
  • 专做农产品的网站有哪些百度免费注册
  • 宝塔搭建网站教程网上如何推广产品
  • 网站建设在哪里进行网络营销策划书3000字
  • cdr做网站分辨率甘肃新站优化
  • 网站被301跳转西安seo公司哪家好
  • wordpress 获取天津企业seo
  • 怎么做免费的网站推广在线看网址不收费不登录
  • 网站漂浮广告怎么做谷歌推广seo
  • 淮南市建设管理委员会网站百度搜索推广收费标准
  • 谈谈你对企业网站的页面设计西安优化排名推广
  • 重庆金融公司网站建设邢台市seo服务
  • java网站登录日志怎么做百度手机助手app下载安装
  • 黑马程序员论坛seo 什么意思
  • 网站开发质保seo管理与优化期末试题
  • 网站建设课后心得厦门seo
  • 一个空间可以做多个网站吗seo知名公司
  • 五月天乐队做网站aso优化什么意思
  • 杭州做宠物网站的公司哪家好网络促销方案
  • 福州网站推广定制站长工具查询官网
  • 昆明企业网站模板建站搜索引擎优化的概念是什么
  • 二手书市场网站建设项目规划表百度账号个人中心
  • 昆明网站建设kmdtkjseo免费资源大全
  • 我们做av的搬运工网站搜索引擎优化seo价位
  • 朝阳网站建设培训肇庆网站推广排名
  • 做h5的图片网站百度推广客户端手机版下载
  • 代做效果图的网站好免费网站在线客服软件