Spring Cloud远程调用中,如何优化管理员服务系统的稳定性?
- 内容介绍
- 文章标签
- 相关推荐
本文共计852个文字,预计阅读时间需要4分钟。
1.+ 远程调用是指客户端程序通过接口调用服务端程序,并获取服务端返回数据的过程。例如,产品管理系统调用用户管理系统的过程,就是远程调用。此时,远程调用
1. 什么是远程调用
客户端程序通过接口调用服务端程序,并获得该服务返回的数据的过程,称为远程调用。
“商品管理系统”调用“用户管理系统”的过程,就是“远程调用”。此时“商品管理系统”相当于模拟“浏览器”。
1.1 调用方式
常见的远程调用方式有2种:
RPC:Remote Produce Call远程过程调用,==自定义数据==格式的远程调用方式。基于原生TCP通信,速度快,效率高。
Http:采用localhost:3306/20220622exam?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
username: root
password: 1234
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #输出日志
map-underscore-to-camel-case: true
global-config:
db-config:
table-prefix: t_
3.创建javaBean
package com.czxy.domain;import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("companys")
public class Companys {
@TableId
private String keyno;
private String cname;
private String oper;
private String industry;
}
4.创建CompanysContoller
@RestController@RequestMapping("/companys")
public class CompanysContoller {
@Resource
private CompanysMapper companysMapper;
@GetMapping
public BaseResult selectAll(){
List<Companys> list = companysMapper.selectList(null);
if(list ==null){
return BaseResult.error("查询失败");
}
return BaseResult.ok("查询成功",list);
}
@GetMapping("/{keyno}")
public BaseResult selectById(@PathVariable("keyno"){
Companys companys = companysMapper.selectById(keyno);
if(companys ==null){
return BaseResult.error("查询失败");
}
return BaseResult.ok("查询成功",companys);
}
@PostMapping
public BaseResult save(@RequestBody Companys companys){
int insert = companysMapper.insert(companys);
if(insert !=1){
return BaseResult.error("添加失败");
}
return BaseResult.ok("添加成功");
}
@DeleteMapping("/{keyno}")
public BaseResult deleteById(@PathVariable("keyno"){
int i = companysMapper.deleteById(keyno);
if(i !=1){
return BaseResult.error("删除失败");
}
return BaseResult.ok("删除成功");
}
@PutMapping
public BaseResult updata(@RequestBody Companys companys){
int i = companysMapper.updateById(companys);
if(i !=1){
return BaseResult.error("修改失败");
}
return BaseResult.ok("修改成功");
}
}
5.创建Mapper
@Mapperpublic interface CompanysMapper extends BaseMapper<Companys> {
}
6.创建启动类
@SpringBootApplicationpublic class TestCompanyApplication {
public static void main(String[] args){
SpringApplication.run(TestCompanyApplication.class,args);
}
}
2.2 创建子项目:company-localhost:8081/companys";
ResponseEntity<BaseResult> entity = restTemplate.getForEntity(url, BaseResult.class);
List<Companys> list = (List<Companys>) entity.getBody().getData();
return list;
}
public BaseResult<Companys> selectById(String keyno){
String url="localhost:8081/companys/"+keyno;
ResponseEntity<BaseResult<Companys>> resultResponseEntity = restTemplate.exchange(url, HttpMethod.GET, null, new ParameterizedTypeReference<BaseResult<Companys>>() {
});
return resultResponseEntity.getBody();
}
public void insert(Companys companys){
String url="localhost:8081/companys";
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<BaseResult> entity = restTemplate.postForEntity(url, companys, BaseResult.class);
}
public Boolean delete(String keyno){
String url="localhost:8081/companys/"+keyno;
RestTemplate restTemplate = new RestTemplate();
restTemplate.delete(url);
return true;
}
public void update(Companys companys){
String url="localhost:8081/companys";
RestTemplate restTemplate = new RestTemplate();
restTemplate.put(url,companys,BaseResult.class);
}
}
最后进行测试
localhost:8082/swagger-ui.html#/最后只要能调用到就说明你已经学会了哦~
本文共计852个文字,预计阅读时间需要4分钟。
1.+ 远程调用是指客户端程序通过接口调用服务端程序,并获取服务端返回数据的过程。例如,产品管理系统调用用户管理系统的过程,就是远程调用。此时,远程调用
1. 什么是远程调用
客户端程序通过接口调用服务端程序,并获得该服务返回的数据的过程,称为远程调用。
“商品管理系统”调用“用户管理系统”的过程,就是“远程调用”。此时“商品管理系统”相当于模拟“浏览器”。
1.1 调用方式
常见的远程调用方式有2种:
RPC:Remote Produce Call远程过程调用,==自定义数据==格式的远程调用方式。基于原生TCP通信,速度快,效率高。
Http:采用localhost:3306/20220622exam?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
username: root
password: 1234
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #输出日志
map-underscore-to-camel-case: true
global-config:
db-config:
table-prefix: t_
3.创建javaBean
package com.czxy.domain;import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("companys")
public class Companys {
@TableId
private String keyno;
private String cname;
private String oper;
private String industry;
}
4.创建CompanysContoller
@RestController@RequestMapping("/companys")
public class CompanysContoller {
@Resource
private CompanysMapper companysMapper;
@GetMapping
public BaseResult selectAll(){
List<Companys> list = companysMapper.selectList(null);
if(list ==null){
return BaseResult.error("查询失败");
}
return BaseResult.ok("查询成功",list);
}
@GetMapping("/{keyno}")
public BaseResult selectById(@PathVariable("keyno"){
Companys companys = companysMapper.selectById(keyno);
if(companys ==null){
return BaseResult.error("查询失败");
}
return BaseResult.ok("查询成功",companys);
}
@PostMapping
public BaseResult save(@RequestBody Companys companys){
int insert = companysMapper.insert(companys);
if(insert !=1){
return BaseResult.error("添加失败");
}
return BaseResult.ok("添加成功");
}
@DeleteMapping("/{keyno}")
public BaseResult deleteById(@PathVariable("keyno"){
int i = companysMapper.deleteById(keyno);
if(i !=1){
return BaseResult.error("删除失败");
}
return BaseResult.ok("删除成功");
}
@PutMapping
public BaseResult updata(@RequestBody Companys companys){
int i = companysMapper.updateById(companys);
if(i !=1){
return BaseResult.error("修改失败");
}
return BaseResult.ok("修改成功");
}
}
5.创建Mapper
@Mapperpublic interface CompanysMapper extends BaseMapper<Companys> {
}
6.创建启动类
@SpringBootApplicationpublic class TestCompanyApplication {
public static void main(String[] args){
SpringApplication.run(TestCompanyApplication.class,args);
}
}
2.2 创建子项目:company-localhost:8081/companys";
ResponseEntity<BaseResult> entity = restTemplate.getForEntity(url, BaseResult.class);
List<Companys> list = (List<Companys>) entity.getBody().getData();
return list;
}
public BaseResult<Companys> selectById(String keyno){
String url="localhost:8081/companys/"+keyno;
ResponseEntity<BaseResult<Companys>> resultResponseEntity = restTemplate.exchange(url, HttpMethod.GET, null, new ParameterizedTypeReference<BaseResult<Companys>>() {
});
return resultResponseEntity.getBody();
}
public void insert(Companys companys){
String url="localhost:8081/companys";
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<BaseResult> entity = restTemplate.postForEntity(url, companys, BaseResult.class);
}
public Boolean delete(String keyno){
String url="localhost:8081/companys/"+keyno;
RestTemplate restTemplate = new RestTemplate();
restTemplate.delete(url);
return true;
}
public void update(Companys companys){
String url="localhost:8081/companys";
RestTemplate restTemplate = new RestTemplate();
restTemplate.put(url,companys,BaseResult.class);
}
}
最后进行测试
localhost:8082/swagger-ui.html#/最后只要能调用到就说明你已经学会了哦~

