Solon2 项目整合 Nacos 配置中心


orchid
电梯物联网专家 2024-01-11 10:23:13 66645 赞同 0 反对 0
分类: 资源
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
    @Bean
    public 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.0
    container_name: demoapp
    environment:
      - solon.app.namespace=test2
      - TZ=Asia/Shanghai
    ports:
      - 8080:8080

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
电梯物联网专家L2
粉丝 1 资源 185 + 关注 私信
最近热门资源
银河麒麟桌面操作系统V10SP1-2403-update1版本中,通过“麒麟管家-设备管理-硬件信息-硬盘”查看硬盘类型时,显示的是HDD(机械硬盘),而实际上该笔记本的硬盘类型为SSD  43
统信uos安装mysql的实例参考  32
分享解决宏碁电脑关机时自动重启的方法  32
在银河麒麟高级服务器操作系统V10SP3中,需要将默认shell类型修改为csh。  30
分享如何解决报错:归档 xxx.deb 对成员 control.tar.zst 使用了未知的压缩,放弃操作  29
统信uosboot区分未挂载导致更新备份失败  28
格之格打印机dp3300系列国产系统uos打印机驱动选择  27
以openkylin为例编译安装内核  24
最近下载排行榜
银河麒麟桌面操作系统V10SP1-2403-update1版本中,通过“麒麟管家-设备管理-硬件信息-硬盘”查看硬盘类型时,显示的是HDD(机械硬盘),而实际上该笔记本的硬盘类型为SSD 0
统信uos安装mysql的实例参考 0
分享解决宏碁电脑关机时自动重启的方法 0
在银河麒麟高级服务器操作系统V10SP3中,需要将默认shell类型修改为csh。 0
分享如何解决报错:归档 xxx.deb 对成员 control.tar.zst 使用了未知的压缩,放弃操作 0
统信uosboot区分未挂载导致更新备份失败 0
格之格打印机dp3300系列国产系统uos打印机驱动选择 0
以openkylin为例编译安装内核 0
作者收入月榜
1

prtyaa 收益400.53元

2

zlj141319 收益237.46元

3

哆啦漫漫喵 收益231.42元

4

IT-feng 收益219.81元

5

1843880570 收益214.2元

6

风晓 收益208.24元

7

777 收益173.07元

8

Fhawking 收益106.6元

9

信创来了 收益106.03元

10

克里斯蒂亚诺诺 收益91.08元

请使用微信扫码

添加我为好友,拉您入交流群!

请使用微信扫一扫!