内容简介:Solon 已有120个生态扩展插件,此次更新主要涉及 Solon Cloud 细节打磨: 调整 本地服务发现配置,与云端发现并存,并优于云端发现 # 这个特性,在k8s下会更方便。比如,dubbo 需要用注册服务,但 某 服务可直接...
Solon 已有120个生态扩展插件,此次更新主要涉及 Solon Cloud 细节打磨:
-
调整 本地服务发现配置,与云端发现并存,并优于云端发现
# 这个特性,在k8s下会更方便。比如,dubbo 需要用注册服务,但 某 服务可直接通过 service name 调用 # solon.cloud.nacos: server: xxx.xxx.xxx solon.cloud.local: discovery: service: userapi: - "http://userapi" -
增加 CloudLoadBalanceFactory::register 接口(用于本地注册)
// 这个特性,算是"本地服务发现配置"的手动代码模式 // CloudLoadBalanceFactory.instance .register("","userapi",()-> "http://userapi"); //solon 一直崇尚代码的自动。 -
优化 CloudFileService 接口设计:get,put,delete+Media
//上传 CloudClient.file().put("user_1", new Media("{\"name\":\"noear\"}")); //上传文件 CloudClient.file().put("user_1_logo", new Media(inputStream, "image/jpg")); //上传图片 //获取 String userJson = CloudClient.file().get("user_1").bodyAsString(); InputStream userLogo = CloudClient.file().get("user_1_logo").body(); //删除 CloudClient.file().delete("user_1"). - 添加 minio-solon-plugin 插件
# solon cloud 已适配了:aliyun oss、aws S3、七牛云存储、mino 的对象存储适配插件(即 CloudFileService 接口) - 添加 solon.extend.health 插件
//提供一个 "/healthz" 的检测地址,并可增加检测点 @Configuration public class Config { @Bean public void healthInit(){ HealthChecker.addPoint("preflight", Result::succeed); HealthChecker.addPoint("test", Result::failure); HealthChecker.addPoint("boom", () -> { throw new IllegalStateException(); }); } }
关于 Solon
Solon 是一个轻量的Java基础开发框架。强调,克制 + 简洁 + 开放的原则;力求,更小、更快、更自由的体验。支持:RPC、REST API、MVC、Job、Micro service、WebSocket、Socket 等多种开发模式。短小而精悍!
关于 Solon Cloud
Solon Cloud 是一系列的接口标准和配置规范,相当于DDD模式里的防腐层概念。是 Solon 的微服务架构模式开发解决方案。
快速了解 Solon 的材料:
《Solon 特性简集,相较于 Springboot 有什么区别?》
《Solon Cloud 分布式服务开发套件清单,感觉受与 Spring Cloud 的不同》
所谓更小:
内核0.1m,最小的接口开发单位0.2m(相较于 Dubbo、Springboot 的依赖包,小到可以乎略不计)
所谓更快:
本机http helloworld测试,Qps可达12万之多。可参考:《helloworld_wrk_test》
所谓更自由:(代码操控自由)
// 除了注解模式之外,还可以按需手动
//
//手动获取配置(Props 为 Properties 增强版)
Props db = Solon.cfg().getProp("db");
//手动获取容器里的Bean
UserService userService = Aop.get(UserService.class);
//手动监听http post请求
Solon.global().post("/user/update", x-> userService.updateById(x.paramMap()));
//手动添加个RPC服务
Solon.global().add("/rpc/", HelloService.class, true);
//手动获取一个RPC服务消费端
HelloService helloService = Nami.builder().create(HelloService.class);
//手动为容器添加组件
Aop.wrapAndPut(DemoService.class);
Hello world:
//Handler 模式:
public class App{
public static void main(String[] args){
SolonApp app = Solon.start(App.class,args);
app.get("/",(c)->c.output("Hello world!"));
}
}
//Controller 模式:(mvc or rest-api)
@Controller
public class App{
public static void main(String[] args){
Solon.start(App.class,args);
}
//限定 put 方法类型
@Put
@Mapping("/")
public String hello(String name){
return "Hello " + name;
}
}
//Remoting 模式:(rpc)
@Mapping("/")
@Remoting
public class App implements HelloService{
public static void main(String[] args){
Solon.start(App.class,args);
}
@Override
public String hello(){
return "Hello world!";
}
}
附:入门示例
- Solon 入门教程示例:https://gitee.com/noear/solon_demo
- Solon Api 入门教程示例:https://gitee.com/noear/solon_api_demo
- Solon Rpc 入门教程示例:https://gitee.com/noear/solon_rpc_demo
- Solon Auth 入门教程示例:https://gitee.com/noear/solon_auth_demo
- Solon Cloud 入门教程示例:https://gitee.com/noear/solon_cloud_demo
- Solon 进阶教程示例:https://gitee.com/noear/solon_advance_demo
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Web Design Handbook
Baeck, Philippe de 编 / 2009-12 / $ 22.54
This non-technical book brings together contemporary web design's latest and most original creative examples in the areas of services, media, blogs, contacts, links and jobs. It also traces the latest......一起来看看 《Web Design Handbook》 这本书的介绍吧!
