Solon2 项目整合 Nacos 配置中心
网上关于 Nacos 的使用介绍已经很多了,尤其是与 SpringBoot 的整合使用。怎么安装也跳过了,主要就讲 Nacos 在 Solon 里的使用,这个网上几乎是没有的。
1、认识 Solon
Solon 一个高效的应用开发框架:更快、更小、更简单,也是个新起的 Java 生态。
启动快 5 ~ 10 倍;qps 高 2~ 3 倍;运行时内存节省 1/3 ~ 1/2;打包可以缩到 1/2 ~ 1/10;同时支持 jdk8, jdk11, jdk17, jdk19。
Solon 项目官网:https://solon.noear.org
2、认识 Solon Cloud Config
Solon Cloud 是一套分布式(或微服务)开发的接口与配置规范。其中 Solon Cloud Config 为云端配置服务,主要提供分布式配置服务的接口并与相关的中间件客户端进行适配:
- 通过 CloudConfigService 接口与中间件进行适配
- 使用 CloudClient.config() 获取适配实例,可支持手动操作
- 一般通过通过配置和 @CloudConfig 注解进行使用
其中 nacos-solon-cloud-plugin,是 nacos 关于 solon cloud config 的适配。也是本文的主角。
3、项目整合
3.1、在 Nacos 准备两个配置
安装好 Nacos配置后,需要准备下配置数据。新建个“test”命名空间;然后,准备 DataId 为 “demoapp.yml” 配置(这个配置,用于导入到应用属性):
demo.user.name: "1"
再准备 DataId 为 “demo-ds” 配置(这个配置,将直接使用):
demo.ds:url: ""username: ""password: ""
3.2、创建项目,完成配置
借助 Solon Initializr( https://solon.noear.org/start/ ) 生成一个 maven + java 的项目模块(这样方便些)。用开发工具打开项目(比如 IDEA)。在 pom.xml 里面添加依赖:
<dependencies><dependency><groupId>org.noear</groupId><artifactId>nacos-solon-cloud-plugin</artifactId></dependency>
</dependencies>
然后,在应用属性配置文件“app.yml”,添加 nacos 的连接信息:
solon.app:name: "demoapp"group: "demo"namespace: "test"solon.cloud.nacos:server: "localhost:8848" #nacos 服务地址config:load: "demoapp.yml" #加载配置到应用属性(多个以","隔开)
“…config.load” 会导入配置到应用属性。之后可用“@Inject”注入,也可用“Solon.cfg().get(…)”获取。
3.3、代码应用
在模板项目里,添加 “Config” 类:
@Configuration
public class Config {//注入用户名 //来自 config.load 导入到应用属性的@Inject("${demo.user.name}") String userName;//注入并转为数据源 //直接来自 DataId = demo-ds@Beanpublic DataSource ds(@CloudConfig("demo-ds") HikariDataSource ds){return ds;}
}
直接获取 nacos 配置,可以通过"@CloudConfig"注解,或者 “CloudClient.config().pull(group, name)” 手动获取。
4、多马甲项目的应用
很多情况下,公司会有相同的代码,但是不同的运营项目。这个场景下,自然是希望代码都不用改。
4.1、添加新的命名空间
在 Nacos 里,添加 “test2” 命名空间。然后把刚才的配置 DataId 复制一份。
4.2、修改项目应用配置
- 通过 app.yml 修改配置
solon.app:name: "demoapp"group: "demo"namespace: "test2"solon.cloud.nacos:server: "localhost:8848" #nacos 服务地址config:load: "demoapp.yml" #加载配置到应用属性(多个以","隔开)
- 通过启动时指定(方式二)
java -Dsolon.app.namespace=test2 -jar demoapp.jar
- 通过容器镜像的环境变量指定 (方式三)
services:demoapp:image: demo/demoapp:1.0.0container_name: demoappenvironment:- solon.app.namespace=test2- TZ=Asia/Shanghaiports:- 8080:8080
方式二、方式三。什么都不用改,只需要在部署运行时指定一下,推荐!
相关文章:
Solon2 项目整合 Nacos 配置中心
网上关于 Nacos 的使用介绍已经很多了,尤其是与 SpringBoot 的整合使用。怎么安装也跳过了,主要就讲 Nacos 在 Solon 里的使用,这个网上几乎是没有的。 1、认识 Solon Solon 一个高效的应用开发框架:更快、更小、更简单…...
Linux 路由表说明
写在前面: 本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。 目录route 命令字段分…...
MIPI协议
MIPI调试指南Rev.0.1 June 18, 2019 © 2018 Horizon Robotics. All rights reserved.Revision HistoryThissection tracks the significant documentation changes that occur fromrelease-to-release. The following table lists the technical content changes foreach …...
第十届CCF大数据与计算智能大赛总决赛暨颁奖典礼在苏州吴江顺利举办
2月24日-25日,中国计算机学会(CCF)主办、苏州市吴江区人民政府支持,苏州市吴江区工信局、吴江区东太湖度假区管理办公室、苏州市吴江区科技局、CCF大数据专家委员会、CCF自然语言处理专业委员会、CCF高性能计算专业委员会、CCF计算…...
PMP高分上岸人士的备考心得,分享考试中你还不知道的小秘密
上岸其实也不是什么特别难的事情,考试一共就180道选择题,题目只要答对60.57%就可以通过考试,高分通过没在怕的,加油备考呀朋友们! 这里也提一嘴,大家备考的时候比较顾虑的一个问题就是考试究竟要不要报班…...
ubuntu下编译libpq和libpqxx库
ubuntu下编译libpq和libpqxx库,用于链接人大金仓 上篇文章验证了libpqxx可以链接人大金仓数据库,这篇文章尝试自己编译libpq和libpqxx库。 文章目录ubuntu下编译libpq和libpqxx库,用于链接人大金仓libpq下载libpq库看看有没有libpq库编译lib…...
ESP-C2系列模组开发板简介
C2是一个芯片采用4毫米x 4毫米封装,与272 kB内存。它运行框架,例如ESP-Jumpstart和ESP造雨者,同时它也运行ESP-IDF。ESP-IDF是Espressif面向嵌入式物联网设备的开源实时操作系统,受到了全球用户的信赖。它由支持Espressif以及所有…...
linux权限管理
权限管理 文件的权限针对三类对象进行定义: owner属主,缩写ugroup属组,缩写gother其他,缩写o 1、文件的一般权限 (1)r,w,x的作用及含义: 权限对文件影响对目录影响r(read…...
提高生活质量,增加学生对校园服务的需求,你知道有哪些?
随着电子商务平台利用移动互联网的趋势提高服务质量,越来越多的传统企业开始关注年轻大学生消费者的校园市场。 提高生活质量,增加学生对校园服务的需求 大学生越来越沉迷于用手机解决生活中的“吃、喝、玩、乐”等服务,如“吃、喝”——可…...
Antlr4:使用grun命令,触发NoClassDefFoundError
1. 意外的发现 在学习使用grun命令时,从未遇到过错误 最近使用grun命令,却遇到了NoClassDefFoundError的错误,使得grun测试工具无法成功启动 错误复现: 使用antlr4命令编译Hello.g4文件,并为指定package(…...
基于rootfs构建Docker镜像
1. 背景 在实际工作中,由于系统本身版本过低,在接受新项目时出现系统版本过低而无法开始工作的问题。 为了解决该问题,使用Docker构建基于ubuntu-18.04的Docker镜像,以解决版本兼容问题。 2. 构建rootfs 2.1. 下载ubuntu-18.0…...
电脑文件软件搬家迁移十大工具
10 大适用于 Windows 的数据迁移软件。 数据迁移至关重要,几乎所有组织都依赖于此。如果您认为数据传输不是一件容易的事,那么数据迁移软件可以帮上忙。 1、奇客电脑迁移 将现有操作系统、软件、文件迁移到 新电脑的最佳方法之一是使用名为奇客电脑迁移…...
【数据库】排名问题
返回第N高的一个解决思路返回N组中的第N高解决思路分数排名解决思路窗口函数数据库经常被用来解决排名问题。 返回第N高的一个 单表查询: 表: Employee------------------- | Column Name | Type | ------------------- | id | int | | salary | int | ----…...
【redis学习篇】主从哨兵集群架构详解
一、Redis主从架构 1.1 redis主从架构搭建 1、复制一份redis.conf文件 2、将相关配置修改为如下值: port 6380 pidfile /var/run/redis_6380.pid # 把pid进程号写入pidfile配置的文件 logfile "6380.log" dir /usr/local/redis-5.0.3/data/6380 # 指…...
基于jdk8的HashMap源码解析
hashMap常见面试题总览 为什么重写Equals还要重写HashCode方法?HashMap如何避免内存泄漏问题?HashMap1.7底层是如何实现的?HashMapKey为null存放在什么位置?HashMap如何解决Hash冲突问题?HashMap底层采用单链表还是双…...
深度学习J1周-ResNet50算法实战与解析_鸟类识别(CNN)
🍨 本文为[🔗365天深度学习训练营]内部限免文章(版权归 *K同学啊* 所有) 🍖 作者:[K同学啊] 本周任务: ●1.请根据本文 TensorFlow 代码(训练营内部阅读),编写…...
SpringBoot中一行代码解决字符串向枚举类型转换的问题
1. 场景 在WEB开发,客户端和服务端传输的数据中经常包含一些这样的字段:字段的值只包括几个固定的字符串。 这样的字段意味着我们需要在数据传输对象(Data Transfer Object, DTO)中对该字段进行校验以避免客户端传输的非法数据持…...
Praat之基频分析
Praat之基频分析 测量基频F0的方法 自相关 Autocorrelation(易出现pitch-halving\pitch-double)窄带谱图 Narrowband spectrogram(第一谐波就是基频)倒谱分析 Cepstral analysis测量声门波 glottal pluse(通过波形&a…...
乡村企业门户网站
技术:Java、JSP等摘要:随着时代的发展,电脑与Internet已经进入我们的生活。信息时代的来临,知识经济的扩张,网站已越来越靠近我们的生活。据CNNIC报告显示,中国上网用户有6800万。通过Internet来经营运作一…...
Deploy Workshop|DIY部署环境,让OceanBase跑起来
2023 年 3 月 25 日,我们将在北京开启首次 OceanBase 开发者大会,与开发者共同探讨单机分布式、云原生、HTAP 等数据库前沿趋势,分享全新的产品 Roadmap,交流场景探索和最佳实践,此外,OceanBase 开源技术全…...
Graphviz自动排版太随机?教你5个技巧精准控制节点位置
Graphviz自动排版太随机?5个专业技巧精准控制节点位置 当你用Graphviz绘制关系图时,是否遇到过这样的困扰:明明代码逻辑清晰,生成的图表却总是不按预期排列?节点位置随机跳跃,关键元素错位,甚至…...
PDF-Parser-1.0智能办公:告别手动复制粘贴的PDF处理方案
PDF-Parser-1.0智能办公:告别手动复制粘贴的PDF处理方案 1. 为什么需要智能PDF解析工具 在日常办公场景中,PDF文档处理是一个高频且痛苦的工作环节。根据统计,职场人士平均每周需要处理15-20份PDF文件,包括合同、报告、发票等各…...
OpenClaw自动化写作助手:基于GLM-4.7-Flash的草稿生成与润色
OpenClaw自动化写作助手:基于GLM-4.7-Flash的草稿生成与润色 1. 为什么需要自动化写作助手 作为一个长期与文字打交道的内容创作者,我经常面临这样的困境:明明有好的选题灵感,却卡在初稿阶段耗费大量时间;或是写完后…...
手把手教你用Swaks和Gophish绕过SPF,搭建自己的邮件钓鱼测试环境(附避坑指南)
企业级邮件安全测试实战:从SPF绕过到钓鱼环境搭建 邮件安全测试已成为企业安全防护体系中不可或缺的一环。据统计,超过90%的网络攻击始于钓鱼邮件,而其中近40%的成功攻击源于SPF配置不当或完全缺失。本文将系统性地介绍如何构建一个完整的邮件…...
SEO_从零开始,手把手教你制定SEO优化方案(126 )
<h2>SEO优化的基本概念</h2> <p>SEO,全称Search Engine Optimization,是搜索引擎优化的简称,旨在提高网站在搜索引擎中的自然排名,从而增加网站的可见度和流量。对于初学者来说,SEO可能听起来有点复…...
Cursor Pro功能解锁指南:突破限制的完整技术方案
Cursor Pro功能解锁指南:突破限制的完整技术方案 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your trial re…...
【Matlab】MATLAB教程:数据插值interp1(案例:interp1(x,y,xi,‘linear‘);应用:数据补全、插值)
MATLAB教程:数据插值interp1(案例:interp1(x,y,xi,linear);应用:数据补全、插值) 在科研实验、工程监测、信号采集等各类数据获取场景中,受限于设备精度、测试条件、环境干扰等因素,采集到的原始数据往往存在**数据点稀疏、采样间隔不均、局部数据缺失**等问题,直接使…...
永磁同步电机全速域无位置传感器控制策略仿真研究:高频注入与改进滑膜控制方法应用
40、永磁同步电机全速域无位置传感器控制仿真(仿真代码参考文献说明文档) 主要内容: 采用高频注入改进滑膜控制方法,PMSM矢量控制仿真 [1]零低速域,采用无数字滤波器高频方波注入法,减少滤波的相位影响&…...
开源项目国际化:多语言配置全流程指南
开源项目国际化:多语言配置全流程指南 【免费下载链接】pivottable Open-source Javascript Pivot Table (aka Pivot Grid, Pivot Chart, Cross-Tab) implementation with dragndrop. 项目地址: https://gitcode.com/gh_mirrors/pi/pivottable 跨国团队如何让…...
FPGA调试避坑指南:Vivado ILA采样深度和探针位宽怎么设?资源占用与调试效果的平衡术
FPGA调试实战:ILA采样深度与探针位宽的黄金平衡法则 当你在Artix-7芯片上调试一个包含32位计数器和多状态机的设计时,突然发现ILA吃掉了一半的Block RAM资源,而采样深度却只够捕获5个时钟周期的数据——这种场景是否似曾相识?本文…...
