应用示例:
solon.app: group: demo #配置服务使用的默认组 name: helloconsumer #发现服务使用的应用名 solon.cloud.rocketmq: server: localhost:5672 #rabbitmq 服务地址 username: root #rabbitmq 链接账号 password: 123456 #rabbitmq 链接密码 // //消费者:订阅事件 // @CloudEvent("hello.demo") public class EVENT_hello_demo implements CloudEventHandler { @Override public boolean handler(Event event) throws Throwable { //业务处理 System.out.println(LocalDateTime.now() + ONode.stringify(event)); //如果成功返回true,否则为false(之后会延时再派送) return true; } } // // 发产者:发布事件 // @Controller public class DemoController { @Mapping("/test") public Object test(String msg) { if(Utils.isEmpty(msg)){ msg = "demo2"; } //发布事件 Event event = new Event("hello.demo", msg); return CloudClient.event().publish(event); } }附演示源码:https://gitee.com/noear/solon_rpc_demo/tree/main/demo30.solon-cloud-rabbitmq
5、发布日志总线服务适配组件water-solon-plugin(对water日志的适配)
特性说明:
支持元信息描述(可语义操作)
@Controller public class DemoController { CloudLogger logger = CloudLogger.get(TestController.class); @Mapping("/test") public void test(String msg) throws Exception { logger.info("我是好人:("); logger.info("我不是:{} \n\n {}", "坏人",12); logger.info(Tags.tag2("打卡"), "我是谁?"); } } 6、NamiClient 升级,与Solon cloud 规范更好的配合 新属性 说明 示例url 完整的url地址
group 服务组 water
name 服务名或负载均衡组件名(配合发现服务使用) waterapi
path 路径 /cfg/get/
注:旧的基于表达式的属性 uri,不再使用
附1: 统一的服务适配接口 服务接口 说明 已支持适配组件CloudConfigService 配置服务接口 consul-solon-plugin、nacos-solon-plugin、water-solon-plugin
CloudDiscoveryService 发现服务接口 consul-solon-plugin、nacos-solon-plugin、water-solon-plugin
CloudEventService 事件总线接口 water-solon-plugin、rabbitmq-solon-plugin、rocketmq-solon-plugin
CloudLogService 日志总线接口 water-solon-plugin
附2:统一的服务配置规范
注:具体配置时,用框架名替代@@符
属性说 说明 框架可使用情况solon.cloud.@@.server 服务地址(ip:port) nacos、consul、water
solon.cloud.@@.token 链接令牌 consul
solon.cloud.@@.username 链接用户名 nacos
solon.cloud.@@.password 链接密码 nacos
solon.cloud.@@.alarm 造警接收号 water
solon.cloud.@@.config.enable 配置服务启用(默认:true) nacos、consul、water
solon.cloud.@@.config.server 服务地址(ip:port) nacos、consul、water
solon.cloud.@@.config.loadGroup 需要启动时加载的配置组 nacos、water
solon.cloud.@@.config.loadKey 需要启动时加载的Key nacos、consul、wate
solon.cloud.@@.config.refreshInterval 配置刷新间隔 consul
solon.cloud.@@.discovery.enable 注册与发现服务启用(默认:true) nacos、consul、water
solon.cloud.@@.discovery.server 服务地址(ip:port) nacos、consul、water
solon.cloud.@@.discovery.tags 服务标签 consul
solon.cloud.@@.discovery.healthCheckPath 服务健康检查路径 consul、water
solon.cloud.@@.discovery.healthCheckInterval 服务健康检查间隔时间 consul
solon.cloud.@@.discovery.healthDetector 服务健康上报指标 consul
solon.cloud.@@.discovery.refreshInterval 服务发现刷新间隔 consul
solon.cloud.@@.event.enable 事件总线服务(默认:true) water、rabbitmq、rocketmq
solon.cloud.@@.event.server 服务地址(ip:port) water、rabbitmq、rocketmq
solon.cloud.@@.event.exchange 交换机或关系组 rabbitmq、rocketmq
solon.cloud.@@.event.queue 指定队列 rabbitmq、rocketmq
solon.cloud.@@.event.hostname 指定接收域 water
solon.cloud.@@.event.seal 事件签名 water
solon.cloud.@@.log.enable 日志总线服务(默认:true) water
solon.cloud.@@.log.server 服务地址(ip:port) water
solon.cloud.@@.log.default 日志默认记录器 water
附3:项目地址
项目地址: https://gitee.com/noear/solon