文章開頭嘮叨兩句。 2019年了,而自己參加工作也兩年有餘了,用一個詞來概括這兩年多的生活,就是:“碌碌無為”。 也不能說一點收穫都沒有,但是很少。2019來了,我立志要打破現狀,改變自己,突破自我。現在明白了只有不斷的學習才能不被淘汰,只有不斷的學習才能拿到更高的工資。 言歸正傳,在今早發現張隊在 ...
文章開頭嘮叨兩句。
2019年了,而自己參加工作也兩年有餘了,用一個詞來概括這兩年多的生活,就是:“碌碌無為”。
也不能說一點收穫都沒有,但是很少。2019來了,我立志要打破現狀,改變自己,突破自我。現在明白了只有不斷的學習才能不被淘汰,只有不斷的學習才能拿到更高的工資。
言歸正傳,在今早發現張隊在元旦前的博客“年末展望:Oracle 對 JDK收費和.NET Core 給我們的機遇”,說明瞭以後.net core會越來越好,而我本人在2017年的時候開始接觸過.net core的時候,就沒有放棄過對.net core的學習,現在覺得微服務是個不錯的方向,而自己也在學習這塊的東西,所以寫個博客記錄一下自己的學習的筆記。
我採用的是java的Spring cloud + .net core。
- 先打開idea創建一個Spring boot項目,在pom文件中添加如下maven依賴:
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Dalston.SR3</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> </dependencies>
下載eureka需要的jar包。
- 新建一個《application.properties》配置文件,添加如下幾行配置:
server.port=8888 #客戶端預設情況下會將自己註冊到一個8761的埠,我們修改埠為8888 eureka.client.register-with-eureka=false #預設會把自己當作一個客戶端註冊到eureka服務,把他設置為false。 eureka.client.fetch-registry=false #預設去抓取註冊信息,自己本身是一個eureka伺服器,沒必要去抓取,應該是客戶端去抓取,所以把這個配置設置為false。
- 添加一個啟動類。
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication @EnableEurekaServer public class ServerApp { public static void main(String[] args){ new SpringApplicationBuilder(ServerApp.class).web(true).run(args); } }
啟動這個啟動類,然後瀏覽器里輸入:http://localhost:8888(8888是我spring boot的埠),然後看到如下頁面,這個時候說明Spring boot eureka服務啟動成功。
- 打開vs,創建一個.net core web api項目 ,使用nuget添加Pivotal.Discovery.Client庫。
- Startup.cs 中添加
public void ConfigureServices(IServiceCollection services) { // services.AddDiscoveryClient(Configuration); services.AddDiscoveryClient(Configuration); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); }
public void Configure(IApplicationBuilder app, IHostingEnvironment env,ILoggerFactory loggerFactory) { loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseHsts(); } app.UseDiscoveryClient(); app.UseHttpsRedirection(); app.UseMvc(); }
需要using Pivotal.Discovery.Client;
- 修改埠,
- 打開launchSettings.json
- 修改埠為5000
"Demo": { "commandName": "Project", "launchBrowser": true, "launchUrl": "api/values", "applicationUrl": "http://localhost:5000", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" }
- 打開appsettings.json 添加eureka服務配置
{ "Logging": { "LogLevel": { "Default": "Warning" } }, "spring":{ "application":{ "name":"serviceone" } }, "eureka":{ "client":{ "serviceUrl":"http://localhost:8888/eureka", "shouldFetchRegistry":false, "shouldRegisterWithEureka":true }, "instance":{ "port":5000 } } }
- 到此為止我們算是配置完成了一個簡單的註冊服務的小demo,我們先啟動eureka服務,再啟動.net core服務。這個時候在eureka服務的頁面中發現名字為serviceone的客戶端成功註冊到了eureka服務中。
參考資料:
備註:最近先更新Spring Cloud知識,之後會使用完整的Spring Cloud + .net core完成一個完整的項目。
下周更新:搭建eureka群集。