resttemplate

第一轮面试题汇总

China☆狼群 提交于 2020-02-10 11:07:17
1.描述下数据库中的事务--ACID各个的特点 原子性(Atomicity):事务中的操作要么全部成功要么全部失败。 一致性(Consistency):事务前后数据的完整性必须保持一致。 隔离性(Isolation):多个并发的事务之间是相互隔离的,互不干扰的。 持久性(Durability):事务提交后,数据是永久改变的。 2.什么是springboot?你们公司是用的哪个版本? SpringBoot是Spring推出用于解决传统框架配置文件冗余,装配组件繁杂的基于Maven的解决方案,旨在快速搭建单个微服务。 Spring boot 的优点 轻松创建独立的Spring应用程序 内联Tomcat、jetty等web容器,不需要部署WAR文件。 提供一系列的“starter”来简化的Maven配置 开箱即用,尽可能自动配置Spring 版本号:2.1.6 3.什么是redis? Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 Redis优势 性能极高-Redis能读的速度是110000次/s,写的速度是81000次/s 。 丰富的数据类型-Redis支持二进制案列的String,Lists,Hashes,Sets及Ordered Sets 数据类型操作。 原子—Redis的所有操作都是原子性(不可再分)的,意思就是要么成功执行要么失败不执行

基于Sentinel的服务保护

99封情书 提交于 2020-02-09 14:47:26
通用资源保护 引入依赖 需要注意SpringCloud-Alibaba与SpringCloud的版本关系 父工程引入 alibaba实现的SpringCloud <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Greenwich.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2.1.0.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> 子工程中引入 sentinel <dependency> <groupId>com

用ZooKeeper做为注册中心搭建基于Spring Cloud实现服务注册与发现

♀尐吖头ヾ 提交于 2020-02-08 05:32:00
前提: 先安装好ZooKeeper的环境,搭建参考: http://www.cnblogs.com/EasonJim/p/7482961.html 说明: 可以再简单的理解为有两方协作,一个是服务提供这,另一个是服务消费者。 搭建实例: 说明:基于Maven的模块工程 父工程POM: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.jsoft.testzookeeper</groupId> <artifactId>zookeeperdemo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> <name>ZooKeeperDemo</name> <description>This is ZookKeeperDemo<

综合使用spring cloud技术实现微服务应用

岁酱吖の 提交于 2020-02-08 04:09:43
  在之前的章节,我们已经实现了配置服务器、注册服务器、微服务服务端,实现了服务注册与发现。这一章将实现微服务的客户端,以及联调、实现整个spring cloud框架核心应用。   本文属于《7天学会spring cloud系列》之五,涉及到的项目包括:   开源项目: http://git.oschina.net/zhou666/spring-cloud-7simple cloud-config-server:配置服务器 cloud-eureka-server:eureka注册服务器 cloud-simple-service:一个使用mybatis的数据库应用,服务端 cloud-simple-ui:webui客户端   我们先来看看如何实现webui客户端。在spring boot中,已经不推荐使用jsp,所以你如果使用jsp来实现webui端,将会很麻烦。这可能跟现在的开发主流偏重移动端有关,跟微服务有关,跟整个时代当前的技术需求有关。单纯以html来作为客户端,有很多好处,比如更利于使用高速缓存;使后台服务无状态话,更利于处理高并发;更利于页面作为服务,小服务组合成大服务等。   我们首选来创建webui应用,参考git cloud-simple-ui工程:    这个应用包括前端html页面,还包括一个后台controller浅层。这是一个前端应用

一、spring cloud alibaba学习(nacos,ribbon)

北城余情 提交于 2020-02-08 02:11:41
对比 Nacos 服务发现组建,也是配置服务器 用来解决服务a如何找到服务b、并且管理微服务 下载应用程序,并打开,以启动Nacos Server 加依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>${latest.version}</version> </dependency> 没有注解。 写配置,制定Nacos Server的地址、服务名称 spring: cloud: nacos: discovery: #指定nacos server的地址 server-addr: localhost:8848 application: #服务名称尽量用-,不要用_及特殊字符 name: user-center 领域模型 namespace:主要用于隔离,例如隔离开发环境,生产环境,测试环境等。不能跨namespace调用实例。 group:把不同的微服务放到一个分组里,方便管理。(alibaba0.9.0中没有用到) service:微服务 cluster:集群,对指定微服务的虚拟划分 instance:微服务实例 namespace和cluster:

zipkin分布式追踪系统原理与实现

限于喜欢 提交于 2020-02-07 21:00:21
前言 传统单机系统在使用过程中,如果某个请求响应过慢或是响应出错,开发人员可以清楚知道某个请求出了问题,查看日志可以定位到具体方法。但是在分布式系统中,倘若客户端一个请求到达服务器后,由多个服务协作完成。比如:服务A调用服务B,服务B又调用服务C和服务D,服务D又调用服务E,那么想要知道是哪个服务处理时间过长或是处理异常导致这个请求响应缓慢或中断的话,就需要开发人员一个服务接一个服务的去机器上查看日志,先定位到出问题的服务,再定位出问题的具体地方。试想一下,随着系统越来越壮大,服务越来越多,一个请求对应处理的服务调用链越来越长,这种排查方式何其艰难。为了解决这种问题,便诞生了各种分布式场景中追踪问题的解决方案,zipkin就是其中之一。 整体结构长啥样 一个独立的分布式追踪系统,客户端存在于应用中(即各服务中),应具备追踪信息生成、采集发送等功能,而服务端应该包含以下基本的三个功能: 信息收集:用来收集各服务端采集的信息,并对这些信息进行梳理存储、建立索引。 数据存储:存储追踪数据。 查询服务:提供查询请求链路信息的接口。 zipkin 整体结构图如下: zipkin(服务端)包含四个组件,分别是collector、storage、search、web UI。 collector 就是信息收集器,作为一个守护进程,它会时刻等待客户端传递过来的追踪数据,对这些数据进行验证

RestTemplate 调接口总结

旧时模样 提交于 2020-02-07 10:22:21
RestTemplate调接口其实就是用RestTemplate 相应的方法做CRUD,但是不知道为啥我做的时候就不顺,所以也是一个人大门不出二门不迈在家写了个demo研究一下 总体脉络还是按GET POST DELET PUT 把每种情况说一下吧(其实本人也是菜鸟一枚,不足之处请多多指正!) 所调用接口统一都是这样的(可能不带参数): String src = "http://localhost:8082/sys/sendmessagecode/sendcode?phoneNumber="+phoneNumber; (一) GET 1:不带参数的 我这个是用getForEntity调用的(代码如下), 因为是GET肯定不能用postForObject()这种post开头的方法 。也可以用 new RestTemplate().execute()或new RestTemplate().exchange()这种来调用 public List<SysUser> face() { String src = "http://localhost:8082/sys/user/jk"; ResponseEntity<List> forEntity = new RestTemplate().getForEntity(src, List.class); List<SysUser> body =

How to call another rest api from my controller in Micronaut like in Spring-Boot RestTemplate?

主宰稳场 提交于 2020-02-07 05:10:30
问题 I have the following function from Spring Boot. I cannot do it with declarative client thus my uri domain changed after every call so i need a RestTemplate like in Spring Boot. How can i achieve the same in Micronaut? private static void getEmployees() { final String uri = "http://localhost:8080/springrestexample/employees.xml"; RestTemplate restTemplate = new RestTemplate(); String result = restTemplate.getForObject(uri, String.class); System.out.println(result); } 回答1: Something like this

SpringCloud(五) 使用Ribbon进行Restful请求

余生颓废 提交于 2020-02-02 08:56:18
写在前面 本文由markdown格式写成,为本人第一次这么写,排版可能会有点乱,还望各位海涵。 主要写的是使用Ribbon进行Restful请求,测试各个方法的使用,代码冗余较高,比较适合初学者,介意轻喷谢谢。 前提 一个可用的Eureka注册中心(文中以之前博客中双节点注册中心,不重要) 一个连接到这个注册中心的服务提供者 一个ribbon的消费者 注意:文中使用 @GetMapping 、 @PostMapping 、 @PutMapping 、 @DeleteMapping 等注解需要升级 spring-boot-starter-parent版本到1.5.9.REALEASE以上(1.3.7.RELEASE版本没有这些注解) 建议:每个微服务应用都有自己的 spring-boot-maven-plugin 和 maven-compiler-plugin 并指定jdk编译版本为1.8 ,指定方式如下,pom.xml中添加 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins<

spring boot单元测试之RestTemplate(三)——api详解

被刻印的时光 ゝ 提交于 2020-02-02 08:14:31
本篇内容来自翟永超的《Springcloud微服务实战》,转载请注明。 一、GET请求 在RestTemplate中,对GET请求可以通过如下两个方法进行调用实现。 第一种:getForEntity函数。 该方法返回的是ResponseEntity,该对象是Spring对HTTP请求响应的封装,其中主要存储了HTTP的几个重要元素,比如HTTP请求状态码的枚举对象HttpStatus(也就是我们常说的404、500这些错误码)、在它的父类HttpEntity中还存储着HTTP请求的头信息对象HttpHeaders以及泛型类型的请求体对象。 比如下面的例子,就是访问USER-SERVER服务的/user请求,同时最后一个参数didi会替换url中的{1}占位符,而返回的ResponseEntity对象中的body内容类型会根据第二个参数转换为String类型。 RestTemplaterestTemplate=newRestTemplate(); ResponseEntity<String>responseEntity=restTemplate.getForEntity("http://USERSERVICE/user?name={1}",String.class,"didi"); Stringbody=responseEntity.getBody();