序文
開発中に、我々は通常、このようなように、サービスを開き、メールの設定を警告、とするかどうかなど、特定の機能を実行するためにいくつかのパラメータを設定します。典型的には、ハードコードされたコンフィギュレーションファイルまたはデータベースの形で達成しました。
そこで問題は、よりエレガントな実装になる方法、ありますか?ナコスの世界へようこそ!
ナコス構成管理
ナコスアリババオープンソースプロジェクト、構成サービスの命名完全な名前は、サービス・ディスカバリおよび構成管理に焦点を当てました。
ナコスを設定する、あなたは発見に努め、およびマイクロ管理サービス。ナコスはすぐに動的サービス発見、サービス構成、サービスのメタデータおよびトラフィック管理を実現するに役立つ機能の使いやすいセットのセットを提供します。
ナコス生態マップ
図ナコスパノラマに示すように、ナコスシームレス支持一部主流OSSエコ、例えば
- 春の雲
- ApacheのダボとダボメッシュTODO
- KubernetesとCNCF TODO。
使用ナコスは、サービス発見マイクロを有効にするサービスディスカバリ、構成管理、サービスのガバナンスおよび管理ソリューションを簡素化、管理、共有、組み合わせが容易。
ナコス春ブーツのクイックスタート
ここでは春Boot2.xの例という。
pom.xmlには依存性を導入しました:
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
<version>0.2.1</version>
</dependency>
カテゴリを起動します。
package com.itstyle.nacos;
import com.alibaba.nacos.spring.context.annotation.config.NacosPropertySource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* 启动类
* 创建者 爪哇笔记 https://blog.52itstyle.vip
* 创建时间 2019年7月14日
* dataId 可以根据自己的项目自定义
* autoRefreshed 是一个布尔值, Nacos 就会把最新的配置推送到该应用的所有机器上,简单而高效。
*/
@SpringBootApplication
@NacosPropertySource(dataId = "itstyle.blog", autoRefreshed = true)
public class Application {
private static final Logger logger = LoggerFactory.getLogger(Application.class);
public static void main(String[] args){
SpringApplication.run(Application.class, args);
logger.info("启动");
}
ケースを使用します。
package com.itstyle.nacos;
import com.alibaba.nacos.api.config.annotation.NacosValue;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* 创建者 爪哇笔记 https://blog.52itstyle.vip
*/
@Controller
@RequestMapping(value = "config")
public class NacosConfigController {
@NacosValue(value = "${useLocalCache:false}", autoRefreshed = true)
private boolean useLocalCache;
@RequestMapping(value = "/get", method = RequestMethod.GET)
@ResponseBody
public boolean get() {
return useLocalCache;
}
}
プロフィール紹介:
# 安全机制,建议走内网、配置防火墙
nacos.config.server-addr=127.0.0.1:8848
サーバーのインストール構成を参照してください。
https://nacos.io/zh-cn/docs/quick-start.html
ホームページ:
データIDは、システム構成、コンテンツキー溝の形状と一致していなければなりません。
データベースの例
ナコスServerは、本番環境を変更し、デフォルトの組み込みデータベースで使用される構成情報を格納するMySQLデータベースを使用することをお勧めします。
application.propertiesは、構成プロファイルを追加します。
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root
データベースを作成することが可能に、ナコス-mysql.sqlファイルを見つけ、ナコスサーバーのconfフォルダ内のデータベースを作成します。
ナコスデフォルトのアカウントのパスワードは、次のとおりです。ナコス、導入に必要とされることがパスワードを変更します。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
次に、コードを使用して暗号化:
package com.itstyle.nacos;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
/**
* 创建者 爪哇笔记 https://blog.52itstyle.vip
*/
public class PasswordEncoderUtil {
public static void main(String[] args) {
System.out.println(new BCryptPasswordEncoder().encode("nacos"));
}
}
概要
全体的に、ナコスは、物流センターのみだけでその小さな機能の一つであり、非常に便利です。
ケース・プレゼンテーション
http://47.104.197.9:8848/nacos/
参考
https://nacos.io/en-us/