Water(水孕育万物...)

Water 为项目开发、服务治理,提供一站式解决方案(可以理解为微服务架构支持套件)。基于 Solon 框架开发,并支持完整的 Solon Cloud 规范;已在生产环境跑了4年。

功能约等于:consul + rabbitmq + elk + prometheus + openFaas + quartz 等一些别的功能,并有机结合在一起。

本次更新

  • 服务 watersev,子级服务增加各自的注册。从而形成子级服务的集群

    • 服务 watersev-pln,可自由集群,并让每个任务分布到集群中运行
    • 服务 watersev-mot,可自由集群,并让每个任务分布到集群中运行
    • 服务 watersev-msgexg,可自由集群,并分解borker到不同节点上
    • 服务 watersev-msgdis,可自由集群,并分解borker到不同节点上
    • 服务 watersev-sevchk,取消启动时需要 reset 的逻辑
  • 服务 wateradmin
    • 增加服务规模、消息主题规模设置,从而自动调整控制台布局
  • 服务 waterapi
    • 镜像端口改为:9371
    • 优化日志记录格式,强调输出输出概念和上下文随带
  • 服务 waterraas
    • 端口改为:9375 (之前为:9376)
  • 服务 waterpaas
    • 更名为:waterfaas
  • 调整 PaaS 概念,将同时包含:FaaS + RaaS
    • FaaS 调整:

      • 数据表 paas_file 更名:luffy_file。强调FaaS自身的代号
      • 数据表 paas_etl 更名:luffy_etl
      • 管理后台 /paas/ 开头的路径,改为 /luffy/开头
      • 配置 paas_uri 更名为:faas_uri
  • 安全名单,增加 token 的模式支持

快速入门

了解开发框架与镜像

| --- | --- |

| 开发框架 | |

| org.noear:water.client | 框架:Water 客户端 |

| org.noear:water-solon-plugin | 框架:Water 客户端 for solon(也可用于 Spring Boot 项目) |

| 镜像 | |

| noearorg/waterapi | 镜像:Water 主接口服务 |

| noearorg/watersev | 镜像:Water 后台服务(健康检测;数据监视;消息派发;定时任务等...) |

| noearorg/wateradmin | 镜像:Water 管理控制台(支持LDAP登录) |

| noearorg/waterfaas | 镜像:Water 即时接口服务,提供轻量级FaaS接口服务 |

| noearorg/waterraas | 镜像:Water 规则计算服务,提供轻量级规则计算服务 |

控制台演示站

地址: http://water.noear.org (账号:demo ;密码:demo )

关键持久化说明:

  • 日志持久化,支持:MySql、PostgreSQL、MongoDb、ElasticSearch、ClickHouse
  • 消息持久化,支持:MySql、PostgreSQL、MongoDb

代码演示

(1) 配置
  • pom.xml / mevan 配置
<!-- 客户端版本 -->
<dependency>
<groupId>org.noear</groupId>
<artifactId>water.client</artifactId>
<version>${water.ver}</version>
</dependency> <!-- solon cloud 集成版本 (也可用于 Spring Boot 项目) -->
<dependency>
<groupId>org.noear</groupId>
<artifactId>water-solon-plugin</artifactId>
<version>${solon.ver}</version>
</dependency>
  • application.yml / 配置说明
solon.app:
name: "wateradmin"
group: "water" solon.cloud.water:
server: "waterapi:9371" #WATER服务地址
config:
load: "test.properties" #默认加载的配置
log:
default: "water_log_admin" #默认日志记录器
(2) 代码
public class DemoApp {
public void main(String[] args) {
SolonApp app = Solon.start(DemoApp.class, args); //监控服务:之:添加接口性能记录(一般这个过滤器写成独立类)
Logger log = LoggerFactory.getLogger(DemoApp.class);
app.filter((ctx, chain) -> {
//1.开始计时(用于计算响应时长)
long start = System.currentTimeMillis(); try {
chain.doFilter(ctx);
} catch (Throwable e) {
//2.顺带记录个异常
log.error("{}",e);
} finally {
//3.获得接口响应时长
long milliseconds = System.currentTimeMillis() - start;
CloudClient.metric().addMeter(Solon.cfg().appName(), "path", ctx.pathNew(), milliseconds);
}
});
}
} @Slf4j
@Controller
public class DemoController{
@CloudConfig(name = "demoDb", autoRefreshed = true) //配置服务的功能(注解模式)
DbContext demoDb; @NamiClient //RPC服务发现的功能(注解模式)
RockService rockService; @Mapping("/")
public void test(){
//日志服务:写个日志
log.info("你好,日志服务"); //(content)
TagsMDC.tag0("demo");
log.error("{}\r\n{}","test","你好,日志服务"); //(tag,summary,content) //配置服务:使用配置的数据库上下文进行查询
Map map = demoDb.table("water_reg_service").limit(1).selectMap("*"); //消息服务:发送消息
CloudClient.event().publish(new Event("demo.test", "{\"order_id\":1}")); //(非注解模式) //Rpc发现服务:调用Rpc接口
AppModel app = rockService.getAppById(12);
}
} //消息订阅:订阅消息并处理(根据:topic 进行订阅)
@Slf4j
@CloudEvent("demo.test")
public class Event_demo_test implements CloudEventHandler {
@Override
public boolean handler(Event event) throws Exception {
//处理消息...
log.info("我收到消息:" + event.content());
return true;
}
} //配置订阅:关注配置的实时更新
@CloudConfig("demoDb")
public class TestConfigHandler implements CloudConfigHandler {
@Override
public void handler(Config config) { }
} //分布式任务
@CloudJob(name = "demo_test", cron7x = "0 1 * * * ?")
public class Job_test implements CloudJobHandler { @Override
public void handle(Context ctx) throws Throwable {
//处理任务...
log.info("我被调度了");
}
}

Water 2.4 发布,一站式服务治理平台的更多相关文章

  1. Water 2.5 发布,一站式服务治理平台

    Water(水孕育万物...) Water 为项目开发.服务治理,提供一站式解决方案(可以理解为微服务架构支持套件).基于 Solon 框架开发,并支持完整的 Solon Cloud 规范:已在生产环 ...

  2. Water 2.5.6 发布,一站式服务治理平台

    Water(水孕育万物...) Water 为项目开发.服务治理,提供一站式解决方案(可以理解为微服务架构支持套件).基于 Solon 框架开发,并支持完整的 Solon Cloud 规范:已在生产环 ...

  3. Water 2.5.8 发布,一站式服务治理平台

    Water(水孕育万物...) Water 为项目开发.服务治理,提供一站式解决方案(可以理解为微服务架构支持套件).基于 Solon 框架开发,并支持完整的 Solon Cloud 规范:已在生产环 ...

  4. Water 2.5.9 发布,一站式服务治理平台

    Water(水孕育万物...) Water 为项目开发.服务治理,提供一站式解决方案(可以理解为微服务架构支持套件).基于 Solon 框架开发,并支持完整的 Solon Cloud 规范:已在生产环 ...

  5. Water 2.6.1 发布,一站式服务治理平台

    Water(水孕育万物...) Water 为项目开发.服务治理,提供一站式解决方案(可以理解为微服务架构支持套件).基于 Solon 框架开发,并支持完整的 Solon Cloud 规范:已在生产环 ...

  6. Water 2.6.3 发布,一站式服务治理平台

    Water(水孕育万物...) Water 为项目开发.服务治理,提供一站式解决方案(可以理解为微服务架构支持套件).基于 Solon 框架开发,并支持完整的 Solon Cloud 规范:已在生产环 ...

  7. 微服务治理平台的RPC方案实现

    导读:本文主要探讨了rpc框架在微服务化中所处的位置,需要解决的问题.同时介绍了用友云微服务治理平台的rpc解决方案,为什么选择该方案.该方案提供的好处是什么.同时也会介绍用友RPC框架的基本结构以及 ...

  8. PowerDotNet平台化软件架构设计与实现系列(04):服务治理平台

    系统和系统之间,少不了数据的互联互通.随着微服务的流行,一个系统内的不同应用进行互联互通也是常态. PowerDotNet的服务治理平台发源于早期的个人项目Power.Apix.这个项目借鉴了工作过的 ...

  9. Govern Service 基于 Redis 的服务治理平台

    Govern Service 基于 Redis 的服务治理平台(服务注册/发现 & 配置中心) Govern Service 是一个轻量级.低成本的服务注册.服务发现. 配置服务 SDK,通过 ...

随机推荐

  1. C语言日记② 初识 C的内存

    第一节: 上一个笔记 有趣的恶搞小程序 定时关机 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <str ...

  2. Oracle配置tcps加密协议

    1.Oracle用户下操作,创建证书 mkdir /home/oracle/wallet orapki wallet create -wallet "/home/oracle/wallet& ...

  3. NOIP模拟79

    T1 F 解题思路 因为每个点会产生贡献当且仅当它在可以到他的点之前被删除,并且此题遵守期望的线性性. 因此设所有可以到达点 \(i\) 的数量为 \(c_i\) 那么答案就是 \(\sum \fra ...

  4. Java(2)详解注释&关键字&常量&变量&标识符

    作者:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15201497.html 博客主页:https://www.cnblogs.com/testero ...

  5. Golang通脉之基础入门

    为什么要学 Go 性能优越感:Go 极其地快,其性能与 Java 或 C++相似.在使用中,Go 一般比 Python 要快 30 倍: 序列化/去序列化.排序和聚合中表现优异: 开发者效率较高:多种 ...

  6. Python小工具:据说这是搜索文件最快的工具!没有之一!一起感受下......

    电脑自带的搜索文件功能相信大家都体验过,那是真的慢,等它找到文件,我都打完一把游戏了! 那必须不能忍,于是我自己做了一个文件搜索工具,犄角旮旯的文件都能一秒钟搜索出来的那种! 保证能把你们男(女)朋友 ...

  7. 腾讯bugly产生bug定位行数不准解决方案

    定位不准是因为做了混淆导致行数与实际代码行数不对.解决方案是要上传符号表.下载地址https://bugly.qq.com/v2/downloads 下载好因为我打开文件的说明文件是空文件(可能工作人 ...

  8. Flink sql 之 join 与 StreamPhysicalJoinRule (源码解析)

    源码分析基于flink1.14 Join是flink中最常用的操作之一,但是如果滥用的话会有很多的性能问题,了解一下Flink源码的实现原理是非常有必要的 本文的join主要是指flink sql的R ...

  9. Beta Scrum Meeting汇总

    第0次Alpha Scrum Meeting 第1次Alpha Scrum Meeting 第2次Alpha Scrum Meeting 第3次Alpha Scrum Meeting 第4次Alpha ...

  10. AlertManager集群搭建

    AlertManager集群搭建 一.AlertManager集群搭建 1.背景 2.机器 3.集群可用配置 4.alertmanager启动脚本 1.127.0.0.1:9083 机器启动脚本 2. ...