当前位置: 首页 > news >正文

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 的使用介绍已经很多了&#xff0c;尤其是与 SpringBoot 的整合使用。怎么安装也跳过了&#xff0c;主要就讲 Nacos 在 Solon 里的使用&#xff0c;这个网上几乎是没有的。 1、认识 Solon Solon 一个高效的应用开发框架&#xff1a;更快、更小、更简单&#xf…...

Linux 路由表说明

写在前面&#xff1a; 本文章旨在总结备份、方便以后查询&#xff0c;由于是个人总结&#xff0c;如有不对&#xff0c;欢迎指正&#xff1b;另外&#xff0c;内容大部分来自网络、书籍、和各类手册&#xff0c;如若侵权请告知&#xff0c;马上删帖致歉。 目录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日&#xff0c;中国计算机学会&#xff08;CCF&#xff09;主办、苏州市吴江区人民政府支持&#xff0c;苏州市吴江区工信局、吴江区东太湖度假区管理办公室、苏州市吴江区科技局、CCF大数据专家委员会、CCF自然语言处理专业委员会、CCF高性能计算专业委员会、CCF计算…...

PMP高分上岸人士的备考心得,分享考试中你还不知道的小秘密

上岸其实也不是什么特别难的事情&#xff0c;考试一共就180道选择题&#xff0c;题目只要答对60.57%就可以通过考试&#xff0c;高分通过没在怕的&#xff0c;加油备考呀朋友们&#xff01; 这里也提一嘴&#xff0c;大家备考的时候比较顾虑的一个问题就是考试究竟要不要报班…...

ubuntu下编译libpq和libpqxx库

ubuntu下编译libpq和libpqxx库&#xff0c;用于链接人大金仓 上篇文章验证了libpqxx可以链接人大金仓数据库&#xff0c;这篇文章尝试自己编译libpq和libpqxx库。 文章目录ubuntu下编译libpq和libpqxx库&#xff0c;用于链接人大金仓libpq下载libpq库看看有没有libpq库编译lib…...

ESP-C2系列模组开发板简介

C2是一个芯片采用4毫米x 4毫米封装&#xff0c;与272 kB内存。它运行框架&#xff0c;例如ESP-Jumpstart和ESP造雨者&#xff0c;同时它也运行ESP-IDF。ESP-IDF是Espressif面向嵌入式物联网设备的开源实时操作系统&#xff0c;受到了全球用户的信赖。它由支持Espressif以及所有…...

linux权限管理

权限管理 文件的权限针对三类对象进行定义&#xff1a; owner属主&#xff0c;缩写ugroup属组&#xff0c;缩写gother其他&#xff0c;缩写o 1、文件的一般权限 &#xff08;1&#xff09;r,w,x的作用及含义&#xff1a; 权限对文件影响对目录影响r&#xff08;read&#xf…...

提高生活质量,增加学生对校园服务的需求,你知道有哪些?

随着电子商务平台利用移动互联网的趋势提高服务质量&#xff0c;越来越多的传统企业开始关注年轻大学生消费者的校园市场。 提高生活质量&#xff0c;增加学生对校园服务的需求 大学生越来越沉迷于用手机解决生活中的“吃、喝、玩、乐”等服务&#xff0c;如“吃、喝”——可…...

Antlr4:使用grun命令,触发NoClassDefFoundError

1. 意外的发现 在学习使用grun命令时&#xff0c;从未遇到过错误 最近使用grun命令&#xff0c;却遇到了NoClassDefFoundError的错误&#xff0c;使得grun测试工具无法成功启动 错误复现&#xff1a; 使用antlr4命令编译Hello.g4文件&#xff0c;并为指定package&#xff08;…...

基于rootfs构建Docker镜像

1. 背景 在实际工作中&#xff0c;由于系统本身版本过低&#xff0c;在接受新项目时出现系统版本过低而无法开始工作的问题。 为了解决该问题&#xff0c;使用Docker构建基于ubuntu-18.04的Docker镜像&#xff0c;以解决版本兼容问题。 2. 构建rootfs 2.1. 下载ubuntu-18.0…...

电脑文件软件搬家迁移十大工具

10 大适用于 Windows 的数据迁移软件。 数据迁移至关重要&#xff0c;几乎所有组织都依赖于此。如果您认为数据传输不是一件容易的事&#xff0c;那么数据迁移软件可以帮上忙。 1、奇客电脑迁移 将现有操作系统、软件、文件迁移到 新电脑的最佳方法之一是使用名为奇客电脑迁移…...

【数据库】排名问题

返回第N高的一个解决思路返回N组中的第N高解决思路分数排名解决思路窗口函数数据库经常被用来解决排名问题。 返回第N高的一个 单表查询: 表: Employee------------------- | Column Name | Type | ------------------- | id | int | | salary | int | ----…...

【redis学习篇】主从哨兵集群架构详解

一、Redis主从架构 1.1 redis主从架构搭建 1、复制一份redis.conf文件 2、将相关配置修改为如下值&#xff1a; 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方法&#xff1f;HashMap如何避免内存泄漏问题&#xff1f;HashMap1.7底层是如何实现的&#xff1f;HashMapKey为null存放在什么位置&#xff1f;HashMap如何解决Hash冲突问题&#xff1f;HashMap底层采用单链表还是双…...

深度学习J1周-ResNet50算法实战与解析_鸟类识别(CNN)

&#x1f368; 本文为[&#x1f517;365天深度学习训练营]内部限免文章&#xff08;版权归 *K同学啊* 所有&#xff09; &#x1f356; 作者&#xff1a;[K同学啊] 本周任务&#xff1a; ●1.请根据本文 TensorFlow 代码&#xff08;训练营内部阅读&#xff09;&#xff0c;编写…...

SpringBoot中一行代码解决字符串向枚举类型转换的问题

1. 场景 在WEB开发&#xff0c;客户端和服务端传输的数据中经常包含一些这样的字段&#xff1a;字段的值只包括几个固定的字符串。 这样的字段意味着我们需要在数据传输对象&#xff08;Data Transfer Object, DTO&#xff09;中对该字段进行校验以避免客户端传输的非法数据持…...

Praat之基频分析

Praat之基频分析 测量基频F0的方法 自相关 Autocorrelation&#xff08;易出现pitch-halving\pitch-double&#xff09;窄带谱图 Narrowband spectrogram&#xff08;第一谐波就是基频&#xff09;倒谱分析 Cepstral analysis测量声门波 glottal pluse&#xff08;通过波形&a…...

乡村企业门户网站

技术&#xff1a;Java、JSP等摘要&#xff1a;随着时代的发展&#xff0c;电脑与Internet已经进入我们的生活。信息时代的来临&#xff0c;知识经济的扩张&#xff0c;网站已越来越靠近我们的生活。据CNNIC报告显示&#xff0c;中国上网用户有6800万。通过Internet来经营运作一…...

Deploy Workshop|DIY部署环境,让OceanBase跑起来

2023 年 3 月 25 日&#xff0c;我们将在北京开启首次 OceanBase 开发者大会&#xff0c;与开发者共同探讨单机分布式、云原生、HTAP 等数据库前沿趋势&#xff0c;分享全新的产品 Roadmap&#xff0c;交流场景探索和最佳实践&#xff0c;此外&#xff0c;OceanBase 开源技术全…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一&#xff0c;概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本&#xff1a;2014.07&#xff1b; Kernel版本&#xff1a;Linux-3.10&#xff1b; 二&#xff0c;Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01)&#xff0c;并让boo…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

windows系统MySQL安装文档

概览&#xff1a;本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容&#xff0c;为学习者提供全面的操作指导。关键要点包括&#xff1a; 解压 &#xff1a;下载完成后解压压缩包&#xff0c;得到MySQL 8.…...

小木的算法日记-多叉树的递归/层序遍历

&#x1f332; 从二叉树到森林&#xff1a;一文彻底搞懂多叉树遍历的艺术 &#x1f680; 引言 你好&#xff0c;未来的算法大神&#xff01; 在数据结构的世界里&#xff0c;“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的&#xff0c;它…...

Axure 下拉框联动

实现选省、选完省之后选对应省份下的市区...

跨平台商品数据接口的标准化与规范化发展路径:淘宝京东拼多多的最新实践

在电商行业蓬勃发展的当下&#xff0c;多平台运营已成为众多商家的必然选择。然而&#xff0c;不同电商平台在商品数据接口方面存在差异&#xff0c;导致商家在跨平台运营时面临诸多挑战&#xff0c;如数据对接困难、运营效率低下、用户体验不一致等。跨平台商品数据接口的标准…...