一个异步的,高性能的,跨语言的,响应式的API网关。我希望能够有一样东西像灵魂一样,保护您的微服务。参考了Kong,Spring-Cloud-Gateway等优秀的网关后,站在巨人的肩膀上,Soul由此诞生!
是不是很吊的一句话,站在巨人身上那么这些巨人也就变成了矮子。
是不是很炫反正我是没看懂
souladmin:控制台,负责维护网关的元数据、配置等等,并提供给 SoulBootstrap 网关服务读取。
在mysql数据库中执行下面图中sql,12张表
在浏览器输入https://yu199195.github.io/jar/soul-admin.jar 回车下载即可,yml文件复制一份在外部启动,用自己的数据库
启动命令:java -jar soul-admin.jar --spring.config.location=xxxxx\application-local.yml
启动成功后
通过日志看到 Soul Admin 启动在 9095 端口。使用浏览器,访问 http://127.0.0.1:9095/ 地址,进入登录页,账号密码分别是:admin 和123456
SoulBootstrap:网关服务,负责启动网关,并转发请求到后端服务。
在浏览器输入https://yu199195.github.io/jar/soul-bootstrap.jar 回车下载即可,yml文件复制一份在外部启动,用自己的数据库
启动命令:java -jar soul-bootstrap.jar --soul.sync.websocket.url="ws://localhost:9095/websocket",如下图表示启动成功
使用浏览器,访问 http://127.0.0.1:9195
针对其他方式参考官方文档:https://dromara.org/website/zh-cn/docs/soul/user-http.html
官方代码gitee地址:https://github.com/Dromara/soul/tree/master
soul网关使用 divide 插件来处理http请求
SpringBoot项目
pom依赖
1.8
1.8
2.2.4.RELEASE
org.springframework.boot
spring-boot-starter-parent
${spring.boot.version}
pom
import
org.springframework.boot
spring-boot-starter-web
org.dromara
soul-spring-boot-starter-client-springmvc
2.2.0
org.dromara
soul-client-springmvc
2.2.0
yml中solu配置
soul:
http:
adminUrl: http://localhost:9095
port: 8080
contextPath: /boot
appName: soulboot
full: false
启动项
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
controller层
import org.dromara.soul.client.springmvc.annotation.SoulSpringMvcClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/user")
@SoulSpringMvcClient(path = "/user")
public class UserController {
private Logger logger = LoggerFactory.getLogger(getClass());
@GetMapping("/get")
@SoulSpringMvcClient(path = "/get")
public String getUser(@RequestParam("id") Integer id) {
return "DEMO:" + id;
}
@PostMapping("/create")
public Integer createUser(@RequestBody UserCreateDTO createDTO) {
logger.info("[createUser][username({}) password({})]", createDTO.getNickname(), createDTO.getGender());
return 1;
}
}
dao层
public class UserCreateDTO {
/**
* 昵称
*/
private String nickname;
/**
* 性别
*/
private Integer gender;
public String getNickname() {
return nickname;
}
public UserCreateDTO setNickname(String nickname) {
this.nickname = nickname;
return this;
}
public Integer getGender() {
return gender;
}
public UserCreateDTO setGender(Integer gender) {
this.gender = gender;
return this;
}
}
启动后出现下图表示成功
HTTP API 方法的元数据到 Soul Admin 控制台,启动后慧自动配置
然后在postman请求
通过网关bootstrap转发到后台
上面就是对soul对springboot配置的网关,未完待续。。。。。。