首页 > 其他分享 >Solon2 项目整合 Nacos 配置中心

Solon2 项目整合 Nacos 配置中心

时间:2023-03-06 17:59:42浏览次数:46  
标签:Solon demo 配置 Nacos nacos demoapp 整合 Solon2 solon

网上关于 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

方式二、方式三。什么都不用改,只需要在部署运行时指定一下,推荐!

标签:Solon,demo,配置,Nacos,nacos,demoapp,整合,Solon2,solon
From: https://www.cnblogs.com/noear/p/17184778.html

相关文章

  • Nacos是什么
    Nacos是国产的,是阿里开源的。服务发现配置管理所以Nacos可以作为服务注册中心、配置中心。Nacos–负责服务注册与发现,还有分布式配置。注册与发现:注册是......
  • springboot集成nacos配置中心
    springboot版本2.6.7+nacos版本2.1.21、添加nacos依赖com.alibaba.bootnacos-config-spring-boot-starter0.2.122、配置application.propertiesnacos.config.boots......
  • Solon2 在微服务架构下,如何安全的停止服务?
    所谓“安全的停止服务”是指:在一个集群内,一个服务停止时,即不影响已有请求,也不影响别人调用。Solon在内核层面已提供了停全停止的机制:1、操作说明(通过配置启用)或者用启动......
  • PHPmyadmin与php的整合教程
    PHPmyadmin与php的整合教程:1、下载PHPmyadmin包2、解压PHPmyadmin包到Apache的htdocs目录下3、将PHP安装目录下的php.ini文件中的extension=php_mbstring.dll 前面分号去掉......
  • PHP与Apache整合教程
    1、安装Apache2、下载PHP包,解压到某文件夹。注意:PHP包不需安装,解压即可,注意Windows下安装的PHP包内部一定包含php5apache2_4.dll文件,若没有说明下载错误,重新查找下载。3、PH......
  • Solon2 之 Kotlin 语言开发,很爽
    今天也学别人用Solon框架写个Kotlin项目。自己搞配置还是有点难的,需要借助“SolonInitializr”生成个项目模板。1、生成项目模板打开“SolonInitializr”:https:......
  • 一种通过nacos动态配置实现多租户的log4j2日志物理隔离的设计
    1、背景1.1、背景旧服务改造为多租户服务后,log4j日志打印在一起不能区分是哪个租户的,日志太多,太杂,不好定位排除问题,排查问题较难。1.2、前提不改动以前的日志代码(工作......
  • docker搭建maven私服(nexus3),整合springboot上传下载依赖
    一、前言我们在JavaWeb开发中必不可少的就是jar包管理-maven,在没有maven之前,都是自己手动下载jar包导入到项目中,非常的繁琐。maven出现之后,又迎来新的问题,对于仓库里人家......
  • springcloud-alibaba接入nacos配置中心
    未采用动态配置前,如果集群的话,某个服务集群中的每台服务器配置都不一样,需要单个打包部署,工作量大,不易维护。1,引入依赖,和注册中心一样,因为子模块都有使用,放到公用模块commm......
  • springmvc整合thymeleaf之helloword
    版本说明:代码地址:https://gitee.com/joy521125/ssm-senior.git  thymeleaf分支;基于https://gitee.com/joy521125/ssm-senior.gitmaster分支修改而来;1.加入jar包:1......